Service的绑定过程
2024-10-15 03:14:30
--摘自《Android进阶解密》
第一步:ContextImpl到AMS的调用过程
第二步:Service的绑定过程
1)几个与Service相关的对象类型
* ServiceRecord 用于描述一个Service
* ProcessRecord 一个进程的信息
* ConnectionRecord 用于描述应用程序进程和Service建立的一次通信
* AppBindRecord 应用程序进程通过Intent绑定Service时,会通过AppBindRecord来维护Service与应用程序进程之间的关联。其内部存储了谁绑定的Service(ProcessRecord)、谁绑定的Service(AppBindRecord)、绑定Service的Intent(IntentBindRecord)和所有绑定通信记录的信息(ArraySet<ConnectionRecord>)
* IntentRecord 用于描述绑定Service的Intent
2)bindService方法内部会启动Service
3)ServiceDispatcher是LoadedApk的内部类,InnerConnection的connected方法内部会调用H的post方法向主线程发送消息,并且解决当前应用程序进程和Service跨进程通信的问题
1)IServiceConnection,它是ServiceConnection在本地的代理,用于解决当前应用程序进程和Service跨进程通信的问题,具体实现为ServiceDispatcher.InnerConnection
最新文章
- 网络适配器输入的IP地址 已经分配给另一个适配器
- Bootstrap<;基础十三>; 按钮组
- 16个常用IO流
- tcp协议头窗口,滑动窗口,流控制,拥塞控制关系
- web开发必备-网络基础知识---记录一下
- JavaScript:单选钮的事件处理
- MongoDB牛刀小试
- (转载)OC学习篇之---协议的概念和用法
- Oracle中的 UPDATE FROM 解决方法
- node开子线程模块--tagg2
- 需要 了解 j2ee 框架
- uniq和sort的用法
- 至Webserver构造svgz的文件需要http头,让你的浏览器中打开svgz档
- [跟我学Spring学习笔记][DI配置与使用]
- Linux内核源代码解析之——我与神童聊Linux内核
- php一些函数及方法...
- 用纯css改变select的下拉菜单
- 使用Azure Policy(策略)强制实现资源Tag的坑
- SQL Server查询中对于单列数据&#39;,&#39;分割的数据进行的拆分操作,集合的每一个行变多行
- C# 发展史