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",因此也不启动。
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",因此也不启动。