以下内容为原创欢迎转载,转載请注明
首先我们知道Android
是基于Linux
的,当Linux
内核加载完成时就会自动启动一个init
的进程
又因为我們每当我们启动一个App时,就会生成一个新的dalvik
实例并处于一个新的进程(当然一个App也可能是多进程的)。
当我们打开第一个App的时候就会通过init
进程fork出一个zygote
进程。之后打开新的App的时候都会fork
之前的zygote
进程
monTimeManagementService
:管理本地常见的时间配置的服务,当网络配置变化时会重新配置本地服务
调用这个方法用来告诉ActivityManagerService
此时可以运行第三方的代码了(注意:这里的Home界面、Launcher等内置的App也算昰第三方的App)。
然后我们再回过头去看看在我们前面创建系统级的Context
(createSystemContext
)的时候做了什么:
参数system
表示是否是系统级的线程,现在我们是启动整个Android系统显然当前传入的参数为true
。所以进入else首先,创建一个Instrumentation
Instrumentation
是什么?暂时先挖个坑接着通过System