--摘自《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

最新文章

  1. 网络适配器输入的IP地址 已经分配给另一个适配器
  2. Bootstrap&lt;基础十三&gt; 按钮组
  3. 16个常用IO流
  4. tcp协议头窗口,滑动窗口,流控制,拥塞控制关系
  5. web开发必备-网络基础知识---记录一下
  6. JavaScript:单选钮的事件处理
  7. MongoDB牛刀小试
  8. (转载)OC学习篇之---协议的概念和用法
  9. Oracle中的 UPDATE FROM 解决方法
  10. node开子线程模块--tagg2
  11. 需要 了解 j2ee 框架
  12. uniq和sort的用法
  13. 至Webserver构造svgz的文件需要http头,让你的浏览器中打开svgz档
  14. [跟我学Spring学习笔记][DI配置与使用]
  15. Linux内核源代码解析之——我与神童聊Linux内核
  16. php一些函数及方法...
  17. 用纯css改变select的下拉菜单
  18. 使用Azure Policy(策略)强制实现资源Tag的坑
  19. SQL Server查询中对于单列数据&#39;,&#39;分割的数据进行的拆分操作,集合的每一个行变多行
  20. C# 发展史

热门文章

  1. jzoj6099. 【GDOI2019模拟2019.4.1】Dist
  2. 栈&amp;队列
  3. Math &amp; Number Theory
  4. grovvy身份证(全)
  5. 金融量化分析【day112】:均值回归策略
  6. I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor
  7. SPFA+SLF+LLL
  8. PYTHON语言之常用内置函数
  9. JS转换HTML转义符,编码及解码
  10. 使用/dev/poll的str_cli函数