没有合适的资源?快使用搜索试试~ 我知道了~
Android 系统启动流分析 & Zygote启动流程分析
5 下载量 158 浏览量
2021-01-03
16:19:56
上传
评论
收藏 206KB PDF 举报
温馨提示
本文是基于Android 7.1进行分析 Zygote在Android系统扮演着不可或缺的角色,Android系统的启动首先需要Zygote参与,比如启动SystemService , 还有一个就是孵化应用的进程,比如我们创建一个Activity也是需要Zygote参与. Zygote 启动分为两个部分: 1.Native程序涉及文件 system/core/ini/service.cpp system/core/rootdir/init.rc system/core/rootdir/init.zygote64_32.rc frameworks/base/cmds/ap
资源推荐
资源详情
资源评论
Android 系统启动流分析系统启动流分析 & Zygote启动流程分析启动流程分析
本文是基于Android 7.1进行分析
Zygote在Android系统扮演着不可或缺的角色,Android系统的启动首先需要Zygote参与,比如启动SystemService , 还有一个就是孵化应用的进程,比如我们创建一个Activity也是需要
Zygote参与.
Zygote 启动分为两个部分启动分为两个部分:
1.Native程序涉及文件
system/core/ini/service.cpp
system/core/rootdir/init.rc
system/core/rootdir/init.zygote64_32.rc
frameworks/base/cmds/app_process/Android.mk
frameworks/base/core/jni/AndroidRuntime.cpp
2.Java程序 涉及文件路径
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
frameworks/base/services/java/com/android/server/SystemServer.java
我们先看一下系统启动的流程图先有一个大概的了解我们先看一下系统启动的流程图先有一个大概的了解
一一.底层程序底层程序
那么Zygote是怎么启动的? 首先是开机的时候会Linux会先启动init进行,这也是手机开机的第一个进程,这个进程启动之后会去加载启动文件init.rc 而init进程的源代码位于
system/core/ini/service.cpp 文件,是由 Service::Start()函数来解释init.rc文件中的命令,而pid_t pid = fork(); 是 0 的时候则返回的是子线程.非0 返回的是父进程.
bool Service::Start() {
......省略代码.........
pid_t pid = fork();
if (pid == 0) {
umask(077);
for (const auto& ei : envvars_) {
add_environment(ei.name.c_str(), ei.value.c_str());
}
for (const auto& si : sockets_) {
int socket_type = ((si.type == "stream" ? SOCK_STREAM :
(si.type == "dgram" ? SOCK_DGRAM :
SOCK_SEQPACKET)));
const char* socketcon =
!si.socketcon.empty() ? si.socketcon.c_str() : scon.c_str();
int s = create_socket(si.name.c_str(), socket_type, si.perm,
si.uid, si.gid, socketcon);
if (s >= 0) {
PublishSocket(si.name, s);
}
}
......省略代码.........
return true;
}
我们来查看一下init.rc文件 文件位置在 system/core/rootdir/ 文件夹下
查看一下文件夹结构
资源评论
weixin_38636983
- 粉丝: 2
- 资源: 872
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功