ARouter 第一篇 - 基本使用|开源库源码分析ARouter|ARouter本系列文章主要分析 ARouter 框架的原理。
这篇文章 里面的一些内容来自:
https://github.com/alibaba/ARouter/blob/master/README_CN.md
官网对其使用已经总结的很好了,本篇博文在其基础上整理了下~~
1 简单介绍对于 ARouter 大家只要做过模块化开发,那么就一定有所了解,ARouter 是阿里巴巴开源的一款路由框架,用于解决 ...
阅读更多
PMS 第 12 篇 - 通过 adb 指令分析 enable/disable 过程|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android7.1.1 分析 PackageManagerService 的架构设计!
0 综述本文来分析下 pms enable 相关的操作:
adb shell pm enable
adb shell pm disable
同样的,我们从 Pm 中看起!
1 Pm1.1 run12345678910111213141516171819202122232425262728 ...
阅读更多
PMS 第 11 篇 - 通过 adb 指令分析 hide/unhide 过程|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android7.1.1 分析 PackageManagerService 的架构设计!
0 综述本文来分析下 pms hide 相关的操作:
adb shell pm hide
adb shell pm unhide
这个指令可以让一个 package 被 hide,无法被找到,同样的,我们从 Pm 中看起!
1 Pm1.1 run和其他方法的调用逻辑一样,进入 run 方 ...
阅读更多
PMS 第 10 篇 - 通过 PackageInstaller 分析 uninstall 过程|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android7.1.1 分析 PackageManagerService 的架构设计!
0 综述前面总结了通过 pm uninstall 的方式来卸载一个 apk,下面我们来分析下通过 PackageInstaller 来卸载应用!
对于用户来说,他们最常用的卸载方式,就是进入应用管理,然后进入指定的应用界面,选择卸载应用:
我们通过 dumpsys window 指令,可以 ...
阅读更多
PMS 第 9 篇 - 通过 adb 指令分析 uninstall 过程|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现!
0 综述本篇文章总结下 uninstall package 的过程,一般来说,卸载一个应用有如下的方式:
adb uninstall(最终调用的还是 pm uninstall/cmd package uninstall);
adb cmd package uninstall;
...
阅读更多
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 ...
阅读更多