前言
Hi,我是 Marco,一名 Android 系统开发攻城狮,从 CSDN 到博客园,再到简书、掘金,逛了一圈,最终还是找到了 segmentfault(可能模块的视觉效果比较合我的品味),并打算驻扎下来,回顾总结过往的项目经验和技术积累,把分析研究后总结过的 Fucking Code 心路历程,分享给感兴趣的童鞋,秉承“技术无价,共享自由”的理念,新年再出发,共勉!
架构说明
🏹 1、所有源码的分析都将基于 Android 9.0(Android Pie);
🏹 2、所有发布的博文涉及点主要集中在 Framework 的研究,但不仅限于此,我会同步更新 个人博客 到 segmentfault;
🏹 3、如果点击链接跳转的是博主的首页,无法跳转到指定的内容页,请大家理解(因为个人博客的更新进展比 segmentfault 要稍微快一些,最主要的原因还是重视平台文章的质量,需三思后再发出来!所以,链接会偶尔失效重设,暂时请直接跳转到博主首页查询相关博文)
🏹 4、所有列出的博文都会在后期慢慢补充进来,还会增加新的系列;
🏹 5、Android 源码的分析是个庞大且艰难的过程,希望能有时间和精力支持下去,如果有大家感兴趣的模块或者技术知识,可以留言给我,我们一起研究!
题外话
Android 系统层的源码大到你我无法想象,所以博主才疏学浅,无法涉及到每一个面,每一个点去分析所有的技术知识点,很多时候也是在项目工程中使用到了某个 Api 或者涉及到某个框架,学习后有感而发才整理出一篇拙劣之作,质量可见一斑,实在无法保证能起到点石成金之效果,但都是用心之作,如能帮到大家,那真是荣幸之至。如果有错误纰漏之处,也欢迎大家指正!
博文架构
【计划更新】 | 【相关文章】 | 计划更新时间 |
---|---|---|
核心服务 | ActivityManagerService 系列 | 2019.04 |
– | WindowManagerService 系列 | 2019.05 |
– | PowerManagerService 系列 | 2019.06 |
– | NotificationManagerService 系列 | 2019.06 |
– | WallpaperManagerService 系列 | 2019.07 |
– | AlarmManagerService 系列 | 2019.07 |
– | MountService 系列 | 2019.08 |
– | 待定 | 待定 |
虚拟机 | JVM/Davlik/ART 系列 | 2019.12 |
《Thinking in Android》– “四大组件”篇
【四大组件】 | 【相关文章】 | 状态及规划 |
---|---|---|
Activity | 探讨 Activity 的启动模式 | 完结 |
– | 探讨 Activity 的生命周期 | 完结 |
Service | 探讨 Service 的使用方法 | 完结 |
Broadcast Receiver | 探讨 “动态广播” 和 “静态广播” 的用法和区别 | 完结 |
《Thinking in Android》– “启动阶段”篇
【启动阶段】 | 【相关文章】 | 状态及规划 |
---|---|---|
init | 深入研究 Android 启动阶段 之 init | 完结 |
zygote | 深入研究 Android 启动阶段 之 zygote | 完结 |
systemserver | 深入研究 Android 启动阶段 之 systemserver | 完结 |
Launcher | 深入研究 Android 启动阶段 之 Launcher 启动及加载流程 | 完结 |
《Thinking in Android》– “核心技术”篇
【核心技术】 | 【相关文章】 | 状态及规划 |
---|---|---|
JNI 技术 | 深入研究 Android 核心技术 之 JNI | 完结 |
Binder | 深入研究 Android 核心技术 之 Binder | 完结 |
《Thinking in Android》– “核心机制”篇
【核心机制】 | 【相关文章】 | 状态及规划 |
---|---|---|
事件分发 | 深入研究 Android 核心机制 之 事件分发 | 完结 |
Handler | 深入研究 Android 核心机制 之 Handler(用法) | 完结 |
– | 深入研究 Android 核心机制 之 Handler(原理) | 完结 |
LowmemoryKiller | 深入研究 Android 核心机制 之 LowMemoryKiller | 完结 |
《Thinking in Android》– “设计模式”篇
【设计模式】 | 【相关文章】 | 状态及规划 |
---|---|---|
单例 | 深入研究 Android 设计模式 之 单例模式 | 完结 |
《Thinking in Android》– “进程线程”篇
【进程线程】 | 【相关文章】 | 状态及规划 |
---|---|---|
杀进程 | 深入研究 Android 核心原理 之 进程被杀 | 完结 |
AsyncTask | AsyncTask 详解(用法篇) | 完结 |
同步与死锁 | 浅析多线程中的 “同步” 和 “死锁” 问题 | 完结 |
《Thinking in Android》– “核心服务”篇
【核心服务】 | 【相关文章】 | 状态及规划 |
---|---|---|
PackageManagerService | Framework 核心服务之 PMS 钻研(1)- 启动流程 | 完结,修订 3 次 |
– | Framework 核心服务之 PMS 钻研(2)- 构造函数 | 完结,修订 2 次 |
– | Framework 核心服务之 PMS 钻研(3)- PackageManager | 完结 |
– | Framework 核心服务之 PMS 钻研(4)- PackageInstaller | 完结 |
– | Framework 核心服务之 PMS 钻研(5)- APK 安装流程(PI) | 完结 |
– | Framework 核心服务之 PMS 钻研(6)- APK 安装流程(PMS) | 完结 |
– | Framework 核心服务之 PMS 钻研(7)- PackageParser | 完结 |
《Thinking in Android》– “性能优化”篇
【性能优化】 | 【相关文章】 | 状态及规划 |
---|---|---|
内存泄漏 | 带你领略 Android 内存泄漏的前世今生 | 完结 |
ANR | 全面解析 Android 应用问题 之 ANR | 完结 |
《Thinking in Android》– “常用组件”篇
【常用组件】 | 【相关文章】 | 状态及规划 |
---|---|---|
Fragment | 探讨 Fragment 的生命周期 | 完结 |
《Thinking in Android》– “技术细节”篇
【技术细节】 | 【相关文章】 | 状态及规划 |
---|---|---|
Bug/需求 | 判断应用存在(是否已安装) | 完结 |
– | Ubuntu 识别不到 Devices 的原因及解决方案 | 完结 |
– | 访客模式 PC 端不显示盘符的原因及解决方案 | 完结 |
– | 快速点击导致打开两个重复的 Activity 的解决办法 | 完结 |
– | Android Device 判断当前模式是否为机主模式 | 完结 |
《Thinking in Android》– “算法专栏”篇
【算法专栏】 | 【相关文章】 | 状态及规划 |
---|---|---|
算法复杂度 | 谈谈时间复杂度 | 完结 |
《Thinking in Android》– “开发工具”篇
【开发工具】 | 【相关文章】 | 状态及规划 |
---|---|---|
Android Studio | Android Studio 3.0(Canary 1)支持 Kotlin | 完结 |
耗电检测 | 电池耗电工具使用细则(Google) | 完结 |
《Thinking in Android》– “谷歌认证”篇
【Google认证】 | 【相关文章】 | 状态及规划 |
---|---|---|
GMS认证 | 深入解读 “GMS 认证/测试” 相关工作 | 完结 |