基于Android 6.0的源码剖析, 分析bind service的启动流程。

/frameworks/base/core/java/android/app/ContextImpl.java

/frameworks/base/core/java/android/app/LoadedApk.java

/frameworks/base/core/java/android/app/IServiceConnection.aidl(自动生成Binder两端)

一. unbind

文章bindService启动过程分析,介绍了 bindService 的过程,本文介绍其对应的另一个操作 unbind。

unbind调用链:

AMP.unbindService

AMS.unbindService

AS.unbindServiceLocked

AS.removeConnectionLocked

ATP.scheduleUnbindService

AT.scheduleUnbindService

AT.handleUnbindService

Service.onUnbind

AS.bringDownServiceIfNeededLocked

AS.bringDownServiceLocked

ATP.scheduleUnbindService

AT.scheduleUnbindService

ATP.scheduleStopService

AT.scheduleStopService

1.1 AMP.unbindService

... //省略,未完待续

二. onServiceDisconnected

当service所在进程死亡后,binderDied死亡回调后触发的。

2.1 binderDied

[-> LoadedApk.ServiceDispatcher.DeathMonitor]

private final class DeathMonitor implements IBinder.DeathRecipient

{

DeathMonitor(ComponentName name, IBinder service) {

mName = name;

mService = service;

}

public void binderDied() {

death(mName, mService); //【见流程2.2】

}

final ComponentName mName;

final IBinder mService;

}

2.2 death

[-> LoadedApk.ServiceDispatcher]

android serviceconnection unbind流程,Android unbindService 流程分析相关推荐

  1. android serviceconnection unbind流程,Android - Service Bind/Unbind 使用

    Service Bind/Unbind 使用方式 本文介绍了本地服务,也就是同一个进程内的服务,如何使用 Bind/Unbind 方式被 Activity 使用. 本文不涉及 AIDL 使用 Serv ...

  2. android serviceconnection unbind流程,Android Service 再次 unbindSrvice 时的问题

    在 Android Service 未被绑定的情况下,调用 unbindService(connection) 会报错误:service Service not registered, 所以在解除绑定 ...

  3. android studio四大组件,Android 四大组件 Service 完全理解

    瞎忙到头晕... Service主要使用在后台比较耗时和运行时间较长的逻辑.但是在service中使用 Thread.currentThread().getId() 获取得到的却是1,也就是主线程.如 ...

  4. Android内存泄漏的检测流程、捕捉以及分析

    https://blog.csdn.net/qq_20280683/article/details/77964208 Android内存泄漏的检测流程.捕捉以及分析 简述: 一个APP的性能,重度关乎 ...

  5. Android 7.0 挂断电话流程分析

    1.图形显示 挂断电话分为本地挂断和远程对方挂断 2.本地挂断 1).点击按钮 先看按键的监听事件 CallCardFragment.java 中有对按钮的监听事件 @Overridepublic v ...

  6. (六十五)Android O StartService的 anr timeout 流程分析

    前言:之前在(六十四)Android O Service启动流程梳理--startService 梳理了startService的一般流程,anr的没有涉及,本篇就以anr的为关注点梳理下流程. 参考 ...

  7. 【SemiDrive源码分析】【X9芯片启动流程】30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一)

    [SemiDrive源码分析][X9芯片启动流程]30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一) 一.Android Kernel 启动流程分析 ...

  8. Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析

    本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. ...

  9. Android 源码 Camera2 预览流程分析四

    <Android 源码 Camera2 预览流程分析二>中进行了流启动,这是调用 QCamera3Channel start() 方法实现的,对应于 HAL_PIXEL_FORMAT_YC ...

最新文章

  1. 用计算机绘制函数图象教案,信息技术应用 用计算机画函数图象教学设计(教案)...
  2. 思科表示视频资源将在2022年占据所有互联网流量的82%
  3. NOIP Mayan游戏
  4. 机器学习预测+akshare
  5. cad查看_CAD与天正软件对齐命令实例讲解
  6. python 财务分析-linux 复制移动命令详解
  7. Python int() 函数
  8. c++类与对象之默认成员函数
  9. 非平稳序列的随机分析
  10. 中国计算机学会推荐国内期刊目录
  11. Sharpen 的调试步骤
  12. PG与mysql的区别
  13. 开发者工具绕过前端debuger
  14. 《五子棋大师》技术支持
  15. 小觅相机录制rosbag数据集
  16. SolarWinds
  17. 抽象类不能声明主体_软件的主导地位能否继续
  18. 微信公众号授权(获取用户信息)
  19. 前端构造桌面级应用(QQ音乐)
  20. 体力劳动?脑力劳动?

热门文章

  1. 里面怎么模拟裂纹_警惕!你买的翡翠有裂纹吗?它能让翡翠的价值暴跌
  2. 为什么redis取出来是null_[2020] Redis 最新面试题
  3. 谭民机器人_机器人视觉伺服研究进展-中科院自动化所-谭民.
  4. 遍历children_589. N叉树的前序遍历
  5. Python二级笔记(2)
  6. 64位ubuntu arm-linux-gcc,在ubuntu 64位的机器上执行arm-linux-gcc提示 no such file or directory【转】...
  7. 地铁售票系统设计思想及部分代码
  8. Linux Note
  9. 教你如何进入有密码的 XP 系统(下)
  10. LightGBM中GBDT的实现