修改Android源码的Launcher的例子
實作說明 1/4: 取得Android原始碼與EeePC移植
這個功能並不難做,事實上,完全不用寫程式。只要把圖檔重做就可以了。只不過前提是,要知道:
1. 如何取得Android OS原始程式碼
2. 如何編譯Android OS
最簡單的做法是:
1. 下載Android原始碼後、取得EeePC的移植(product)
2. 編譯「TARGET_PRODUCT」為eee_701
3. 由於Launcher都是用Java語法寫成的,所以不會有架構(ARM/x86/...)的問題,編譯後可以取得Launcher.apk;APK套件是不分處理器平臺的
實作說明 2/4: 修改圖檔
在Android原始碼的 packages/apps/ 目錄裡,存放了Android內建的應用程式原始碼,Launcher是Android的一個應用程式,所以從這裡找到它的原始碼,並進行修改工程。
切換到以下目錄:
<android source>/packages/apps/Launcher/
接著要修改src/目錄下的內容,還是res/目錄下的內容呢?圖檔屬於Android的「resource」,因此當然是到res/目錄下找到我們要的圖檔。
切換到以下目錄:
<android source>/packages/apps/Launcher/res/
又看到了一大堆目錄,圖檔的部份存放於:
我們先改一下portrait模式的圖檔。找到drawable-port/tray_handle_normal.png檔案如下:
換好後重編Android即可。一行程式都不用改。
實作說明 3/4: 安裝Launcher.apk
重編Android原始碼,接著可以在out/target/product/<product name>/system/app/找到Launcher.apk套件。把Launcher.apk安裝到AVD(Android 模擬器)裡做測試,方法如下:
1. 先啟動一個AVD
2. 執行adb將Launcher.apk手動安裝到AVD裡,指令如下:
$ adb install -r <your-path>/Launcher.apk
成功後可看到以下畫面:
338 KB/s (837376 bytes in 2.417s) pkg: /data/local/tmp/Launcher.apkSuccess
實作說明 4/4: 重開機
已經完成了,直接重開即可。「重開」是把AVD重新啟動,不是把電腦重新開機 ;-)
?
?