Android 应用程序开发基础
1. 每一个应用程序运行在一个独立的进程,每一个进程运行在一个独立的VM中.
2. 每一个应用程序有一个Linux UID,用于权限管理.
3. 两个应用可以有相同的UID,相同UID的应用可以运行在同一VM中.
应用程序组件:
Android应用程序的特色之一:组件重用.
Android根据需要自动启动相应的组件处理请求.
四种类型组件:
1.Activities
代表用户界面.包括视图树.视图包括布局和子视图.
2.Services
代表后台服务,没有用户界面,在独立的线程中运行,不阻塞用户界面.
3.Broadcast receivers
广播:分为系统广播和程序广播.根据需要接收指定的广播并处理.
4.Content providers
内容提供商:存储数据,通过内容解析器(ContentResolver)在各种数据提供商中读写数据.
组件有自己的生命周期:
激活 - 运行 - 关闭
激活组件: intents
内容提供商根据内容解析器请求激活.而Activities, Services, Broadcast receivers则通过Intents对象激活.
运行Activities:
Context.startActivity()
Activity.startActivityForResult()
获取Intent:
getIntent()
响应Activity启动结果:
onActivityResult()
----
运行服务Services:
Context.startService()
响应启动服务:
onStart()
绑定服务:
Context.bindService()
响应绑定服务:
onBind()
----
发送广播:
Context.sendBroadcast()
Context.sendOrderedBroadcast()
Context.sendStickyBroadcast()
接收广播:
onReceive()
关闭组件:
组件也有可能被系统关闭,当组件异常或内存不足,电池快没电等.
广播接收器和内容提供商不需要程序员来关闭.
关闭Activity:
finish()
finishActivity()
关闭服务:
stopSelf()
Context.stopService()
manifest 文件:
AndroidManifest.xml
用于声明组件,命令库,权限认证.声明式注册广播接收器类.
Intent filters:
声明可用的组件处理Intents.
Tasks
任务:任务是指一个用户体验.包括一组Activities.类似一个完整应用,不过这个应用是由不同的Activity组成.
Affinities and new tasks
Launch modes
Clearing the stack
Starting tasks
进程和线程
Activity配置进程.Application配置默认进程.
线程安全
Remote procedure calls
轻量级的远程方法调用
组件生命周期
Activity:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
服务:
void onCreate()
void onStart(Intent intent)
void onDestroy()
进程:
前台进程
可视进程
服务进程
后台进程
空进程
分享到:
评论