1.加載源碼html
Android Project from Existing Code 選擇源碼工程Settings;java
2.加載所須要的jar包android
(改下名字)ubuntu
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jarwindows
out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jarapp
out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes.jareclipse
out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/classes.jar工具
out/target/common/obj/JAVA_LIBRARIES/frameworks-core-util-lib_intermediates/classes.jarpost
out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar ui
另外還要根據實際項目狀況添加其餘jar文件
guava-r07.jar 網上下載
android-support-v4.jar sdk中的。
把建立的libraries順序放在最前面:
工程->Build Path->Configure Build path ->Order and Export 選擇新建的jar,點擊up鍵,把它升到最上面。
3.改動包名
選中一個包,按F2(下圖,我選中了com.android.settings 改成了com.zheng.settings,子包自動改掉了)
而後AndroidManifest.xml會出莫名的錯誤(<service android:name=".bluetooth.DockService" />),用以前的覆蓋掉。
AndroidManifest.xml 中添加 <uses-sdk android:minSdkVersion="14" />;
權限增長
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
而後將res中.xml文件中用到的也全改掉(com.android.settings
改成了com.zheng.settings)。
代碼中com.android.settings.R; 改成import com.zheng.settings.R;,可使用replace;
刪掉全部import android.User.id;由此出現的問題,全改掉。
例程
參考:
http://www.cnblogs.com/lygshow/archive/2012/03/19/2406205.html
通過幾番掙扎,仍是把 android settings 源碼成功導入 eclipse,在此分享!
在此以前,但願你作到如下幾點,否則往下閱讀只是在浪費時間。
<1> 操做系統使用 32 位的 ubuntu10.10,軟件Eclipse3.5,ADT12.0,JDK1.6
<2> 下載 android2.3 源碼,推薦 http://blog.csdn.net/AndroidBluetooth/article/details/6538254
<3> 編譯源碼,推薦 http://www.cnitblog.com/houcy/archive/2011/02/10/72771.html
若是作好以上工做,下面的就是小菜一疊。
1. 新建 android 項目
拷貝源碼/packages/apps/Settings到你的其它目錄。
在eclipse中,新建項目,可是要從exitting source選擇:
2. 導入相關的庫文件
但願你這樣作,不然你會遇到其它莫名奇妙的錯誤。
eclipse中右鍵項目Settings/Build Path/Add Libray
選擇User Libray,選擇new ,任意去一個名稱。
注意:必定要選擇System libray前面的複選框。
點擊ok以後,選擇對應的jar包。
該 jar包就是源碼目錄/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/下面的包。
注意這步操做:
eclipse中右鍵項目Settings/Build Path/Configure Build Path/,開始你會看到是下面這個樣子:
而後,調整一下順序以下:
3. 再次編譯
在eclipse中clean,便可。
注意:你能夠將 源碼目錄/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar 這個文件放到你的Settings項目中。
例如在Settings中新建目錄libs,而後將classes.jar放到裏面,而後,照着上面2的步驟從新作一次便可!
導入其它源碼,有可能須要/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/下面的jar文件。相似手法導入便可。
GoodLuck!
android2.3源碼裏單獨導入單個系統應用模塊的方法
對於從android的源碼網上下載下源碼的朋友,很是期待查看源碼的具體結構或特定的應用的具體實現,下面就教你們如何把系統應用導入到eclipse裏開發。
一: 開發前的準備工做:1.配置Linux環境和編譯源碼的一些工具,確保編譯成功,啓動模擬器檢驗。
2.把編譯完的整個工程複製到windows系統特定目錄裏。
二: 以系統應用Settings爲例:
導入過程:
1.建立android工程
系統的應用都在 源碼/packages/apps/下
在eclipse裏:(file->new android->create project from existing source.給工程命令,選擇工程所在目錄,選擇build target)選擇你須要的應用,選擇特定SDK版本 :
2.加載所須要的jar包
由於單獨拿出來的系統應用,缺乏特定jar包的支持,須要建立libraries,把須要的jar加載進去便可。具體須要哪些jar包,能夠再工程錯誤裏查看少那些類或接口,藉助Souce Insight工具,查找類或接口所在的位置,篩選路徑 /out/target/.......
在eclipse建立libraries的過程:
1.進入project->property->java build path->libraries,選擇Add library->user library->new,創建一個獨立的庫文件集,可命名爲android-framework(名字無所謂)。
2.創建成功後選擇android-framework,而後點Add jars,添加模塊須要的jar包:
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar
out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes.jar
out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/classes.jar
out/target/common/obj/JAVA_LIBRARIES/frameworks-core-util-lib_intermediates/classes.jar
out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar
3.另外還要根據實際項目狀況添加其餘jar文件
4.記得把建立的libraries順序放在最前面。
工程->Build Path->Configure Build path ->Order and Export 選擇新建的jar,點擊up鍵,把它升到最上面。
3.修改包名
必須修改app項目中全部包的名字,如com.android.settings必須都改成com.lyg.settings(包名順便起),由於這樣才能避免最後生成的apk與系統默認的setting衝突。修改方法以下:
選擇對應的包,如com.android.settings,按F2出現修改對話框,勾選所有選項,修改完成後點preview。
須要注意的地方:
1.修改工程名後,AndroidMainfese.xml修改不很成功,最好備份一份原來的 AndroidMainfest.xml文件
2.gen下面的資源包名已經變了,因爲類裏的資源文件仍是之前的,因此再在資源文件這裏把包名改回去,在改到你修改的名字例如你把包名 com.android.settings 修改爲 com.lyg.settings
因爲之前的資源文件是 com.android.settings.R 因此它沒有變。而gen下的資源包名已經改變,先把它修改成com.android.setting,在改回到com.lyg.settings便可
4.其它操做
須要註釋掉進程的訪問權限,若是光有聲明,而沒有具體的實現該權限,apk是安裝不上的,暫時註釋掉,會有一些功能受到影響。解決辦法須要數子簽名,詳見數字簽名介紹。
<!-- android:sharedUserId="android.uid.system" -->
此時運行便可,對應沒有權限的加上,出現別的簡單的錯誤,本身上網查找解決。最後運行該工程,就能夠修改和實現系統應用了。
說明:android的4.0源碼和android的2.3的源碼仍是有區別的,用上面方法也是能夠的,注意的是:android的2.3源碼能夠和eclipse的工做空間在同一個目錄裏,但android的4.0就不可,否則會報錯: [2012-03-19 14:38:12 - Setting] AndroidManifest.xml file missing!