设为首页 加入收藏

TOP

Android开机流程
2014-11-24 07:54:10 来源: 作者: 【 】 浏览:1
Tags:Android 开机 流程

Zygote进程


在init.rc中有


service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server


从zygote的main()开始,见/frameworks/base/cmds/app_process/app_main.cpp


int main(int argc, const char * const argv[])
{
......
if(0 == strcmp("--zygote", arg)){
......
runtime.start("com.android.internel.os.ZygoteInit",
startSystemServer);
......
}


接下来运行/frameworks/base/core/jni/AndroidRuntime.cpp的start()
void AndroidRuntime::start(const char * className, const bool startSystemServer)
{
......
classNameStr = env->NewStringUTF(className);
......
startMeth = env->GetStaticMethodID(startClass, "main",
"([Ljava/lang/String;)V");
......
}
因此运行/frameworks/base/java/com/android/internal/os/ZygoteInit.java的main().
public static void main(String argv[]){
......
registerZygoteSocket();
preloadClasses();
if(argc[1].equals("true")){
startSystemServer();
}
......


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇BootChart在Android中使用 下一篇Android消息处理系统

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)
·Redis - The Real-ti (2025-12-26 08:20:50)
·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)