Android FrameWork - 學習啓動篇

首先明確一下前提條件:

  1. 有 C/C++ 基礎,能夠閱讀 C/C++ 的代碼;
  2. 有 Linux 系統內核基礎;
  3. 有 Android 開發相關的工作經驗(1-3年);
  4. 有 UML 建模基礎。

如果大家是從事 Android 系統開發的,那麼閱讀系統源碼是必修課程。如果想成爲高級 App 開發工程師,那麼閱讀系統源碼也是必修課程,只是這必修課程裏面有選修內容,後面我想講的就是必修課程裏面的選修內容。如果你是剛剛入門,建議先打好基礎,千萬不要一上看來就看源碼,如果大家沒有 C/C++ 和 Linux 內核基礎,需要看看我之前的文章,記住一定要循序漸進。

這裏我們還是反覆強調一下閱讀源碼的重要性,僅僅代表個人的一些觀點和看法。我們在開發過程中遇到的 100% 問題都能通過源碼分析解決,在 Buggly 上遇到的 100% 問題也能通過源碼分析解決,能夠幫我們徹底的做好性能優化,我們能從源碼裏面學到很多的設計思想和設計理念,能夠做一些常人看似無法實現的功能,總之源碼是我目前爲止見過的最好的教學資料。

在真正開始學習 Android FrameWorker 前,我們先來了解一下 Android 的前世今生以及幾個關鍵性的人物,希望能給我們一些啓發。80年代有“大哥大”,90年代有諾基亞,到後來的 iOS 和 Android,今天回過頭去看大概是 30 年左右差不多是人的半輩子。Android 系統一開始並不是直接由 Google 研發出來的,它的前生是 AndyRubin 創建的公司 Android 研發的,這個操作系統也因此和 Android 公司同名。Google 在2005年以4000萬美元收購了剛建立22個月的高科技企業 Android,Android 的負責人兼 CEO AndyRubin 也隨之成爲 Google 的工程部副總裁,並繼續進行 Android 項目的開發。2008年9月22號,第一款搭載 Android 操作系統的手機誕生,它就是 HTC Dream(T-Mobile G1),並於次日正式發佈了 Android 1.0。2009年發佈 Android 1.1,在 Google 內部被稱爲 “Petit four”,這是一種法式的甜點,後來以 Android 1.5 Cupcake ”(紙杯蛋糕)開始的版本都以甜點的方式命名版本,寓意是 Android 是美味、人見人愛的操作系統。另外 Google 設計師 Irina Blok 還設計了一個綠色的小機器人,作爲 Android 的卡通形象,我來一張圖大家感受一下:

圖片來源於網絡

Andy Rubin:Android 之父也就是 Android 的創始人,1989年進入蘋果工作,1997年去了微軟,谷歌於 2005 年收購了 Android ,在中國這就相當於 BAT 都幹過。
Dianne Hackborn:原來 Android framework 的大部分都是她寫的,我們沒有看錯是個女漢子,Android 中最核心的驅動 Binder 就是她寫的,關於 Binder 驅動其實也有它的前世今生,這裏我就不用文字敘述了。

接下來進入正題,爲了能讓大家整體上大致瞭解 Android 系統涉及的知識層面,我從官方找來了一張詳細的架構圖,從我們最熟悉開始往下看依次分爲 App 應用層、Java 框架層、Android 運行時環境、系統 Native 庫、HAL 和 Linux 內核這5層架構。

圖片來源 google developer

從上面這張圖來看,想要全面學習 Android 系統,似乎並不簡單而且有些難度,但我們作爲應用開發者來講,如果只是瞭解一些選修內容還是沒那麼難,雖然 Android 系統非常龐大且錯綜複雜,但整體架構設計還是很清晰的。後面我們大概從以下幾個方面入手:

  1. 閱讀 Java 和 C/C++ 層的代碼;(選修內容)
  2. 學習 FrameWorker 的設計思想;
  3. 帶着疑問去分析一些開發中常見的問題;
  4. 動手實戰一些開發中常用的 SDK。

後面每分析一個小點,我都會把鏈接補齊,未完待續~

推薦學習資料:
1. 老羅的 Android 之旅
2. android 官網(科學上網)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章