博客
关于我
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 索引失效的 15 种场景!
查看>>
MySQL 索引深入解析及优化策略
查看>>
MySQL 索引的面试题总结
查看>>
mysql 索引类型以及创建
查看>>
MySQL 索引连环问题,你能答对几个?
查看>>
Mysql 索引问题集锦
查看>>
Mysql 纵表转换为横表
查看>>
mysql 编译安装 window篇
查看>>
mysql 网络目录_联机目录数据库
查看>>
MySQL 聚簇索引&&二级索引&&辅助索引
查看>>
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>