ContactsProvider系统源码导入配置AndroidStudio编译环境
一、配置AndroidStudio SDK的環(huán)境
- AndroidStudio配置使用自定義SDK
AndroidStudio項目需要調(diào)用的API是我們自己framework增加的API時,由于默認(rèn)使用的官方SDK.因此會找不到對應(yīng)的API.
解決方案是: 替換AndroidStudio SDK中的SDK為我們系統(tǒng)編譯出來的SDK
- 1.在我們系統(tǒng)源碼linux中執(zhí)行make sdk 生成android.jar文件.
路徑: repo/out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar
- 2.將linux中android.jar替換掉AndroidStudio SDK中sdk\platforms\android-27\android.jar文件
二、導(dǎo)入android系統(tǒng)源碼到AndroidStudio(ContactsProvider系統(tǒng)源碼)
- 1.創(chuàng)建AndroidStudio工程的項目
- 2.在AS工程中導(dǎo)入ContactsProvider系統(tǒng)源碼
將ContactsProvider系統(tǒng)源碼中src、res、AndroidManifest.xml目錄覆蓋AS工程中對應(yīng)目錄
三、解決導(dǎo)入系統(tǒng)源碼后的AS工程的報錯
如下圖,通過分析ContactsProvider系統(tǒng)源碼中的Android.mk文件發(fā)現(xiàn),需要關(guān)聯(lián)動態(tài)庫ext、telephony-common 靜態(tài)庫android-common、com.android.vcard、guava
在out/target/common/obj/JAVA_LIBRARIES/目錄下查找如上需要的庫
- ext庫,如下圖
將out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar 拷貝到AS工程libs目錄下,并命名為:ext.jar
- android-common庫,如下圖
將out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/classes.jar 拷貝到AS工程libs目錄下,并命名為:android-common.jar
-
telephony-common庫
-
com.android.vcard庫
-
guava庫
-
在AS工程中依賴libs中的庫文件
如下圖,將動態(tài)庫telephony-common.jar通過compileOnly的方式進(jìn)行依賴,而靜態(tài)庫使用implementation的方式進(jìn)行依賴
參考如上方式,將libs中的庫全部依賴
Tips:Android Studio3.0后依賴方式關(guān)鍵字變更(括號中為2.x版本的關(guān)鍵字):implementation (compile) // 依賴的庫將會參與編譯和打包(依賴不會傳遞,和以下兩者推薦使用implementation,implementation會使編譯速度有所增快)api(compile) // 依賴的庫將會參與編譯和打包(依賴可以傳遞)compileOnly(provided) // 只在編譯時有效,不會參與打包 runtimeOnly(apk) // 只在生成apk的時候參與打包,編譯時不會參與,很少用testImplementation(testCompile) // 只在單元測試代碼的編譯以及最終打包測試apk時有效debugImplementation(debugCompile) // 只在debug模式的編譯和最終的debug apk打包時有效releaseImplementation(releaseCompile) // 僅僅針對Release 模式的編譯和最終的Release apk打包- 最后一個報錯,缺失EventLogTags.java,在源碼中搜索 找到對應(yīng)的類,復(fù)制到AS工程中所對應(yīng)的包下(ContactsProvider\app\src\main\java\com\android\providers\contacts\EventLogTags.java),如下圖
最后,Build APk 即可生成非系統(tǒng)簽名的apk,將其進(jìn)行系統(tǒng)簽名即可push使用
Tips:將Eclipse或AndroidStudio已經(jīng)編出來的apk手動配置系統(tǒng)簽名:創(chuàng)建SignApk文件夾,把需要重新簽名的apk和platform.x509.pem、platform.pk8、signapk.jar文件拷貝到該目錄下對應(yīng)文件在linux所在路徑:platform.x509.pem、platform.pk8: build/target/product/securitysignapk.jar: out/host/linux-x86/frameworksignapk源碼路徑: build/tools/signapk最后執(zhí)行以下命令生成系統(tǒng)簽名后的apkjava -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk配置好的ContactsProvider代碼下載
相關(guān)鏈接直達(dá):
Android系統(tǒng)源碼SystemUI導(dǎo)入eclipse編譯
Android系統(tǒng)源碼Settings導(dǎo)入eclipse
AndroidStudio導(dǎo)入系統(tǒng)源碼DeskClock編譯生成系統(tǒng)簽名apk
ContactsProvider系統(tǒng)源碼導(dǎo)入配置AndroidStudio編譯環(huán)境
總結(jié)
以上是生活随笔為你收集整理的ContactsProvider系统源码导入配置AndroidStudio编译环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【下载】无线电杂志上下册合集2006-2
- 下一篇: android sina oauth2.