System进程的启动过程
来源:互联网 发布:qq三国张飞和关羽js 编辑:程序博客网 时间:2024/06/09 20:33
首先System进程故名思议,是 Android的系统进程,它是android 的卵Zygote孵化而来.
1.我们首先定位到ZygoteInit的startSystemServer方法。里面有forkSystemServer方法,这个是复制一份进程共享资源,返回pid为0的话,就会在子进程中执行handlesystemServiceProcess方法。
2.上面那个方法会关闭不需要的服务端socket,然后执行到systemService的main函数 。
里面有init1和init2的方法,前者启动关键的C++语言开发的系统服务,后者是启动java语言的系统服务。
3.在init2方法里我们把ActivityManagerService,PackageManagerService,ContentService,
WindowManagerService加入到了ServiceManager.通过不同的方法加入,如main,setSystemProcess或者直接加入等。这样就把关键服务启动起来了,也明白了为什么在我们APP进程需要跨进程和system进程通信,通过aidi的方式来调用ServiceManager来获取服务的代理对象了。
0 0
- System进程的启动过程
- Zygote和System进程的启动过程
- Zygote和System进程的启动过程
- Zygote和System进程的启动过程
- Zygote和System进程的启动过程
- Zygote和System进程的启动过程
- Zygote进程启动System Server进程的过程
- 【读书笔记】Zygote 和 System 进程的启动过程
- (二)Zygote和System进程的启动过程
- System Server进程启动过程源码分析
- System Server进程启动过程源码分析
- System进程的启动流程第一部分
- System进程的启动流程第二部分
- Init进程启动Zygote进程的过程
- 以System启动进程
- Zygote进程启动过程的源代码分析
- start_kernel到init进程启动的过程
- Chromium的Render进程启动过程分析
- 管理数据库和表
- Gson java对象和Json互转
- iOS --- CoreGraphics中三种绘图context切换方式的区别
- 数据结构(期末小结)——开始
- python中关于处理汉字乱码的问题
- System进程的启动过程
- 67.FMDB代码示例
- Android创建桌面快捷方式
- 关于Java.Lang.Spring.split()
- hdoj Reverse Number 1266 (字符串)水
- coreApp="true";android:sharedUserId="android.uid.system";android:process="system"
- 文件读写操作
- Canvas与Paint的初级使用
- Json串的单引号和双引号问题