activity启动流程记录
来源:互联网 发布:python sql写入变量 编辑:程序博客网 时间:2024/06/03 19:09
只作为自己记录用的简单草稿
主要是app与AMS的ipc通信,可以看下binder机制
1,从launcher启动分析,startActivity到Instrumentation:execStartActivity(),通过ActivityManagerNative获取到AMS的binder代理客户端ActivityManagerProxy
#相关类关系
ActivityManagerNative 继承Biinder 实现 IActivityManager
ActivityManagerProxy为ActivityManagerNative内部类,实现IActivityManager
AMS 继承于ActivityManagerNative
ActivityManagerProxy 是AMS的客户端代理,实现app端进程与systemservice(AMS)进程间的通信
2, 在ActivityManagerProxy的startActivity中通过mRemote.transact(START_ACTIVITY_TRANSACTION,data, reply, 0);调用AMS中的相关方法
3,接受到调用请求,AMS有着复杂的逻辑(细看ActivityStackSupervisor,通过这个类实现对ActivityStack的部分操作),之后会给zygote发送创建进程请求(socket方式)
4,zygote生成(fork)用于承载服务的进程ActivityThread,ActivityThread通过ActivityManagerProxy给AMS发送attachApplication(mAppThread)请求,thread IApplicationThread,
就是ApplicationThread在服务端(AMS)的代理类ApplicationThreadProxy,随后AMS通过IPC调用ApplicationThread的对应方法,
5,ApplicationThread通过hander通知ApplicationThread完成HandlerLauncherActivity,最后通过Instrumentation.makeApplication(),完成activity实例化。
- activity启动流程记录
- 天天记录 - Android Activity 启动流程简单整理
- Activity的启动流程
- activity 启动流程分析
- Activity启动流程
- activity启动流程
- Activity的启动流程
- Activity的启动流程
- activity 启动流程分析
- Activity启动流程
- Activity 视图启动流程
- Activity的启动流程
- Activity启动流程
- activity的启动流程
- Activity启动流程
- Activity启动流程阅读
- Activity的启动流程
- Activity的启动流程
- Cg Programming/Unity/Diffuse Reflection漫反射
- 第一次写博客
- 递归SQL简单学习
- 大白菜装机步骤
- Java集合之泛型
- activity启动流程记录
- AGC 018
- MUI介绍
- FPGA基础知识之1——FPGA是什么?
- Java关键字finally_动力节点Java学院整理
- 在 Windows 上安装 MySQL
- 蓝牙HCI剖析(三)
- jdk配置环境变量
- Linux命令发送Http的get或post请求(curl和wget两种方法)