一個想法
對歷史有些了解的同學,應該都知道《海國圖志》這本書,當時中國閉關鎖國,社會、科技和經濟發展嚴重滯后于其他國家,中國近代新思想的倡導者 魏源 不滿當時中國的現狀,編撰了在當時對西方社會地理和歷史最為詳實的專著,也就是前文提及的《海國圖志》 。文中對 "蠻夷" 的理解有些偏袒,不過在當時之中國相當先進,這給愚昧的國人打開了一扇看外面世界的窗。這本書對我意義重大,以至于對于歷史不好的我而言,忘卻太多的歷史珠璣,唯獨這本書還記得,于我而言,就好比,一個科技工作者試圖用自己的力量來改變國運,每每念及此,心里還是不免反復。

意大利地圖

海國圖志
在經歷一段時間的 Android 開發以后,雖然對各個方面都有涉及,還是沒有形成很系統的知識,大抵都是散兵游勇,不成體系。在思考一番過后,決定建立一個對這些內容進行一次整理,以建立完整的知識結構,更便于自己對 Android 方面加深了解,進一步提升自己的內功。基于自己的認識,建立一個 Android 開發世界的 《海國圖志》,也是對自己的提升。
本人能力有限,這些認識大多都是自己的一面之詞,如果能僥幸幫到讀者,就甚感欣慰。
一個計劃
在我所認知的 Android 開發中,可以大致分為如下幾部分,分別如下:
- 系統服務,亦即系統提供的底層功能,主要涵蓋 ActivityManagerServices 、WindowsServices 、SystemServer 等等。在進行應用開發時,免不了依賴于這些服務。如果把 Android 比喻成人,系統服務就是其靈魂,如果靈魂出現問題,那么肉身也難保。
- 應用組件,Android 是基于組件進行的開發系統,為我們所共知的是 Android 四大組件,Activity 、Services 、Broadcast 、ContentProvider。幾乎所有 Android 程序都是由這 4 大組件通過 通信框架進行內部串聯,并與系統服務進行通信,從而得到具有特定功能的應用。這部分就是人的肉體,顏面,決定了應用長什么樣,有什么樣的功能。
- 通信框架,這里主要是指進程間通信 和 線程間通信兩大部分。進程間通信依附于 Binder Framework,而 Handler 則承擔了一部分的線程間通信的工作。這兩大模塊,將整個系統串聯起來,形成一個完整的整體,這就類似于人的骨架。
- 周邊知識,例如打包、簽名、插件化等等。這就是類似于人的裝飾品,是給我們撐場面的。
因而這部分的海國圖志,是關于上述四部分核心內容的歸納總結,擬定的目錄如下:
一、系統服務篇
- :clock1: DONE: Android 如何啟動?
- [x] DONE: Android 應用進程啟動流程
- [ ] 什么是系統服務?
- [ ] ActivityManagerService
- [ ] SystemServer
- [x] DONE: Android 應用安裝過程源碼解析
- [ ] WindowManagerService
- [ ] Zoyote 前世今生
二、通信框架篇
- [x] Binder 完全解析
- [x] DONE: Binder 完全解析(一)概述
- [x] DONE: Binder 完全解析(二)設計詳解
- [x] DONE: Binder 完全解析(三)AIDL實現原理分析
- [x] Handler 通信框架
- [x] DONE: Handler消息機制源碼解析
三、應用組件篇
- [ ] Application 是什么?
- DONE: Context 分析
- [ ] Activity 組件分析
- [x] DONE: Activity生命周期是如何實現的
- [ ] Services 組件分析
- [ ] ContentProvider 組件分析
- [ ] Broadcast 組件分析
四、珠璣拾遺
- [ ] Gradle 用法
- [ ] 混淆一二事
一個愿望
這部分的工作勢必會耗時較長的時間,期間也可能穿插其他內容,不過我會盡量保證進度,期待在完成時,能有一些不錯的感悟和心得,最好是進入某種化境 :)。
各位可以關注我的微博 weibo.com/woaitqs,以及個人網站 woaitqs.cc,有事可以郵件溝通 woaitqs[at]gmail.com。
感謝大家的支持!