一. 引言 BroadcastRecord,ServiceRecord都继承于Binder对象,而ActivityRecord并没有继承于Binder。 但ActivityRecord的成员变量appToken的数据类型…
标签:Gityuan
四大组件之ContentProviderRecord
一. 引言 作为四大组件之一的ContentProvider,相比来说是设计得稍逊色,有些地方不太合理,比如provider级联被杀, 请求provider时占用system_server的binder线程来wait()…
四大组件之ServiceRecord
一. 引言 Android系统中最为重要的服务便是AMS, AMS管理着framework层面四大组件和进程. 本文从另一个维度 来说一说四大组件之一的Service. 每个app进程运行的Service, 对应于sys…
四大组件之BroadcastRecord
一. 引言 广播在Android系统使用频率比较高,广播的使用场景往往是在满足某种条件下发出一个事件(broadcast), 多处(Receiver)可以监听该事件通知并做出相应的改变。比如亮/灭屏,网络状态切换等事件发…
Binder异常解析
一. 概述 Android有时会抛出Binder相关的异常,比如DeadObjectException,TransactionTooLargeException等。 当遇到这些异常,到底是哪个环节出问题而抛出的呢?总共有…
四大组件之综述
本文基于Android 6.0的源代码,来分析四大组件的管理者AMS frameworks/base/services/core/java/com/android/server/am/ - ActivityManager…
LocalBroadcastManager原理分析
一. 概述 当不需要通过send broadcasts来完成跨应用的通信,那么建议采用LocalBroadcastManager, 将会是更加地高效、安全地方式,并且对系统带来的影响也是更小。 BroadcastRece…
简述Activity与Window关系
一. 概述 AMS是Android系统最为核心的服务之一,其职责包括四大核心组件与进程的管理,而四大组件中Activity最为复杂。 其复杂在于需要跟用户进行UI交互(涉及Window),WMS其主要职责便是窗口管理,还…
理解Android Context
一. 概述 接触过Android的小伙伴, 一定不会对Context感到陌生, 有大量的场景使用都离不开Context, 下面列举部分常见场景: 启动Activity (startActivity) 启动服务 (star…
理解Application创建过程
一. 概述 system进程和app进程都运行着一个或多个app,每个app都会有一个对应的Application对象(该对象 跟LoadedApk一一对应)。下面分别以下两种进程创建Application的过程: sy…
Android类加载器ClassLoader
本文讲述的Android系统体系架构,说一说ClassLoader加载过程 libcore/dalvik/src/main/java/dalvik/system/ - PathClassLoader.java - Dex…
理解AlarmManager机制
一. 概述 上一篇文章理解JobScheduler机制, 介绍了根据一定条件而触发的任务可以采用JobScheduler. 那么对于只是定时的任务, 而非考虑网络/时间之类的条件,也可以直接采用AlarmManager来…