Android zygote启动流程
来源:互联网 发布:2016年中国出口数据 编辑:程序博客网 时间:2024/05/22 06:18
step1. init进程根据init.rc中的zygote配置fork一个进程加载/system/bin/app_process.(入口在framework/base/cmds/app_process/app_main.cpp中)
step2. app_main.cpp/main
通过AppRuntime调用其父类AndroidRuntime==>runtime.start("com.android.internal.os.ZygoteInit",startSystemServer)函数处理。
step3. AndroidRuntime.cpp/start
AndroidRuntime::start(x,x)函数call startVm(&mJavaVM, &env)启动虚拟机,call startReg(env)注册jni方法,call env->CallStaticVoidMethod(startClass, startMeth, strArray)进入com.android.internal.os.ZygoteInit类的main方法。
step4. ZygoteInit.java/main
ZygoteInit.maincall registerZygoteSocket()创建一个socket接口用来和ActivityManagerService通信,call preloadClasses()来预先加载java类,call preloadResources()来加载资源,call startSystemServer()来启动SystemServer进程,最后call runSelectLoopMode()进入一个无限循环在前面创建的socket接口上等待ActivityManagerService的请求,创建新的应用程序进程。
- Android zygote启动流程
- android 5.0 zygote启动代码流程
- Android系统进程Zygote启动流程
- Android Zygote启动流程源码解析
- Android源码(1) --- Zygote进程启动流程
- android核心机制之Zygote启动流程
- Android Zygote启动流程源码解析
- zygote启动流程
- Zygote 启动流程分析
- Zygote进程启动流程
- zygote启动流程
- Android启动流程分析(十一) zygote的启动
- Android源码解析之(八)-->Zygote进程启动流程
- Android源码解析之(八)-->Zygote进程启动流程
- Android系统启动流程(二)解析Zygote进程启动过程
- Android runtime机制(二)zygote进程的启动流程
- Android源码基础解析之Zygote进程启动流程
- Zygote进程的启动流程
- freemarker高级用法1
- C#实现IE代理
- php 链接sql server
- hdu 1114 Piggy-Bank(完全背包)
- Metadata Locking在5.5里所做改动带来的影响
- Android zygote启动流程
- ORTP库的一个例子讲解rtpsend.c
- System.getProperty()参数大全
- Servlet 3.0笔记之Servlet单实例以及线程安全小结
- php创建新的篮子
- POJ1787:Charlie's Change(记录路径的多重背包)
- ArcGIS锁的介绍
- NSValue用法
- Xcode中显示Line Numbers行号