ActivityThread 源码分析
目录
- 前言
- 分析
- ActivityThread 的消息分发机制
- 总结
前言
前面分析了 Activity 的启动流程,ActivityThread 作为一个非常重要的角色发挥了非常重要的作用,为了对启动流程有更好的理解,所以单独梳理一下 ActivityThread 这个类。
注:整理记录用,非常多不完善之处!
分析
ActivityThread 主要作为 server 端,管理了应用程序的主线程的执行工作,而 ActivityThread 最大的客户端就是 AMS,IApplicationThread 就是 ActivityThread 在 AMS 端的代理。
ActivityThread 的消息分发机制
ActivityThread 中有个类 H 继承了 Handler,用于控制各种消息的分发和处理。
/*
frameworks/base/core/java/android/app/ActivityThread.java
*/class H extends Handler {......public static final int RELAUNCH_ACTIVITY = 160;......@Overridepublic void handleMessage(Message msg) {......switch(msg.what) {......case RELAUNCH_ACTIVITY:handleRelaunchActivityLocally((IBinder) msg.obj);break;......}......}
}
Activity 生命周期的控制,都是由 AMS 通过 IApplicationThead 调用到 ActivityThread 来具体执行。
总结
ActivityThread 源码分析相关推荐
- 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 源码分析 )
文章目录 一.ActivityThread 源码分析 二.ActivityThread 部分代码示例 dex 解密时 , 需要将 代理 Application 替换为 真实 Application ; ...
- 2-APP启动过程2+ActivityThread源码分析
下面看下app初始化的主要步骤,app的初始化时从ActivityThread的main()开始的.首先,ActivityThread并不是一个线程,但它从main()跑起来后,它是程序运行的当前环境 ...
- ActivityThread源码分析
1.问题 Android 11 Launcher启动流程分析说过,Android App进程的入口是"android.app.ActivityThread",那么: Activit ...
- 【Android 启动过程】Activity 启动源码分析 ( ActivityThread 流程分析 二 )
文章目录 前言 一.ActivityManagerService.attachApplicationLocked 二.ActivityStackSupervisor.attachApplication ...
- 【Android 启动过程】Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 二 )
文章目录 前言 一.ActivityThread 类 handleLaunchActivity -> performLaunchActivity 方法 二.Instrumentation.new ...
- 【Android 启动过程】Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 一 )
文章目录 前言 一.ClientTransactionHandler.scheduleTransaction 二.ActivityThread.H 处理 EXECUTE_TRANSACTION 消息 ...
- 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )
文章目录 前言 一.热启动与冷启动选择 二.AMS 进程中执行的相关操作 三.通过 Binder 机制转到 ActivityThread 中执行的操作 总结 前言 上一篇博客 [Android 启动过 ...
- 【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread、LoadedApk 类型对象 | 源码分析 )
文章目录 一.获取对象类型分析 二.获取 ContextImpl 类型对象 三.获取 ActivityThread.LoadedApk 类型对象 dex 解密时 , 需要将 代理 Applicatio ...
- 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 )
文章目录 一.Activity 启动源码分析 ( AMS | ActivityManagerService ) 1.Instrumentation 调用 AMS 方法 2.ActivityStarte ...
最新文章
- 洛谷P3966 [TJOI2013]单词(后缀自动机)
- Golang之空结构体和零长数组的实践
- Linux解压rar、zip、war、tar文件
- IOS swift项目的单例模式.swift5以后的单例模式
- android service交互,Android Activity与Service的交互方式
- 手机腾讯视频软件如何开启护眼功能
- dart开发Android服务,关于android:在Flutter应用中使用由swagger生成的Dart代码生成的Web服务...
- python通过ip池爬_python爬虫18 | 就算你被封了也能继续爬,使用IP代理池伪装你的IP地址,让IP飘一会...
- [转]OC与JS的交互详解
- Facebook人工智能实验室的前世今生
- SCOPE 中 SPFILE、MEMORY、BOTH 的小小区别
- NIUDAY 七牛美图 AI 共享日 | 大咖云集 邀您共同探索各场景下的 AI 应用与落地...
- 音频音量控制工具SoundSource 5 for Mac
- 360与百度的竞争分析
- 给非天才准备的 GRE 单词背诵方案
- Scrum敏捷开发流程
- python模拟B-S期权定价模型
- 数论—乘法逆元—费马小定理
- linux格式化叫大硬盘命令,Linux_format命令 参数说明,格式化 格式化指定卷中的磁盘 - phpStudy...
- 人口空间分布格局(1)