android Java代码的启动
来源:互联网 发布:淘宝推广软件破解版 编辑:程序博客网 时间:2024/05/05 15:46
讨论从kernel init之后,android系统启动的过程,参看froyo。
A)init.rc中启动了:
1)servicemanager(源码在frameswork/base/cmds/servicemanager/service_manager.c)
2)app_process(源码在frameworks/base/cmds/app_process/app_main.cpp)
3)mediaserver(源码在frameworks/base/media/mediaserver/main_mediaserver.cpp)
B)app_process的main()中调用了AppRuntime(源码在frameworks/base/core/jni/AndroidRuntime.cpp)的start()方法,将“com.android.internal.os.ZygoteInit”传入。
C)AppRuntime的start()该方法最终调用了ZygoteInit(源码在framewors/base/core/java/com/android/internal/os/ZygoteInit.java)的main()方法,同时该方法将android虚拟机使用的native方法注册了(startReg()).
D)ZygoteInit的main()调用了startSystemServer(),startSystemServer()调用handleSystemServerProcess(),handleSystemServerProcess()调用RuntimeInit.zygoteInit(),RuntimeInit.zygoteInit()调用invokeStaticMain(),这个函数顺利执行最终会扔出异常ZygoteInit.MethodAndArgsCaller。这是一个实现了Runnable的异常,由ZygoteInit的main()捕获并调用run()。
E)MethodAndArgsCaller的run()调用SystemServer的mian()方法,init1()和init2()依次执行,ServerThread线程启动,java层的各service初始化、开始运行。ActivityManagerService的systemReady()被调用。
F)ActivityManagerService的systemReady()最终调用resumeTopActivityLocked(),该方法调用startHomeActivityLocked(),这个方法里构造了呼叫HOME的intent,最终HOME启动。
- android Java代码的启动
- android java代码的启动:app_process
- android java代码的启动:app_process
- android java代码的启动:app_process
- android java代码的启动:app_process
- android 启动第三方程序的代码
- android启动其他应用的一段代码
- android的启动过程(代码)
- android 启动其他应用的一段代码
- android启动其他应用的一段代码
- android启动其他应用的一段代码
- android 启动第三方程序的代码
- android开机启动代码
- android开机启动代码
- Android的Java代码优化
- android java的一些代码
- java Android虚拟机启动失败的解决方法
- Android里java程序的编译启动
- Uda驱动-音频
- 从一个Activity跳转到另一个Activity后得到需要的数据后返回加载到原有的Activitiy所在的控件上
- 详解Oracle用户解锁命令的两则实现方法
- 互斥锁pthread_mutex_t的使用
- 深入理解PHP中的匿名函数
- android Java代码的启动
- emulator: ERROR: the user data image is used by another emulator. aborti问题的解决
- tomcat 更改端口及修改监听
- 中如果没有内容,怎么该单元格的边框就没了,要怎么才能显示边框
- DataList如何实现横向排列数据交替行变色!
- VB6.0 开发环境支持鼠标滚轮
- IO多路复用模型的探讨
- BMW 320i维护记录
- AT指令集