3.启动System Server;
fork出独立的进程名称为system-server,呼叫com.android.server.SystemServer类的main函数;
在HandleSystemServerProcess函数中,RuntimeInit.ZygoteInit调用会呼叫AppRuntime的OnZygoteInit函数
4.RuntimeInit.ZygoteInit函数会呼叫 com.android.server.SystemServer类的main函数。
在此main函数中,系统首先加载android_server共享库libandroid_server.so 源代码位于/framework/base/service/jni
在该库中有定义JNI_OnLoad函数,所以Dalvik在加载 libandroid_server.so 的时候会首先呼叫该JNI_OnLoad函数,该函数将android server注册到Java虚拟机中,包括 KeyInputQueue,HardwareService,AlarmManager,BatteryService,SensorService,SystemServer 等;
呼叫在libanroid_server.so中注册的native函数init1,该函数位于/frameworks/base/services/jni/com_android_server_SystemServer.cpp中;
init1函数呼叫libsystem_server中的system_init函数,该函数位于/frameworks/base/cmds /system_server/library/system_init.cpp中,该函数将/MediaPlayer/CameraService等组件注册到ServiceManager中
SurfaceFlinger/AudioFlinger
system_init函数反过来呼叫java类com.android.server.SystemServer的init2函数;
5.在init2函数中,android创建了serverthread,在该thread中android开始注册各种service到service manager中 包
括
EntropyService,PowerManager,ActivityManager,Telephony,PackageManager,ContentManager,ContentProvider,
BatteryService,HardwareService,AlarmManager等等。
注意该线程使用Looper来执行thread
至此android system server启动完成。 本文
来
自
CSDN
博
客
,
转
载
请
标
明
出
http://blog.csdn.net/taoshengyang/archive/2010/06/10/5661699.aspx
framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\\system\\framework\\am.jar \\system\\framework\\am.odex
\\system\\framework\\android.awt.jar AWT库 \\system\\framework\\android.awt.odex
\\system\\framework\\android.policy.jar \\system\\framework\\android.policy.odex \\system\\framework\\android.test.runner.jar \\system\\framework\\android.test.runner.odex
\\system\\framework\\com.google.android.gtalkservice.jar GTalk服务 \\system\\framework\\com.google.android.gtalkservice.odex \\system\\framework\\com.google.android.maps.jar 电子地图库 \\system\\framework\\com.google.android.maps.odex
\\system\\framework\\core.jar 核心库,启动桌面时首先加载这个 \\system\\framework\\core.odex \\system\\framework\\ext.jar
\\system\\framework\\ext.odex
\\system\\framework\\framework-res.apk \\system\\framework\\framework-tests.jar \\system\\framework\\framework-tests.odex \\system\\framework\\framework.jar \\system\\framework\\framework.odex \\system\\framework\\input.jar 输入库 \\system\\framework\\input.odex \\system\\framework\\itr.jar \\system\\framework\\itr.odex \\system\\framework\\monkey.jar \\system\\framework\\monkey.odex
处
:
\\system\\framework\\pm.jar 包管理库 \\system\\framework\\pm.odex \\system\\framework\\services.jar \\system\\framework\\services.odex \\system\\framework\\ssltest.jar \\system\\framework\\ssltest.odex
\\system\\framework\\svc.jar 系统服务 \\system\\framework\\svc.odex