android应用程序框架层创建的应用程序进程学习

参考http://blog.csdn.net/luoshengyang/article/details/6766010

Android应用程序框架层创建的应用程序进程有两个特点:
进程的入口是ActivityThread.main
进程天然支持Binder进程通信机制

1.ActivityManagerService.startProcessLocked
2.Process.start:为应用程序创建新的进程,他传入的第一个参数是android.app.ActivityThread
3.Process.startViewZygote:将创建进程的参数放到argsForZygote参数列表中,runtime-init:
表示要为新创建的进程初始化运行库
4.Process.zygoteSendAndGetPid:sZygoteWriter是一个socket写入流,由openZygoteSocketIfNeeded打开
5.ZygoteInit.runSelectLoopMode
6.ZygoteConnection.runOnce:Zygote.forkAndSpecialize创建进程
7.ZygoteConntection.handleChildProc
8:RuntimeInit.zygotInit:这里有两个关键的函数调用:
zygoteInitNative:执行binder驱动程序初始化的相关工作
invokeStaticMain:执行进程的入口工作,执行android.app.ActivityThread的main函数
9.RuntimeInit.invokeStaticMain:这个函数里并没有直接调用静态函数main,而是抛出了
ZygoteInit.MethodAndArgsCaller异常,然后让ZygoteInit.main函数捕获这个异常,在调用
main函数。这样使用了清理堆栈
10.ActivityThread.main:这样就可以在进程中启动Activity或service
上述过程不仅指定了进程的入口函数ActivityThread.main,而且还为进程间的Binder通信机制
提供了基础设施。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值