Yinchen 的博客
首页
分类
归档
关于
首页
分类
归档
关于
登录
标签:Framework
清除筛选
Android-Framework(十五)-进程的 fork 创建过程
2026/10/11
Android系统
一、启动 Activity 时,进程不存在会发生什么 ActivityStackSupervisor.startSpecificActivityLocked 以进程名和 uid 查询 ProcessRecord。记录存在且 app.thread 已绑定时,AMS 可以直接调用 realStartActivityLocked ,其余情况会进入 startProcessLocked 。 源码位
Android-Framework(十四)-Launcher的启动过程
2026/10/07
Android系统
一、AMS.systemReady 桌面启动请求由 AMS 在 systemReady 里发出( frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 第 11810 行附近): startHomeActivityLocked 做的事分三件: 拼home intent、让 PMS 解
Android-Framework(十三)-普通应用的安装过程
2026/09/25
Android系统
本文探讨的问题是:用户在文件管理器中点开一个 APK 后,系统怎样把它放进 /data/app、解析包信息,并把安装结果送回界面?从源码看,这条链横跨 PackageInstaller 应用进程、system_server 和 com.android.defcontainer 三个进程。 一、安装入口:点开 APK 后系统处理了什么 1.1 确认界面属于 PackageInstaller 文件管理
Android-Framework(十二)-AMS与PMS的启动过程
2026/09/23
Android系统
素材来源于“AMS 的启动过程分析”“PMS 的启动过程分析”“安装包的解析过程分析”三段视频。 一、system_server 应用进程里的 Application.onCreate 已经处于启动链后段。此时系统早已知道包名对应哪个 UID、入口 Activity 是谁、它声明了哪些 intent-filter。这些数据若到 startActivity 时才从 APK 临时读取,每次组件解析
Android-Framework(十一)-彻底理解Handler的通信过程
2026/09/22
Android系统
一、Handler 的循环为何不烧满 CPU Looper.loop 中确实存在一个没有退出次数限制的 for (;;)。但“循环一直存在”和“CPU 一直执行循环体”是两回事。只要当前没有可立即处理的消息,Java 层就会把等待时间交给 nativePollOnce,native 层最终进入 epoll_wait。线程此时处于阻塞等待状态,不会反复读取队列。 这条等待链可以总结为3点: 延迟
Android-Framework(十)-彻底理解驱动层的通信流程
2026/09/22
Android系统
素材来源:sanyinchen/corpus 仓库,资料整理自哔哩哔哩 Android Binder 源码教程。 一、一次 startActivity 包含两次 Binder 通信 旧版 Android Framework 中,Activity.startActivityForResult 会经 Instrumentation.execStartActivity 触发这类调用: 这一行发生
Android-Framework(九)-从Java层跟踪服务的查找过程
2026/09/21
Android系统
视频素材:[01.驱动层单向通信流程回顾] App 调用 startActivity 时,代码里那个看似普通的 getDefault ,到底怎样找到另一个进程里的 ActivityManagerService(下文简称 AMS)? 答案不是“Binder 帮我们找到了”这么简单。沿调用栈往下走,会看到一次查询如何穿过 Java、native 和驱动,再原路带回一个 handle。 而且这里其
Android-Framework(六)-开机启动ServiceManager进程
2026/09/20
Android系统
本文整理自 Android 6.0(Marshmallow)时期的 servicemanager 源码与配套素材。讨论对象是独立的 servicemanager 进程,以及它自带的 service_manager.c、binder.c 实现。 一、ServiceManager ServiceManager 开机后完成三件事:binderopen 打开 /dev/binder 并映射 128KB 只
上一页
2
/ 3
下一页