新聞中心
Android源碼開發(fā)記錄-自定義系統(tǒng)服務(wù)和jar包生成
創(chuàng)建文件 IMyApiService
武陟ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
文件路徑 frameworks/base/core/java/android/os/
定義了一個(gè)計(jì)算和的方法。
在frameworks/base/Android.mk
LOCAL_SRC_FILES最后加入
創(chuàng)建文件 MyApiService.java
文件路徑 frameworks/base/core/java/com/android/server/
實(shí)現(xiàn)aidl的接口,計(jì)算參數(shù)和。
(1)Context添加服務(wù)名
文件路徑 frameworks/base/core/java/android/content/Context.java
添加
(2)添加啟動(dòng)服務(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報(bào)錯(cuò)導(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
可更改為其他名稱。
如何使用android studio開發(fā)/調(diào)試android源碼
Android源碼的編輯和調(diào)試和Android Studio沒什么關(guān)系,一個(gè)是系統(tǒng)源代碼,一個(gè)是用于應(yīng)用開發(fā)的集成工具。
Android Studio是利用SDK框架開發(fā)運(yùn)行于Android系統(tǒng)的應(yīng)用程序的一個(gè)代碼編輯工具,編寫的程序是運(yùn)行在裝有Android系統(tǒng)的設(shè)備或者Android虛擬機(jī)上運(yùn)行的,這個(gè)家伙搞出來的都是應(yīng)用,跟系統(tǒng)源碼沒什么關(guān)系。
Android源碼是一個(gè)復(fù)雜的代碼包,沒有調(diào)試的概念,需要驗(yàn)證就是linux下make,這個(gè)需要搭建基于linux系統(tǒng)的編譯環(huán)境,然后生成系統(tǒng)包,用燒錄工具寫到硬件設(shè)備上,開啟設(shè)備用串口調(diào)試,這個(gè)完全是系統(tǒng)層上的東西,跟androidstudio那個(gè)編寫應(yīng)用的工具沒一毛錢關(guān)系。源碼編輯一般都是直接用vim看,也有用記事本類的東西。這里邊搞的代碼,也不只是java的,c++的,xml的,還有什么都不是的腳本什么的。
Android開發(fā)中如何加載API源碼幫助開發(fā)
查看Android API源碼:
1、第一步:選中Android項(xiàng)目,鼠標(biāo)右鍵“Properties——》Java Build Path——》Libraries”
2、第二步:展開添加的SDK庫文件,例如Android 4.0,選中Source attachment,最后點(diǎn)擊“編輯”
3、第三步:關(guān)聯(lián)本地的Android源碼文件,選中源碼存放位置
如何使用Eclipse開發(fā)Android源碼
用eclipse?+?ADT作為android開發(fā)工具,?可以說是很方便的,在HelloActivity小程序里我們就感覺到eclipse功能的強(qiáng)大。那么,我們可以用?eclipse來開發(fā)android源碼嗎?如果我們直接把a(bǔ)ndroid源碼里一個(gè)工程導(dǎo)入eclipse,一般來說都會(huì)出現(xiàn)錯(cuò)誤,說許多類庫(包)找?不到。
今天找到關(guān)于怎樣使用eclipse來開發(fā)android源碼的官方文檔:
e7?V/?[:?]!?l*?P+?n0?`
從該文檔和實(shí)踐可以總結(jié)出幾點(diǎn):0?J*?f"?t:?q/?i?c
1、可以使用eclipse來編輯JAVA程序、檢查錯(cuò)誤(主要是類庫包含和語法方面),但是不能在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:這個(gè)很重要,主要是用來規(guī)范我們的編碼風(fēng)格,更容易使我們的代碼風(fēng)格一致
3、把a(bǔ)ndroid源碼作為一個(gè)工程導(dǎo)入eclipse時(shí),必須注意兩點(diǎn)
1)、新建的工程必須是java?project,不能是android?project,否則會(huì)破壞android源碼(一般是多添加文件/文件夾)
2)、導(dǎo)入前最好檢查.classpath里的文件在android源碼中是否有相應(yīng)的文件(文件夾),否則也會(huì)破壞android源碼(一般是多添加文件/文件夾)
總的來說:!?P"?A+?~'?]%?p9?I5?U7?V;?S;?B
1、用eclipse來編輯代碼、檢查錯(cuò)誤
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個(gè)值改為下面的值:
-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源碼作為一個(gè)工程導(dǎo)入eclipse
導(dǎo)入前先檢查.classpath里的文件在android源碼中是否有相應(yīng)的文件(文件夾),否則也會(huì)破壞android源碼(一般是多添加文件/文件夾),.classpath里多余的路徑可刪除-?]!?U4?n$?@:?~9?b+?A1?|-?z
新建Java?Project(不是android?project,否則會(huì)破壞android源碼),選擇從已存在的工程導(dǎo)入,工程名任意,完成。
導(dǎo)入時(shí),eclipse要build工程,比較慢。導(dǎo)完后,一般都沒有錯(cuò)誤。"?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”時(shí)苦出錯(cuò),說8700端口被占用,那么把DDMS程序關(guān)掉,重新打開DDMS就OK了。如果提供連不到VM錯(cuò)誤時(shí),請注意,要先在DDMS中選中某一進(jìn)程(對應(yīng)某一應(yīng)用程序),才能在eclipse執(zhí)行?Debug。.?B%?\*?E!?T,?K7?N8?U??b
在eclipse調(diào)試時(shí),可以設(shè)斷點(diǎn)、單步調(diào)試。估計(jì)google團(tuán)隊(duì)也是這樣開發(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
那么就會(huì)多出mm/mmm等命令,mm/mmm用來編譯模塊(包括C、C++、JAVA程序)。我們也可以直接在?android源碼根目錄下執(zhí)行“make?模塊名”來編譯模塊。
來自開源中國網(wǎng)老槍的分享
如何使用Android Studio開發(fā)/調(diào)試Android源碼
本文是以源碼中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
分享文章:android源碼開發(fā),編譯android源碼
分享URL:http://www.dlmjj.cn/article/phehsj.html