PMS 第 8 篇 - 通过 PackageInstaller 分析 Install 过程|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android7.1.1 分析 PackageManagerService 的逻辑,Android 版本虽然会不断更替,但是代码结构和思想史
0 综述前面总结了通过 pm install 的方式来安装一个 apk,但是这种方式用户是不经常使用的,用户使用的安装途径主要如下:
通过应用商店下载 apk,进行安装;
将 apk 文件移动到关键管理器,点击触发安装;
这里我们来看看 ...
阅读更多
Choreographer 第一篇 Choreographer 原理分析|View 视图Choreographer 编舞者|Choreographer本篇文章基于 Android N(7.1.1)主要分析下 Choreographer 的原理,以对 Android 系统有更好的理解。
1 回顾1.1 scheduleTraversals - 核心触发视图遍历:
1234567891011121314151617void scheduleTraversals() { if (!mTraversalScheduled) { ...
阅读更多
ViewDraw 第三篇 performTraversals 流程分析|View 视图View 的加载和绘制|ViewDraw篇文章基于 Android N - 7.1.1 主要分析下 performTraversals 方法的执行流程;
1 回顾我们来回顾下,当请求到 Vsync 信号后就会触发 callback:
1.1 TraversalRunnable.runTraversalRunnable 只是一个 runnable,其内部会调用另外一个方法:doTraversal()
12345678final class ...
阅读更多
ViewDraw 第二篇 new ViewRootImpl 流程分析|View 视图View 的加载和绘制|ViewDraw本篇文章基于 Android N - 7.1.1 主要分析下 Activity 中 setContentView 的流程,但是此时 UI 还没有显示出来;
真正显示 ui 是在 onResume 方法调用后,这个流程会创建 ViewRootImpl 类,并设置 setView 操作;
1 回顾我们来回顾下 activity 的 onResume 方法的执行。
1.1 ActivityThread ...
阅读更多
ViewDraw 第一篇 setContentView 流程分析|View 视图View 的加载和绘制|ViewDraw本篇文章基于 Android N(7.1.1)主要分析下 View 的加载 setContentView 的流程,以对 View 架构有更好的理解。
1 概述setContentView 这个方法用于设置视图布局文件,在 Activity 的 onCreate 方法中,我们会通过该方法传入一个资源 id:
123456789101112public class SplashActivity ext ...
阅读更多
PMS 第 7 篇 - 通过 pm 指令分析 Install 过程|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现!
0 综述本篇文章总结下 install package 的过程,在 Abdroid 7.1.1 上安装一个应用有如下的方式:
adb install(根据情况转为 cmd package install 或者 pm install)
adb shell cmd package ...
阅读更多
PMS 第 6 篇 - PMS_READY 阶段|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现,本文是作者原创,转载请说明出处!
0 综述最后我们会进入 PMS 初始化的最后阶段:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535 ...
阅读更多
ContentProvider篇 2 - ContentProvider 的启动|AndroidFramework源码分析ContentProvider内容提供者|ContentProvider内容提供者[toc]
基于 Android 7.1.1,分析 ContentProvider 的架构和原理。
0 综述ContentProvider 是进程间通信的利器之一,充当数据存储和出具共享的中间者,其和核心是 Binder 和匿名共享内存!
我们在访问一个 ContentProvider 的时候,一般情况下都会先拉起该 ContentProvider 所在的进程,然后对其的增删改查:
12Conte ...
阅读更多
Java 基础 - SPI 机制原理分析|JavaJava 基础|Java basement本篇文章简要总结和分析下 Java 的 SPI 机制的原理。
1 概述SPI,全称为 Sevice Provider Interface,是 JDK 内置的一种服务提供发现机制,用于框架扩展和代码替换,主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦;
Android 中的 dagger 依赖注入框架的内部就有 SPI 的应用!
2 基本使用
首先要定 ...
阅读更多
PMS 第 5 篇 - PMS_SCAN_END 阶段|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现,本文是作者原创,转载请说明出处!
0 综述system 分区和 data 分区的扫描过程到这里就结束了,下面我们来分析下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344 ...
阅读更多