Android 4.0 Launcher2原始碼分析——匯入eclipse進行除錯
由於需要研究Android 4.0Launcher2的原始碼,必要的時候我們需要對程式碼進行除錯,所以我們需要能夠執行自己修改後的
Launcher。由於Launcher是Android內置的應用,因此,可以通過搭建Android原始碼開發環境來進行除錯和開發,這些工作只能在
Linux和MacOS上進行,對於大多數習慣了windows和eclipse開發環境的程式設計師來說,能夠在eclipse下進行開發和除錯是最好不過的
了。這裡將自己windows下用eclipse搭建Launcher開發環境的步驟分享給大家。我所使用的eclipse為3.6.2,ADT版本
20.0.2,在搭建的過程中可能與你的過程稍有出入,但基本流程是一樣的。
1、建立工程,選擇File--->New----->Project...---->Android Project from Existing Code---->Browse---->找到原始碼所在的路徑-----
>Finish,工程就建立完成了。工程建立之後需要更改SDK的版本,右鍵工程,選擇Properties---->Android--->Android4.0.3(API版本
高於15都可以)--->OK。但這時,工程還是不能執行的,主要的原因是原始碼中調用了部分Android 未公開的API。這時就需要編譯
Android原始碼,因為要用到一些編譯生成的class.jar檔案,這樣才能使用這部分API,如果不會原始碼的編譯可以google一下,資料
很多的~~~~為方便網友,提供了launcher原始碼和jar檔案的下載 點選開啟連結
2、新增需要使用的jar檔案。原始碼編譯完成之後,會在根目錄中生成out資料夾。而我們需要的檔案就位於
out/target/common/obj/JAVA_LIBRARIES目錄中。需要新增的jar檔案包括:
(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 -->Configure Build Path -->Libraries -->Add Library --> User Library -->User Libraries
-->New...-->輸入名稱(如,Debug_Launcher)-->OK -->Add JAR...--->分別新增上面需要的幾個JAR檔案。匯入完成之
後,在Build Path中選擇Order and Export,將Debug_Launcher排到Android4.0.3(我選的SDK版本)前面
3、接下來,先開啟AndroidManifest.xml如果沒有以下程式碼,則新增:
- <uses-sdk
- android:minSdkVersion="13"
- android:targetSdkVersion="15" />
minSdkVersion可以填大於13的數值,同樣,targetSdkVersion至少是15。此時如果還有錯誤,一般是由於SDK版本造成的,更換為
高版本的SDK可以解決問題。
4、新增android-support-v13.jar
這個檔案路徑 (你的SDK目錄)\extras\android\compatibility\v13,如果沒有,通過SDK Manager下載即可。找到檔案之後,
將其複製到工程根目錄下的lib資料夾中(沒有就自己建一個),然後選擇Build Path --->Configure Build Path --> Add
JARs...--->選擇android-support-v13.jar
5、此時如果還有錯誤的話,一般是由於SDK版本造成的,改為更高的版本,就可以了。這樣下來,工程中應該就沒有錯誤了。但
是這個時候還不能在模擬器上執行,需要修改包名。首先在包名上右鍵選擇Refactor -->Rename-->輸入修改後的包名。接著右
鍵工程,選擇Android Tools --> Rename Android Package輸入修改後的包名。檢視AndroidManifest.xml中activity、
receiver、provider的路徑是否正確,否則替換為正確的路徑。全部替換了之後,工程中的紅叉叉就沒有了。如果還有錯誤,如果
佈局檔案有錯誤,多數為名稱空間的錯誤,替換名稱空間即可。如果是java檔案中的錯誤,如果是SDK版本問題,則替換為高版本
即可,如果是匯入R檔案的問題,刪除匯入語句重新匯入。這樣修改下來應該就不會有錯誤了。
6、(可選)接下來修改LauncherProvider中DATABASE_NAME和AUTHORITY分別為
- //修改為自己的名字
- DATABASE_NAME = "launcherdebug.db"
- AUTHORITY = "com.android.launcherdebug.settings"
接著修改provider,將修改以下程式碼:
- <provider
- ......
- android:authorities="com.android.launcher.settings"
- ...... />
- <provider
- ......//需要與LauncherProvider.AUTHORITY一致
- android:authorities="com.csy.testlauncher.settings"
- ....../>
接著修改AndroidManifest.xml中的自定義的Permission,修改包名字首即可,如
- <permission
- android:name="com.android.launcher.INSTALL_SHORTCUT"
- ....../>
- <permission
- android:name="com.android.launcherdebug.INSTALL_SHORTCUT"
- ...... />
相關文章
- Android Studio匯入Eclipse專案原始碼AndroidEclipse原始碼
- Spark原始碼編譯與匯入IDEA除錯Spark原始碼編譯Idea除錯
- 將AOSP原始碼匯入到Android Studio進行檢視原始碼Android
- Linux中eclipse除錯mysql原始碼LinuxEclipse除錯MySql原始碼
- Android Studio匯入原始碼Android原始碼
- spring framework原始碼下載並匯入eclipseSpringFramework原始碼Eclipse
- Android Studio 匯入 AOSP 原始碼Android原始碼
- 使用Eclipse進行PHP的伺服器端除錯EclipsePHP伺服器除錯
- win7 64 eclipse 匯入hadoop2.6.0 原始碼Win7EclipseHadoop原始碼
- Android逆向之旅---動態方式破解apk前奏篇(Eclipse動態除錯smail原始碼)AndroidAPKEclipse除錯AI原始碼
- eclipse裡面匯入JFrame包出錯。Eclipse
- webpack4.0原始碼分析之TapableWeb原始碼
- Mac下Android Framework原始碼環境搭建執行及除錯方法MacAndroidFramework原始碼除錯
- 除錯spark原始碼除錯Spark原始碼
- Android FrameWork學習(二)Android系統原始碼除錯AndroidFramework原始碼除錯
- Android Studio 使用正式簽名進行除錯Android除錯
- 在eclipse 中編譯Launcher2的方法Eclipse編譯
- Idea除錯Rocketmq原始碼編譯執行Idea除錯MQ原始碼編譯
- Javac 原始碼除錯教程Java原始碼除錯
- MariaDB原始碼除錯原始碼除錯
- MySql輕鬆入門系列——第二站 使用visual studio 對mysql進行原始碼級除錯MySql原始碼除錯
- Android 原始碼分析之 AsyncTask 原始碼分析Android原始碼
- Android逆向之旅---動態方式破解apk進階篇(IDA除錯so原始碼)AndroidAPK除錯原始碼
- 【Android原始碼】Fragment 原始碼分析Android原始碼Fragment
- 【Android原始碼】Intent 原始碼分析Android原始碼Intent
- Weex Android原始碼解析(三)—— 進入正題Android原始碼
- eclipse單點除錯Eclipse除錯
- Java進行excel的匯入匯出操作JavaExcel
- NgRx Store createSelector 的單步除錯和原始碼分析除錯原始碼
- JVM 原始碼分析(二):搭建 JDK 8 原始碼除錯環境(Windows 上使用 CLion)JVM原始碼JDK除錯Windows
- Node.js 原始碼除錯Node.js原始碼除錯
- Android圖片載入庫Picasso原始碼分析Android原始碼
- 怎麼閱讀原始碼【除錯觀察原始碼】原始碼除錯
- 在eclipse中關聯android原始碼EclipseAndroid原始碼
- 使用eclipse來開發Android原始碼EclipseAndroid原始碼
- 【Android原始碼】AlertDialog 原始碼分析Android原始碼
- SOFA 原始碼分析— 事件匯流排原始碼事件
- 匯入Embassy庫進行爬蟲爬蟲