android系统源码分析
文章平均质量分 77
csdn_Mew
吓成一坨兔子
展开
-
动态换肤
思路分析AppCompatActivity在setContentView的时候, 会解析xml文件,用xml文件的每个节点信息创建与之对应的View对象。跟一下setContentView的代码会走到AppCompatDelegate的setContentView方法。这个方法是个抽象方法, 其实现为AppCompatDelegateImpl的setContentViewpublic vo...原创 2019-12-24 20:05:01 · 424 阅读 · 0 评论 -
ActivityManagerService相关
总体架构由图可以知道ActivityManagerService的体系实现也是一个Binder机制的实现。因为ActivityManagerService与应用程序运行在不同的进程,所以需要跨进程通信。 ActivityManagerService的作用是管理四大组件的创建,销毁以及生命周期的管理。管理,记录,查询。启动service的流程ContextWrapper 与Con...原创 2019-12-21 16:29:30 · 191 阅读 · 0 评论 -
Android 安装流程梳理
源码版本9.0源码信息可以在这里查看安装的原理分析APK核心安装步骤从AndroidManifest中解析出应用信息、各组件信息、权限信息,代码索引为PackageParser.parseBaseApkCommon()为应用程序分配UID,并让PMS记录个组件信息,代码索引为PMS.scanPackageDirtyLI()、Setting.addUserIdLPw()更新应用程序权限...原创 2019-12-17 11:46:48 · 812 阅读 · 0 评论 -
Android跨进程通信二
1. Binder是什么从机制上来说: Binder是Android中一种跨进程通信的方式从Binder机制实现来说: Binder是一种虚拟的物理设备驱动从Java层面来说: Binder是一个类,实现了IBinder接口。2. Binder机制2.1 背景知识2.1.1 进程空间划分一个进程空间分为 用户空间 & 内核空间(Kernel),即把进程内 用户 & 内...原创 2019-12-14 16:39:45 · 2734 阅读 · 0 评论 -
Android跨进程通信一
进程与线程的区别进程一般是指执行单元,在PC和移动设备上指一个程序或一个应用线程是CPU调度的最小单元,同时线程是一种有限的系统资源一个进程可以包含多个线程Android中单应用使用多进程一般是在AndroidMenifest.xml注册四大组件时,指定android:process属性多进程造成的问题静态成员和单例模式完全失效线程同步机制完全失效SharedPreference...原创 2019-12-11 10:33:44 · 130 阅读 · 0 评论 -
Handler机制分析三
手写Handler流程Looperpublic class Looper { public static final ThreadLocal<Looper> mThreadLocal = new ThreadLocal<>(); /** * 消息队列 */ public MessageQueue mQueue; pr...原创 2019-12-08 12:48:04 · 147 阅读 · 0 评论 -
Handler机制分析二
整体架构创建Looper在应用创建时,调用了ActivityThread的main方法,这个方法里面调用了Looper.prepareMainLooper(); public static void prepareMainLooper() { prepare(false); synchronized (Looper.class) { ...原创 2019-12-07 16:25:46 · 429 阅读 · 0 评论 -
Handler机制分析一
什么是Handlerhandler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一部分在消息队列中逐一将消息取出,然后对消息进行处理。Handler 简单使用 private Handler handler2 = new Handler() { @Override public void handleM...原创 2019-12-07 14:29:31 · 185 阅读 · 0 评论