Android 进程的创建

        之前面试的时候被问了一个问题:你能描述下linux下一个进程的启动流程吗?或者安卓的也可以。我想了下,嗯不会,面试中的问题总是来的那么猝不及防。安卓启动一个apk就是一个进程,来看下安卓下如何启动一个进程的。

        先简单说下安卓系统的启动流程。安卓系统开机先是由BootLoader引导程序启动,把kernel拉起来并运行。kernel启动时,设置缓存、被保护存储器、计划列表,加载驱动。当kernel完成系统设置,它首先在系统文件中寻找”init”文件,启动init进程,init对init.rc文件进行解析,启动zygote。zygote是安卓系统的第一个Java进程,是所有Java进程的父进程,创建system server 、AMS、pws等进程。等系统相关的服务都启动后,然后开始启动apk。

       

        接下来看看,安卓如何启动一个apk的启动流程,我手上的板子是安卓4.4.2的系统,所以安卓4.4.2的源码来说,大的调用流程如下,从activity启动到zygote fork新的进程。Process::openZygoteSocketIfNeeded到ZygoteConnection::runOnce,是通过socket通知zygote进程,创建子进程,这样app的进程就启动了。 但是内存的申请在哪儿,还是得找时间再看看。毕竟面试的时候大家都喜欢问内存相关问题

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值