查看Android API源碼:

創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元蘭溪做網(wǎng)站,已為上家服務(wù),為蘭溪各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
1、第一步:選中Android項目,鼠標(biāo)右鍵“Properties——》Java Build Path——》Libraries”
2、第二步:展開添加的SDK庫文件,例如Android 4.0,選中Source attachment,最后點(diǎn)擊“編輯”
3、第三步:關(guān)聯(lián)本地的Android源碼文件,選中源碼存放位置
Android源碼的編輯和調(diào)試和Android Studio沒什么關(guān)系,一個是系統(tǒng)源代碼,一個是用于應(yīng)用開發(fā)的集成工具。
Android Studio是利用SDK框架開發(fā)運(yùn)行于Android系統(tǒng)的應(yīng)用程序的一個代碼編輯工具,編寫的程序是運(yùn)行在裝有Android系統(tǒng)的設(shè)備或者Android虛擬機(jī)上運(yùn)行的,這個家伙搞出來的都是應(yīng)用,跟系統(tǒng)源碼沒什么關(guān)系。
Android源碼是一個復(fù)雜的代碼包,沒有調(diào)試的概念,需要驗證就是linux下make,這個需要搭建基于linux系統(tǒng)的編譯環(huán)境,然后生成系統(tǒng)包,用燒錄工具寫到硬件設(shè)備上,開啟設(shè)備用串口調(diào)試,這個完全是系統(tǒng)層上的東西,跟androidstudio那個編寫應(yīng)用的工具沒一毛錢關(guān)系。源碼編輯一般都是直接用vim看,也有用記事本類的東西。這里邊搞的代碼,也不只是java的,c++的,xml的,還有什么都不是的腳本什么的。
本文是以源碼中development/tools/idegen/README作為指導(dǎo)文檔.
環(huán)境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源碼
由于AS是基于IntelliJ IDEA開發(fā)的,所以本文也適用于IntelliJ IDEA
創(chuàng)建文件 IMyApiService
文件路徑 frameworks/base/core/java/android/os/
定義了一個計算和的方法。
在frameworks/base/Android.mk
LOCAL_SRC_FILES最后加入
創(chuàng)建文件 MyApiService.java
文件路徑 frameworks/base/core/java/com/android/server/
實現(xiàn)aidl的接口,計算參數(shù)和。
(1)Context添加服務(wù)名
文件路徑 frameworks/base/core/java/android/content/Context.java
添加
(2)添加啟動服務(wù)
文件路徑 frameworks/base/services/java/com/android/server/SystemServer.java
在startOtherServices方法中添加
創(chuàng)建 MyApiManager.java文件
文件路徑 frameworks/base/core/java/android/app/
文件路徑 frameworks/base/core/java/android/app/ContextImpl
添加registerService
記住make update-api
編譯打包完成后,燒寫新的固件。
jar主要為了在android studio編譯環(huán)境中MyApiManager報錯導(dǎo)致編譯不通過問題。
也可以導(dǎo)入frameworks jar包或使用反射。
在源碼目錄packages/app下新建MyJar文件夾
并新建目錄com/myapi/(包名)
在目錄com/myapi/新建文件MyApi.java
具體Android.mk語法這里不做解釋,可以自行查閱
在MyApi目錄下直接運(yùn)行mm編譯命令(記得先source build/envsetup.sh)
待編譯完成后,jar生成目錄
out/target/common/obj/JAVA_LIBRARIES/Myapi_intermediates/javalib.jar
可更改為其他名稱。
用eclipse?+?ADT作為android開發(fā)工具,?可以說是很方便的,在HelloActivity小程序里我們就感覺到eclipse功能的強(qiáng)大。那么,我們可以用?eclipse來開發(fā)android源碼嗎?如果我們直接把a(bǔ)ndroid源碼里一個工程導(dǎo)入eclipse,一般來說都會出現(xiàn)錯誤,說許多類庫(包)找?不到。
今天找到關(guān)于怎樣使用eclipse來開發(fā)android源碼的官方文檔:
e7?V/?[:?]!?l*?P+?n0?`
從該文檔和實踐可以總結(jié)出幾點(diǎn):0?J*?f"?t:?q/?i?c
1、可以使用eclipse來編輯JAVA程序、檢查錯誤(主要是類庫包含和語法方面),但是不能在eclipse上編譯運(yùn)行android源碼,還是得在shell中make(或mm或mmm)
2、android源碼文件夾里提供有一些eclipse配置文件,.?n;?`4?E)?z5?B8?G6?V,?z1?x2?a
.claapath:eclipse工程的配置文件,方便我們直接把a(bǔ)ndroid源碼相應(yīng)的文件和JAVA包導(dǎo)入工程#??%?B9?J,?m!?t%?n0?t*?B9?P'??;?{
android-formatting.xml和android.importorder:這個很重要,主要是用來規(guī)范我們的編碼風(fēng)格,更容易使我們的代碼風(fēng)格一致
3、把a(bǔ)ndroid源碼作為一個工程導(dǎo)入eclipse時,必須注意兩點(diǎn)
1)、新建的工程必須是java?project,不能是android?project,否則會破壞android源碼(一般是多添加文件/文件夾)
2)、導(dǎo)入前最好檢查.classpath里的文件在android源碼中是否有相應(yīng)的文件(文件夾),否則也會破壞android源碼(一般是多添加文件/文件夾)
總的來說:!?P"?A+?~'?]%?p9?I5?U7?V;?S;?B
1、用eclipse來編輯代碼、檢查錯誤
2、不在eclipse上編譯、運(yùn)行android源碼程序,只能在命令行通過make(或mm或mmm)編譯android源碼
3、可以在eclipse上調(diào)試android源碼程序(原理:eclipse通過ddms服務(wù)器在emulator上進(jìn)行調(diào)試),并可以單步調(diào)試、斷點(diǎn)調(diào)試。
下面,從官方文檔總結(jié)出具體怎樣用eclipse來開發(fā)android源碼
1、建立基本的android開發(fā)環(huán)境3?{#??0?q:?D?k#?k)?\$?R
請參考官方文檔或
2、編譯android源碼
android源碼根目錄下通過make進(jìn)行編譯,請注意一些配置,具體可參考
3、把eclipse工程配置文件復(fù)制到android源碼根目錄下
cp?development/ide/eclipse/.classpath?./
chmod?u+w?.classpath?#?Make?the?copy?writable
4、修改eclipse程序的配置
1)、修改eclipse緩存設(shè)置
把eclipse.ini(在eclipse軟件的安裝目錄下)的3個值改為下面的值:
-Xms128m/?i2?t!?A4?p!?Z%?V/?q#?o"?J
-Xmx512m;?J??z8?E.?@'?z'?D'?D3?W
-XX:MaxPermSize=256m
2)、把a(bǔ)ndroid-formatting.xml和android.importorder導(dǎo)入eclipse
android-formatting.xml、.classpath和android.importorder都放在development/ide/eclipse/下
android-formatting.xml用來配置eclipse編輯器的代碼風(fēng)格;android.importorder用來配置eclipse的import的順序和結(jié)構(gòu)。(?S8?q$?p'?T*?x"?\/?H7?a
在window-preferences-java-Code?style-Formatter中導(dǎo)入android-formatting.xml+?X"?y*?b!?N$?m
在window-preferences-java-Code?style-Organize?Imports中導(dǎo)入android.importorder#?F??d5?X"?H.?X
3)、安裝anyedit插件(可選)#?G9?C;?h/?Z?q5?D!?s8?z7?y9?_
在下載并導(dǎo)入eclipse中+?J.?X#?@5??3?r3?U
5、把a(bǔ)ndroid源碼作為一個工程導(dǎo)入eclipse
導(dǎo)入前先檢查.classpath里的文件在android源碼中是否有相應(yīng)的文件(文件夾),否則也會破壞android源碼(一般是多添加文件/文件夾),.classpath里多余的路徑可刪除-?]!?U4?n$?@:?~9?b+?A1?|-?z
新建Java?Project(不是android?project,否則會破壞android源碼),選擇從已存在的工程導(dǎo)入,工程名任意,完成。
導(dǎo)入時,eclipse要build工程,比較慢。導(dǎo)完后,一般都沒有錯誤。"?B(?U??i%?w#?w*?y4?]
6、eclipse上調(diào)試android里的程序。
先執(zhí)行:$?K+?H,?r.?},?v.?_??U5?q'?x?~,?I
cd?android源碼目錄
.?build/envsetup.sh
lunch?1?#?to?build?the?emulator
emulator??#?you?should?see?a?GUI?picture?of?a?phone$?q-?{/?n6?z+?{.?k0?O?I0?\-?p
ddms??#?you?should?get?a?splufty?debugging?console
然后在eclipse中配置調(diào)試類型和端口:5?z8?t(?q*?A+?o-?g7?L#?_
在Run-Debug?Configurations-Remote?java?application上雙擊,然后,”Host:”設(shè)為localhost,”Port:”設(shè)為8700,”Connection?Type”為Standard(Socket?Attach)
然后“Apply”-?Q7?I(?\8?v4?B??A9?R/?Q?u
注意,在點(diǎn)擊”Debug”時苦出錯,說8700端口被占用,那么把DDMS程序關(guān)掉,重新打開DDMS就OK了。如果提供連不到VM錯誤時,請注意,要先在DDMS中選中某一進(jìn)程(對應(yīng)某一應(yīng)用程序),才能在eclipse執(zhí)行?Debug。.?B%?\*?E!?T,?K7?N8?U??b
在eclipse調(diào)試時,可以設(shè)斷點(diǎn)、單步調(diào)試。估計google團(tuán)隊也是這樣開發(fā)、調(diào)試android應(yīng)用程序的?X:?n6?t"?|%?B4?E
7、編譯android源碼2??:?`9?i0?O1?U;?E*?|+?Z'?]/?r
執(zhí)行:
cd?android源碼目錄0?v1?Z;?p1?P0?|$?V6?x5?A.?@$?S2?o7?p
.?build/envsetup.sh$?R!?h!?^-?l/?l:?i5?P
那么就會多出mm/mmm等命令,mm/mmm用來編譯模塊(包括C、C++、JAVA程序)。我們也可以直接在?android源碼根目錄下執(zhí)行“make?模塊名”來編譯模塊。
來自開源中國網(wǎng)老槍的分享
分享標(biāo)題:android源碼開發(fā),安卓程序源碼
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article22/dsggpcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站、App設(shè)計、微信公眾號、移動網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)