android开机启动流程

launched processes during Android booting.
user    pid    ppid    name
root    1    0     init
root     34     1     zygote
system     86     34     system_server(ActivityManagerService)
radio     118     34     com.android.phone
app_5     139     34     com.android.mms
app_3     139     34     com.android.alarmclock
app_6     139     34     com.android.calendar
......

Root进程
init进程主要任务
1.解析init.rc 和 init.%hardware%.rc
2.开启Android Java虚拟机
...

Java Application进程
Java APP都来自于zygote的分支,system_server是最典型的Java APP。

System Server
system_Server启动ActivityManager, WindowManager, PackageManager
ActivityManagerService运行在system_service里,ActivityManagerService.systemReady准备好后将启动persistent applications.
persistent applications就是指在AndroidManifest.xml中有如下标记的:
<application android:name="..." android:persistent="true" ...>
Phone启动起来了

First Activity启动
ActivityManagerService发出Intent.CATEGORY_HOME来启动相应Activity
SetupWizard,JrdSetupWizard,Launcher等APP都监听了此Action,只是android:priority不同而已。
SetupWizard android:priority="5"
JrdSetupWizard android:priority="2"
Launcher android:priority=默认值0

其它Activity启动
当activity idle第一次出现,ActivityManagerService发出广播ACTION_BOOT_COMPLETED,Currently, MMS, AlarmClock, Calendar, MediaProvider, VoiceDialer and IM等都注册了此广播,进而自动启动了。Email,DownloadProvider也注册了,但是AndroidManifest.xml中有属性android:enabled="false",因此也不启动。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值