Android系统开发01—Android基本组件
1. 应用程序生命周期
应用程序进程从创建到结束的全过程便是应用程序的生命周期。与其他系统不同,Android应用程序的生命周期是不受进程自身控制的,而是由Android系统决定的。
Android系统将所有的进程分为5类进行管理:
1. 前台进程
2. 可见进程:还在屏幕中,但是用户并没有直接与之进行交互。
3. 服务进程
4. 后台进程
5. 空进程
从1到5,重要顺序递减。
注意:应用程序在运行时,其状态的切换可能是通过自身实现的,可也能是系统将其改变的。
2. Activity
Activity是Android中最常用的组件,是应用程序的表示层,Activity一般通过View来实现应用程序的用户界面,相当于一个屏幕,用户与程序的交互式通过该类实现的。
Activity的生命周期主要包含三个状态:运行态,暂停态,停止态。
Activity的显示内容跟是由View对象提供的,View对象继承自View类,其中每个View对象管理屏幕中的一个矩形区域。Android自带了许多View对象,而除了使用Android自带的View外,还可以自定义View。
例子:
Service是一个具有较长的生命周期但是并没有用户界面的程序。
Service一般由Activity启动,但不依赖于Activity,Service有两种启动方式:
1. startService
当Activity调用startService方法启动Service时,会依次调用onCreate和onStart方法来启动Service。当结束时,调用onDestroy方法结束Service。
2. bindService
BoardReceiver
BoardReceiver为用户接收广播通知的组件,当系统或某个应用程序发送广播时,可以使用BoardReceiver组件来接收广播信息并作出相应的处理。
使用过程:
1. 将需要广播的消息封装到Intent中。
2. Context.sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcast()中的一种将Intent发送
3. 通过IntentFilter对象过滤所发送的实体Intent
4. 重写onReceive方法的BoardReceiver。
4. ContentProvider
ContentProvider是用来实现应用程序之间数据共享的类。
5. Intent和IntentFilter
1) Intent类简介
Intent是一种运行时绑定机制,在应用程序运行时连接两个不同的组件。一般的应用是通过Intent向Android系统发出某种请求,然后Android系统会根据请求查询各个组件声明的IntentFilter,找到需要的组件并运行它。
前面所说的Activity,Service及BroadcastReceiver组件之间的通信全部使用的是Intent但是每个机制不同。
Activity组件:当需要激活一个Activity组件时,需要调用Context.startActivity或Context.startActivityForResult方法来传递Intent,此时的Intent参数成为Activity Action Intent
Service组件:一般通过Context.startService和Context.bindService
BroadcastReceiver组件:上面已经介绍
Intent是由组件名称,Action,Data,Category,Extra和Flag组成:
1. 组件名称:组件名称实际上就是一个ComponentName对象,用于标识唯一的应用程序组件。
2. Action:一个描述Intent所触发动作名称的字符串。如
ACTION_CALL,ACTION_EDIT,ACTION_VIEW,ACTION_MAIN等
3. Data:主要对Intent消息中数据的封装,主要描述Intent的动作所操作到的数据的URI及类型
4. Category:是对目标组件类型的描述
5. Extra:封装了一些额外的附加信息。
2) IntentFilter
IntentFilter实际上相当于Intent的过滤器。IntentFilter过滤Intent时,主要通过Action,Data及Category三方面进行监测:
1. 检查Action:一个Intent只能设置一种Action,但是一个IntentFilter却可以设置多个Action过滤。当IntentFilter设置了多个Action时,只需一个满足就可完成Action验证。
2. 检查Data:主要检查URI及数据类型
3. 检查Category:当Intent中的Category与IntentFilter中的一个Category完全匹配时,便会通过Category检查。
Intent案例:
判断输入的电话号码是否符合规范当符合规范时,调用系统自带的拨号程序进行拨号。
1. 应用程序生命周期
应用程序进程从创建到结束的全过程便是应用程序的生命周期。与其他系统不同,Android应用程序的生命周期是不受进程自身控制的,而是由Android系统决定的。
Android系统将所有的进程分为5类进行管理:
1. 前台进程
2. 可见进程:还在屏幕中,但是用户并没有直接与之进行交互。
3. 服务进程
4. 后台进程
5. 空进程
从1到5,重要顺序递减。
注意:应用程序在运行时,其状态的切换可能是通过自身实现的,可也能是系统将其改变的。
2. Activity
Activity是Android中最常用的组件,是应用程序的表示层,Activity一般通过View来实现应用程序的用户界面,相当于一个屏幕,用户与程序的交互式通过该类实现的。
Activity的生命周期主要包含三个状态:运行态,暂停态,停止态。
Activity的显示内容跟是由View对象提供的,View对象继承自View类,其中每个View对象管理屏幕中的一个矩形区域。Android自带了许多View对象,而除了使用Android自带的View外,还可以自定义View。
例子:
MyView.java: package qijia.si; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class MyView extends View { Paint paint; public MyView(Context context){ super(context); paint = new Paint(); paint.setColor(Color.WHITE); paint.setTextSize(20); paint.setAntiAlias(true); } protected void onDraw(Canvas canvas){ super.onDraw(canvas); canvas.drawColor(Color.GRAY); canvas.drawRect(10,10,110,110, paint); canvas.drawText("fuck you", 60, 170, paint); } } MyAndroidProject.java: package qijia.si; import android.app.Activity; import android.os.Bundle; public class MyAndroidProject extends Activity { /** Called when the activity is first created. */ MyView myView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myView = new MyView(this); this.setContentView(myView); } }3. Service
Service是一个具有较长的生命周期但是并没有用户界面的程序。
Service一般由Activity启动,但不依赖于Activity,Service有两种启动方式:
1. startService
当Activity调用startService方法启动Service时,会依次调用onCreate和onStart方法来启动Service。当结束时,调用onDestroy方法结束Service。
2. bindService
BoardReceiver
BoardReceiver为用户接收广播通知的组件,当系统或某个应用程序发送广播时,可以使用BoardReceiver组件来接收广播信息并作出相应的处理。
使用过程:
1. 将需要广播的消息封装到Intent中。
2. Context.sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcast()中的一种将Intent发送
3. 通过IntentFilter对象过滤所发送的实体Intent
4. 重写onReceive方法的BoardReceiver。
4. ContentProvider
ContentProvider是用来实现应用程序之间数据共享的类。
5. Intent和IntentFilter
1) Intent类简介
Intent是一种运行时绑定机制,在应用程序运行时连接两个不同的组件。一般的应用是通过Intent向Android系统发出某种请求,然后Android系统会根据请求查询各个组件声明的IntentFilter,找到需要的组件并运行它。
前面所说的Activity,Service及BroadcastReceiver组件之间的通信全部使用的是Intent但是每个机制不同。
Activity组件:当需要激活一个Activity组件时,需要调用Context.startActivity或Context.startActivityForResult方法来传递Intent,此时的Intent参数成为Activity Action Intent
Service组件:一般通过Context.startService和Context.bindService
BroadcastReceiver组件:上面已经介绍
Intent是由组件名称,Action,Data,Category,Extra和Flag组成:
1. 组件名称:组件名称实际上就是一个ComponentName对象,用于标识唯一的应用程序组件。
2. Action:一个描述Intent所触发动作名称的字符串。如
ACTION_CALL,ACTION_EDIT,ACTION_VIEW,ACTION_MAIN等
3. Data:主要对Intent消息中数据的封装,主要描述Intent的动作所操作到的数据的URI及类型
4. Category:是对目标组件类型的描述
5. Extra:封装了一些额外的附加信息。
2) IntentFilter
IntentFilter实际上相当于Intent的过滤器。IntentFilter过滤Intent时,主要通过Action,Data及Category三方面进行监测:
1. 检查Action:一个Intent只能设置一种Action,但是一个IntentFilter却可以设置多个Action过滤。当IntentFilter设置了多个Action时,只需一个满足就可完成Action验证。
2. 检查Data:主要检查URI及数据类型
3. 检查Category:当Intent中的Category与IntentFilter中的一个Category完全匹配时,便会通过Category检查。
Intent案例:
判断输入的电话号码是否符合规范当符合规范时,调用系统自带的拨号程序进行拨号。
package qijia.si; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.telephony.PhoneNumberUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MyAndroidProject extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bCall = (Button)this.findViewById(R.id.Button01); bCall.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub EditText eTel = (EditText) findViewById(R.id.myEditText); String strTel = eTel.getText().toString(); if(PhoneNumberUtils.isGlobalPhoneNumber(strTel)){ Intent i = new Intent(Intent.ACTION_DIAL,Uri.parse("tel://"+strTel)); MyAndroidProject.this.startActivity(i); }else{ Toast.makeText( MyAndroidProject.this, "号码格式不正确", 5000 ).show(); } } } ); } }
发表评论
-
Android开发06—菜单与对话框(下)
2011-05-16 19:11 1115Android开发06—菜单与对 ... -
Android开发06—菜单与对话框(上)
2011-05-13 20:07 1189Android开发06—菜单与对话框(上) 1. 菜单 1) ... -
Android开发05—Android常用高级控件(下)
2011-05-09 19:16 1211Android开发05—Android常用高级控件(下) 1 ... -
Android开发04—Android常用高级控件(上)
2011-05-04 17:38 1846Android开发04—Android常用高级控件(上) 1 ... -
Android的adapter总结和深入研究
2011-05-04 17:35 1822Android的adapter总结和深 ... -
Android开发03—Android常用基本控件(下)
2011-05-02 17:14 946Android开发03—Android常用 ... -
Android开发03—Android常用基本控件(上)
2011-04-30 16:30 1196Android开发03—Android常用基本控件(上) 1 ... -
Android系统开发02—Android布局管理器
2011-04-26 19:36 984Android系统开发02—Android布局管理器 1. ...
相关推荐
文档主要是讲Android开发的四大组件详解,包含 Activity详解 ,Service详解,Broadcast Receiver详解,Content Provider详解 外加一个重要组件 intent的详解。 文章内容来自网络,本文是一个总结性文章。
Android的开发组件 为Android的爱好者提供 清晰明了的Android机制框架 介绍四大组件
Android应用开发的哲学是把一切...这一节讲Android组件化设计的背景、理念、原则,以及Android在OS级别上提供的组件化支持,其中还会包含一个实验来验证这种组件化设计思想,可以对Android系统有一个高层次的抽象理解。
Android自定义组件开发详解
第2篇为应用开发篇,通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计、Android传感器、Android游戏开发基础、Android与Internet,以及...
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
Android自定义组件开发详解,进阶书籍。本书教你如何更好使用自定义view
AndroidGames Android游戏开发各种基本组件和知识源码
《Android网络开发技术实战详解》分为18章,分别介绍了Android开发之前所要做的工作、必须具备的网页开发技术、HTML 5基础、在Android系统中开发网页的必备技术、HTTP通信处理、URL地址处理、WebKit、Wi-Fi、蓝牙、...
刘乃安主编的《Android操作系统与应用开发》主要介绍Android操作系统及其应用开发,共分为7章,分别为Android基础、Android应用层开发语言、Android应用开发环境、Android基本组件、Android数据存储、Android简单...
第6章 Android组件之间的信使Intent Android 组件之间的信使Intent,讲述了Intent对象及其属性、Intent的实现策略和Intent的常见应用 第7章 Android Service组件 Android Service组件,讲述了Android中的后台服务...
实验1构建Android开发环境和Android应用程序 实验2基本视图组件的使用(一) 实验3:基本视图组件的使用(二) 实验4:布局管理器 实验5:Intent、Activity应用 实验6:基本视图组件的使用(三) 实验7 音乐播放器 ...
Android自定义组件开发详解,让你彻底理解自定义组件(自定义View、ViewGroup等,彻底了解canvas和paint的基本和高级使用方法)
《Android自定义组件开发详解》
10大话企业级Android开发_组件(上).pdf 11_Android的连接部分.pdf 12_Android的传感器系统.pdf 01_Android系统概述.pdf 02_Android系统的开发综述.pdf 03_Android的Linux内核与驱动程序.pdf 04_Android的底层...
全书论述了Android开发概述,Android应用程序组成,Android UI(用户界面)基础,Android UI系统控件基础,Android UI系统控件进阶,Android UI菜单、对话框,Android组件广播消息与服务,Android数据存储与访问,...
如何在Android 自带的Home应用程序Launcher上进行桌面组件的开发,其中包括了快捷方式、实时文件夹以及桌面部件这三种组件的开发。通过学习将了解到桌面组件的详细开发流程,并且能从中掌握一些实用的桌面组件的开发...
Android组件TimePicker组件的深入解析,自定义TimePicker组件
首先,在Android应用程序层面,详细讲解了应用程序开发的各项技术,着重讲解了应用程序的开发基础、应用程序的结构、4大组件工作原理与功能,以及它们之间通信的基础Intent类。此外,给出了一些实例让读者能够更深刻...
Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—— 移动电话工作所需的全部软件,而且不存在任何...【第一版第十五章】老罗Android开发视频--百度地图实战开发(10集)