深入浅出理解Activity启动流程
来源:互联网 发布:淘宝类目销售比列 编辑:程序博客网 时间:2024/06/14 17:16
源码的流程比较复杂,深入理解之前,先以最简化的形式梳理下:
以android5.1分析
android系统是基于Linux内核,所以在启动的时候会先去加载Linux内核,内核启动时会去加载
各种驱动以及其他数据结构。
android的第一个进程是初始化进程init,在源码中是init.c,init.c在源码中有多个,我们需要
阅读的是内核core的init.c文件,注意包名为(system\core\init)
init.c主要做的工作是:创建目录,挂载磁盘,初始化日志系统,初始化配置文件,以及硬件层(然后后面是很多的队列等待,等待初始化完成,以及一些初始化失败的处理)
然后进入init.rc配置文件,该文件做的工作比较重要,
1.文件系统的初始化,变更权限
2.服务的启动,例如网络模块服务
3.重点,孵化器服务zygote,进程的出现都是由孵化器完成的,该文件是c++文件App_main.cpp,主要做的工作有:
参数初始化,初始化安卓运行时环境,初始化一些重要参数,然后开始启动android的代码
ZygoteInit.java
所在包是android.internal.os下,发现构造方法私有,但是有一个main方法
主要做的工作:孵化器的socket注册,预加载perload()
预加载类,资源,OpenGl等
启动安卓系统服务
1.参数初始化,SystemServer,初始化时间,looper(Looper.perpareMainLooper())开始轮询
然后进入nativeInit方法,主要启动传感器服务sensorService,硬件初始化
然后是电源相关启动,显示,应用管理器,服务管理器,系统设置服务,
wifi通知等等,lancher服务
然后开始ActivityManagerService.java
路径在framework下
安全检查如锁屏密码
然后就是到了手机解锁界面
- 深入浅出理解Activity启动流程
- 深入理解Activity启动流程
- 深入理解Activity启动流程
- 深入理解Activity启动流程
- 深入理解Activity启动流程
- 深入理解Activity启动流程(一)–Activity启动的概要流程
- 深入理解Activity启动流程(一)–Activity启动的概要流程
- 深入理解Activity启动流程(三)–Activity启动的详细流程1
- 深入理解Activity启动流程(三)–Activity启动的详细流程2
- 深入理解Activity启动流程(一)–Activity启动的概要流程
- 深入理解Activity启动流程(三)–Activity启动的详细流程1
- 深入理解Activity启动流程(三)–Activity启动的详细流程2
- 深入理解Activity启动流程(二)–Activity启动相关类的类图
- 深入理解Activity启动流程(二)–Activity启动相关类的类图
- Activity的启动流程
- activity 启动流程分析
- Activity启动流程
- activity启动流程
- sun.misc.BASE64Encoder找不到jar包的解决方法
- 聚类︱python实现 六大 分群质量评估指标(兰德系数、互信息、轮廓系数)
- React-Native 工程添加推送功能 (iOS 篇)
- ZOJ3878(Convert QWERTY to Dvorak)
- Ubuntu分区
- 深入浅出理解Activity启动流程
- Android开发GridView与CheckBox使用
- vue-cli项目安装使用stylus步骤
- 欢迎使用CSDN-markdown编辑器
- python-列表分割
- Ubuntu 16.04 下安装 LAMP
- VC2010及以后版本调用WebService接口的方法
- npm常用模块记录
- mupdf中CMYK与RGB的转换算法