Android 系统学习计划

摘要 本文是 Android 系统学习系列文章中的总纲,列举了打算解决的知识点,以及为什么要进行这个计划。对此系列感兴趣的同学,可以收藏这个链接 Android 系统学习,也可以点击 RSS订阅 进行订阅。

一个想法

对历史有些了解的同学,应该都知道《海国图志》这本书,当时中国闭关锁国,社会、科技和经济发展严重滞后于其他国家,中国近代新思想的倡导者 魏源 不满当时中国的现状,编撰了在当时对西方社会地理和历史最为详实的专著,也就是前文提及的《海国图志》 。文中对 “蛮夷” 的理解有些偏袒,不过在当时之中国相当先进,这给愚昧的国人打开了一扇看外面世界的窗。这本书对我意义重大,以至于对于历史不好的我而言,忘却太多的历史珠玑,唯独这本书还记得,于我而言,就好比,一个科技工作者试图用自己的力量来改变国运,每每念及此,心里还是不免反复。

意大利地图

海国图志

在经历一段时间的 Android 开发以后,虽然对各个方面都有涉及,还是没有形成很系统的知识,大抵都是散兵游勇,不成体系。在思考一番过后,决定建立一个对这些内容进行一次整理,以建立完整的知识结构,更便于自己对 Android 方面加深了解,进一步提升自己的内功。基于自己的认识,建立一个 Android 开发世界的 《海国图志》,也是对自己的提升。

本人能力有限,这些认识大多都是自己的一面之词,如果能侥幸帮到读者,就甚感欣慰。


一个计划

在我所认知的 Android 开发中,可以大致分为如下几部分,分别如下:

  • 系统服务,亦即系统提供的底层功能,主要涵盖 ActivityManagerServices 、WindowsServices 、SystemServer 等等。在进行应用开发时,免不了依赖于这些服务。如果把 Android 比喻成人,系统服务就是其灵魂,如果灵魂出现问题,那么肉身也难保。
  • 应用组件,Android 是基于组件进行的开发系统,为我们所共知的是 Android 四大组件,Activity 、Services 、Broadcast 、ContentProvider。几乎所有 Android 程序都是由这 4 大组件通过 通信框架进行内部串联,并与系统服务进行通信,从而得到具有特定功能的应用。这部分就是人的肉体,颜面,决定了应用长什么样,有什么样的功能。
  • 通信框架,这里主要是指进程间通信 和 线程间通信两大部分。进程间通信依附于 Binder Framework,而 Handler 则承担了一部分的线程间通信的工作。这两大模块,将整个系统串联起来,形成一个完整的整体,这就类似于人的骨架。
  • 周边知识,例如打包、签名、插件化等等。这就是类似于人的装饰品,是给我们撑场面的。

因而这部分的海国图志,是关于上述四部分核心内容的归纳总结,拟定的目录如下:

一、系统服务篇

  1. Android 如何启动?
  2. Android 应用进程启动流程
  3. 什么是系统服务?
  4. ActivityManagerService
  5. SystemServer
  6. Android 应用安装过程源码解析
  7. WindowManagerService
  8. Zoyote 前世今生

二、通信框架篇

  1. Binder 完全解析
  2. Handler 通信框架

三、应用组件篇

  1. Application 是什么?
  2. Context 分析
  3. Activity 组件分析
  4. Services 组件分析
  5. ContentProvider 组件分析
  6. Broadcast 组件分析

四、珠玑拾遗

  1. Gradle 用法
  2. 混淆一二事
  3. Android View 全解析

一个愿望

这部分的工作势必会耗时较长的时间,期间也可能穿插其他内容,不过我会尽量保证进度,期待在完成时,能有一些不错的感悟和心得,最好是进入某种化境 :)。

各位可以关注我的微博 weibo.com/woaitqs,以及个人网站 woaitqs.cc,有事可以邮件沟通 woaitqs[at]gmail.com。

感谢大家的支持!


文档信息

Published: June 16 2016