在eclipse 中編譯Launcher2的方法
鑑於有朋友找資源不方便,我把這個專案需要的資源都上傳了,需要的可以從這個地址下載http://download.csdn.net/detail/dclchj/3928496
Android自帶的Home應用程式Launcher2是比較重要也比較複雜的程式,開機後使用者看到的第一個介面就是它。這裡詳細介紹將Android原始碼中的Launcher2工程匯入Eclipse工程的方法。可以為學習與修改Launcher2工程打好基礎。
感謝前輩在網上分享的資料,使我知道怎麼著手。不過這些資料有不完整的問題,導致我昨天跟著做時遇到一些問題從而卡住至今天才解決。
下面是我的開發環境:
作業系統:Windwos XP 編譯器:Eclipse
Android原始碼版本:2.3.4 Android SDK(ADK)版本:在編譯器裡裝了兩個,分別是4.0 和 2.3.3(這個專案使用2.3.3)
JAVA compiler compliance level 1.6 (這個從Project / Properties / Java Compiler 可以看到與修改)
需要準備的資源:
Android2.3.4編譯好的原始碼一份(之所以要編譯好,是因為後面需要用到編譯出來的classes.jar檔案)
Launcher2工程資料夾。(就在上面的原始碼的路徑 packages / apps 路徑下)
然後可以開始工作了,以下主要引用了兩位前輩的部落格內容,地址分別為:(建議參考這兩篇文章看,其中一篇有圖片很不錯!)
http://univasity.iteye.com/blog/937547 和http://blog.csdn.net/chenzhixin/article/details/6264209
另有參考資料 Android 2.1 原始碼目錄結構詳解 自已百度
如果只看其中一篇文章的話,會不成功,兩篇都看了,仍會遇到問題。下面我寫的是實踐後成功的詳細方法與總結。
***********************************************************
——————————這一步是新增工程—————————————
1。將原始碼中packages/apps/Launcher2整個資料夾拷貝到一個目錄中,這個目錄不能是Eclipse的工程目錄比如wrokgroups。最好在D盤根目錄新建一資料夾別帶中文(習慣)
2。新建Android專案,選擇"Create project from existing source",並指定專案的路徑即步驟1建立的資料夾。SDK你要根據你下載的Project所支援的Android版本選擇(這裡2.3.3),然後“finish”。
3。刪除專案,然後複製2中建立的資料夾到Eclipse工作目錄中。
4。File / Import / General (Existing Projects into Workspaces) / Browse 選擇步驟3複製來的的工程。這時Launcher就匯入到Eclipse中了。不過工程會有很多紅叉,接下來解決這個問題。
——————————這一步是匯入包檔案———————————
5。此段為複製前輩內容:
首先需要編譯好android程式碼,編譯完成後會生成一些包檔案,複製下面三個檔案到D盤根目錄(其實可以任意選)
這裡我們用到的有:(生成的包的路徑為原始碼的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... 輸入任意名字(注意,這裡一定要先中 System Library),確認後再選Add JARs 選擇三個classes.jar之間再確認。重複三次將三個classes.jar都匯入進來。
將3個包加入進來後,然後還需要將它們放到android2.3.3這個包的前面,可以在Build Path配置中選擇Order and Export (注:選中3個新目錄,然後UP就行了)
這時候就會發現Launcher2工程以及沒有錯誤了,也可以編譯了。
—————————這一步是重新命名包名—————————————
6。此段為複製前輩:
為了避免與系統預設的包名衝突,所以需要進行修改。
1。在src/com.android.launcher上點選右鍵,"Refactor" -> "Rename...",名字可以自定義(我這裡改成com.study.launcher),選項選擇(全選上)
2。點選"Preview>",進行預覽(途中彈出警告的話,不用管,繼續"Countinue"),這裡要去掉一些不必要的修改,否則就會改亂了
3。新出來的介面可能會有Android Package Rename 根節點,去掉它的子節點AndroidManiFest.xml前的勾選。然後OK,可能會彈出錯誤,直接Abort。
4。在gen/com.android.launcher上點選右鍵,"Refactor" -> "Rename...",名字可以自定義(我這裡改成com.study.launcher),選項選擇(全選上)
5。同上,這裡要取消兩個根節點:Manifest.java 和 R.java 前的勾選。同樣OK下去。
***********************************************
做完這些就可以RUN執行了。
總結一下:主要是按照上面兩個地址的方法,但有幾個那兩篇文章裡沒說到的地方需要注意,否則就出錯了。
1。要匯入的包有三個,不是其中一篇說的一個;
2。在匯入包的時候,一定要選上System Library,兩篇文章都沒提到,但如果不選的話紅叉也會消失,可編譯時會提示一個錯誤Conversion to Dalvik format failed with error 1。用網上的方法全都不行,最後勾上那勾解決了。
3。重新命名包名,其中一篇文章只說了重新命名一個包名,另一篇文章說了要命名兩個包名但沒說怎麼做,合併一下就好了。
經過上面的操作,eclipse可以成功編譯Launcher2並在模擬器裡跑了。
_______________________
相關文章
- Eclipse自動編譯NDK/JNI的三種方法Eclipse編譯
- 請問在Eclipse下怎麼編譯JavaBeanEclipse編譯JavaBean
- Eclipse配置反編譯Eclipse編譯
- eclipse中怎麼找到編譯後的class路徑Eclipse編譯
- 在Eclipse中編譯apk時,把其他的apk做為庫檔案匯入Eclipse編譯APK
- 在 Windows 中編譯 Github 中的 GO 專案Windows編譯GithubGo
- 在Progress編輯器中批次編譯程式編譯
- 在Eclipse 下整合ndk 自動編譯生成so檔案Eclipse編譯
- Jive工程在JB8中的編譯編譯
- 【Eclipse】--Eclipse反編譯外掛jadeclipse的安裝Eclipse編譯
- 簡述交叉編譯常用的方法及在構建Docker映象中的應用編譯Docker
- 有關eclipse編譯更新的問題?急急!!Eclipse編譯
- Leptonica在VS2010中的編譯二,編譯 Leptonica1.68編譯
- Eclipse中不讓.svn資料夾一同編譯到class中Eclipse編譯
- Eclipse中設定編碼的方式Eclipse
- Rust 在 cargo 中進行條件編譯RustCargo編譯
- (轉)編譯Oracle中無效的物件的N中方法編譯Oracle物件
- Android 4.0 Launcher2原始碼分析——匯入eclipse進行除錯Android原始碼Eclipse除錯
- eclipse 編譯錯誤,找不到servlet包Eclipse編譯Servlet
- Leptonica在VS2010中的編譯一,編譯它依賴於庫編譯
- 在eclipse中maven配置EclipseMaven
- OpenSSL的在windows和Linux中的編譯和安裝WindowsLinux編譯
- 關於Delphi中預編譯指令的使用方法 (轉)編譯
- android編譯方法Android編譯
- eclipse jad 反編譯 外掛安裝Eclipse編譯
- Android反編譯:反編譯工具和方法Android編譯
- activiti在eclipse中的安裝配置Eclipse
- A40i &T3 全原始碼編譯-ARM Linux核心在PC Linux的編譯方法原始碼編譯Linux
- 在Linux系統上安裝Java反編譯工具的方法LinuxJava編譯
- WPA Supplicant 在Windows下的編譯Windows編譯
- 在Delphi中編寫控制元件的基本方法 (轉)控制元件
- (ecj)Eclipse的Java編譯器分析之一——ecj介紹EclipseJava編譯
- Sublime Text3中 less 自動編譯成 css 的方法編譯CSS
- [Web翻譯]JavaScript中的編譯與填充WebJavaScript編譯
- Eclipse-在Eclipse中匯入GitHub專案的步驟EclipseGithub
- FreeBSD中的GNU C編譯器--編譯器GCC(轉)編譯GC
- 在Windows下編譯WebRTCWindows編譯Web
- 【Java】【轉】在命令列中編譯和執行javaJava命令列編譯