博客
关于我
Android进阶解密读书笔记5——第3章:应用程序进程启动过程——第1、2、3、4小节
阅读量:588 次
发布时间:2019-03-11

本文共 639 字,大约阅读时间需要 2 分钟。

第2章我们学习了 Android 系统的启动流程,系统启动后,我们比较关心应用程序是如何启动的,启动一个应用程序首先要保证该应用程序的进程已经被启动,本章我们就来学习应用程序进程启动过程。需要注意,是“应用程序进程启动过程”,不是“应用程序启

动过程”,关于应用程序启动过程(根 Activity 启动过程)将在第 章进行讲解。

3.1、应用程序进程简介

要想启动一个应用程序,首先要保证这个应用程序所需要的应用程序进程已经启动。AMS在启动应用程序时会检查这个应用程序需要的应用程序进程是否存在,不存在就会请求Zygote 进程启动需要的应用程序进程。在 2.2 节中,我们知道在 Zygote的Java 框架层中会创建 Server 端的 Socket ,这个 Socket 用来等待 AMS 请求 Zygote 来创建新的应用程序进程。Zygote 进程通过 fock 自身创建应用程序进程,这样应用程序进程就会获得 Zygote进程在启动时创建的虚拟机实例。当然,在应用程序进程创建过程中除了获取虚拟机实例外,还创建了 Binder 线程地和消息循环,这样运行在应用进程中的应用程序就可以方便地使用 Binder 进行进程间通信以及处理消息了。

3.2、应用程序进程启动过程介绍

应用程序进程创建过程的步骤比较多,这里分为两个部分来讲解,分别是AMS发送启动应用程序进程请求,以及 Zygote 接收请求并创建应用程序进程。

3.2.1、AMS 发送启动应用程序进程请求

 

 

转载地址:http://qpvtz.baihongyu.com/

你可能感兴趣的文章
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>
Mysql 学习总结(89)—— Mysql 库表容量统计
查看>>
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
mysql 将null转代为0
查看>>
mysql 常用
查看>>