进程相关

vm本身是一个class,在进程创建的时候创建的vm对象,用于c/c++对接java,Android 基于linux<sendboxed>的概念,每个进程都是一个盒子.两个盒子之间不能直接存取.因此,为了确保App的沙盒效果,(每个进程都是一个盒子).


每个进程都需要一个主线程来处理ui,所以每个主线程都有一个MQ,来处理Ui和其他的线程送来的Message.主线程闲下来后,就不停的执行looper,不断访问MQ.


一个App的创建过程

在App进程创建之前,会有系统进程,其中包kInit进程,Zygote进程,ServiceManager和SystemServer等,其中ServiceManager中的AndroidService是用java写的;

Linux启动后把硬件驱动都挂机来,准备就绪就,cpu的控制权会转移到init进程,此进程开启时,会先读取配置文档,并依据配置文档(Init.rc脚本)来创建ServiceManager和Zygote

最后由Zygote创建VM和SystemServer进程,,当AMS(ActivityManagerService)启动一个app的时候,就通过Socket请求Zygote来fork一个进程,给这个即将要启动的app.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值