Yinchen 的博客
首页
分类
归档
关于
首页
分类
归档
关于
登录
标签:Service
清除筛选
Android-Framework(十八)-bindService 的通信过程
2026/10/13
Android系统
一次 bindService 会跨过客户端、systemserver 和 Service 进程。Java 层传出的对象先写成传输结构,Binder 驱动再为目标进程建立引用。客户端提交的是 BINDERTYPEBINDER,其中保存对象地址与 cookie;驱动为目标进程建立 binderref、分配 handle,接收方此后凭 handle 发起调用。回调返回原进程时,cookie 保存的本进程
Android-Framework(十七)-startService 与 bindService 的启动流程
2026/10/13
Android系统
startService 和 bindService 表面上对应两套 API,进入 Framework 后却共享了大半条启动链。两者都从调用方进程进入 ContextImpl,经 Binder 到达 system_server 中的 ActivityManagerService(下文简称 AMS),由 ActiveServices 查找或创建 ServiceRecord,再把生命周期调用投
Android-Framework(十六)-startActivity 的启动过程
2026/10/12
Android系统
本文依据 corpus 仓库中的四段录屏整理,内容覆盖桌面入口、前一个 Activity 的暂停、目标进程判定,以及新 Activity 的创建与显示。 上一篇《Android-Framework(十五)-进程的 fork 创建过程》已经分析 startSpecificActivityLocked 到 Zygote fork、ActivityThread.main 、attachApplic
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(八)-从驱动层来分析服务的添加过程
2026/09/21
Android系统
视频素材:[Android Binder驱动-从驱动层来分析服务的添加过程] Android Binder驱动:从驱动层分析服务的添加过程 一、Media 服务注册流程 一个 Media 服务调用 addService 时,用户态只是把服务名和 Binder 对象写进 Parcel,再发起一次 ioctl。驱动随后要解决三个问题:谁有资格接收“添加服务”请求,接收线程睡在哪里,以及带着 Binde
上一页
1
/ 2
下一页