http://blog.csdn.net/luoshengyang/article/details/6747696

简要整理:

ActivityManagerService.java.startProcessLocked()(此方法本身在运行在SystemService进程中)      |Process.java.start()      |    通过localSocket发生命令(参数"android.app.ActivityThread") 至native的Zygote进程(Zygote进程中ZygoteInit.java.runSelectLoopMode()无限循环侦听socket请求)      |    收到请求后得到一个socket连接ZygoteConnection.java对象,并执行此对象的runOnce方法      |    fork()一个子进程,至此,新的应用程序进程诞生,不过后面还有很多初始话的工作要做      |    RuntimeInit.java.zygoteInit()      |    {RuntimeInit.java.zygoteInitNative(),                    RuntimeInit.java.invokeStaticMain()}      |                                                         |    AndroidRuntime.cpp.onZygoteInit()                         先通过异常清理堆栈      |                                                         |    app_main.cpp.AppRuntime.onZygoteInit()                    ZygoteInit.java.main()捕获异常,反射android.app.ActivityThread.main()      |                                                         |    ProcessState.cpp.startThreadPool()                        ActivityThread.java.main()消息循环(等待启动Activity或者Service了)      |    ProcessState.cpp.spawnPooledThread()      |    ProcessState.cpp.PoolThread.threadLoop()      |    IPCThreadState.cpp.joinThreadPool()#此处为无限循环      |    IPCThreadState.cpp.talkWithDriver()#与Binder驱动程序交互

更多相关文章

  1. Android 获取Gmail邮箱地址方法
  2. ubuntu的android studio调试小米手机的方法
  3. android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明
  4. Android 自定义view 和 onMeasure方法介绍
  5. Android延时执行调用的几种方法
  6. Android Studio 导.so文件简单、高效的方法
  7. Android中跨进程通信方式之使用AIDL进阶篇
  8. android 几个工具方法
  9. Android 判断当前设备是手机还是平板的最有效的方法

随机推荐

  1. Android(安卓)path 贝塞尔曲线 波浪形
  2. 在android jni中使用log
  3. android各个文件分析
  4. 点击LinearLayout使用selector改变TextVi
  5. 创建Android(安卓)SD卡遇到的问题
  6. UI
  7. android:screenOrientation的说明
  8. [Android] Android的音频采集
  9. 使用Android自带Ant构建Apk
  10. CyanogenMod | Android(安卓)Community R