1. 程式人生 > >第五期 基於模擬器上的實踐和學習規劃 《手機就是開發板》

第五期 基於模擬器上的實踐和學習規劃 《手機就是開發板》

https://blog.csdn.net/aggresss/article/details/53538575

        前面三期我們分別動手實踐了AOSP,kernel和APP的編譯環境搭建,這是我們實踐的基礎,接下來我們繼續深入,探索一下android的組成原理,並且每個環節都設定一個實驗來驗證學習的理論。在使用真正的手機操作之前我們有必要使用之前搭建的模擬器(emulator)來進行一些實驗,通過一些簡單的Demo程式來對android這個龐大的系統有一個感性的認識,因為模擬器的不存在真是的硬體,這樣排除了硬體故障給我們帶來的困擾。有些事情就是得一步一步的來,像載人航天,在探索的過程中先載個猴子或者狗上去是必經之路,我們也是先用模擬器實驗再用真機實驗,要符合事物發展的一般規律。
        下圖是Google給出的android結構層次圖,接下來我們分別通過簡單Demo的方式把每個層次都實踐一下。

我們通過模擬器要研究的問題主要分為四個方面:
        1.Android 全棧結構;
        2.Android ROM結構;
        3.Android 啟動流程;
        4.AOSP   編譯系統。
        Android 全棧結構 方面,我一共做6個實驗,包括核心驅動,可執行程式,HAL,JNI,Android service, Android app。這6個實驗會連在一起實現一個android完成一次底層硬體呼叫的完整過程。
        Android ROM結構 方面,詳細分析Android每一個分割槽的作用和結構,學習怎麼製作和修改Android的五大映象檔案:system.img,userdata.img,ramdisk.img,boot.img,recovery.img。
        Android 啟動流程 方面,詳細分析Android 啟動的每一個環節所做的工作。
        AOSP 編譯系統 方面,系統分析android映象檔案的生成過程,Android.mk檔案的語法,編譯Android系統的系統環境初始化過程。
        在學習的過程中給我最大幫助的是 老羅的android之旅 這系列部落格http://blog.csdn.net/column/details/androidluo.html?&page=5
我的實驗內容都是在老羅的實驗基礎上針對android6.0做了一些修改,在這裡特別說明一下並表示感謝。