Android系統應用程式Eclipse開發環境的搭建
首先,將要修改的應用程式,從alps(源碼根路徑)\packages\apps目錄下拷貝到本地機子上,然後在Eclipse新建立一個Android項目,選擇Create project from existing source引進該應用程式,
一般情況下,只需要將alps(源碼根路徑)\out\target\common\obj\JAVA_LIBRARIES\路徑的下面2個檔案夾 core_intermediates , framework_intermediates 下的classes.jar檔案,分別重新命名為core.jar , framework.jar。再將工程預設的android.jar移除,加上這2個jar就可以了。
1) alps\out\target\common\obj\JAVA_LIBRARIES\core_intermediates, 把class.jar拷貝出來改名為core.jar
2) alps\out\target\common\obj\JAVA_LIBRARIES\framework_intermediates, 同樣把class.jar拷貝出來,改名為framework.jar
3) 若需要其它的 jar 包,按 1)2)方法在alps\out\target\common\obj\JAVA_LIBRARIES\找到相應的jar包匯入到項目中
3) 在 eclipse 裡面添加一個新的 user library. 如名字為 android-lib(可以自己命名)
4) 把這個 android-lib 設定為 system library. 並把 core.jar 和 framework.jar 添加到這個 android-lib 裡面。
5) 在您工程裡面把原來的 android library: android2.1-update1 或者如 android2.2 移除掉,然後把新的 android-lib 添加到您的工程。
6) Enjoy debugging.
如果還有找不到的類,可以先看這個類是在哪定義的,再到alps\out\target\common\obj\目錄下的APPS或JAVA_LIBRARIES兩個目錄下搜尋所要的類,然後將搜尋到的類引到項目中。特別需要注意EventLogTags.java這個檔案,該檔案是系統編譯時間產生的,每個應用都會對應不同的EventLogTags.java,因此要保證所找到檔案是該項目所需要的檔案。
對於.aidl檔案的處理:一般.aidl檔案報錯的原因是在引進其他.aidl檔案的時候找不到對應的aidl檔案,這種情況只需將相應的aidl檔案拷貝到項目下面並相應的在src下面建立該aidl檔案相應的包名,並將該aidl檔案移到建立的包裡面。
將android launcher2匯入eclipse中運行
1.將Launcher2項目匯入eclipse中。
這時候Launcher2工程已經匯入到eclipse中了,不過這時候會有100多個錯誤.
2.添加Launcher2使用的包檔案。
由於在Android源碼中,很多方法、成員、類、包都被打上@hide標籤,這些成員在SDK中沒有公開,以至於在編譯Launcher源碼時最常遇到的類android.view.View的成員mScrollX無法訪問。因此首先需要下載Android的代碼並且編譯好,因為要用到一些編譯完成的class.jar檔案
這裡我們用到的有:(產生的包的路徑為out/target/common/obj/JAVA_LIBRARIES)
1)framework_intermediates/classes.jar :這個主要是android的架構類
2)android-common_intermediates/classes.jar :這個包含com.android.common.Search這個類
3)core_intermediates/classes.jar :這個包包含dalvik.system.VMRuntime這個類
這些都是需要匯入到工程裡面的包,這個可以通過配置工程的Build Path來加入,
右鍵工程名稱然後選擇Build Path->Configure Build Path...->Libraries->Add Library->User Library->User Libraries...->New...
然後將上面3個依賴的包一個個的加入進來,分別命名為android_framework,android_common,android_core.
將3個包加入進來後,然後還需要將它們放到android2.3.3這個包的前面,可以在Build Path配置中選擇Order and Export
這時候就會發現Launcher2工程以及沒有錯誤了,也可以編譯了。
3.修改Launcher2包名稱,在模擬器上運行更改後的Launcher2.
改掉原始包的名字,切記使用eclipse的重新命名機制(在包名上按F2可修改),不僅是類的引用,還有很多xml檔案內部的引用(如import com.android.launcher3.R;),只要重新命名不錯,這些都可以一次性搞定的。
New name填寫你自己的包名,把下面四項全部勾選。點擊“Preview”
特別注意:你的項目最好不要放在中文路徑下,不然rename時會出錯,我就是開始放在中文路徑下出錯弄了很久才發現錯誤!
4.AndroidManifest.xml檔案裡面,找到這句話刪除掉。(android:sharedUserId="android.uid.shared")
這樣就大功告成了,我是用2.3的launcher來做實驗的,結果沒問題,運行成功!