將自定義的jar包新增到framework層(解決)
阿新 • • 發佈:2018-11-09
原java類檔案放到framework下面,通過原始碼編譯生成系統jar包:
專案中,客戶要求將jar新增到framework.jar裡,以便所有的apk都可以呼叫這個jar。這個jar包裡面呼叫了AIDL裡的方法,原始碼裡有專案是AIDL的服務端,冰拳引用了framework.jar,則會因為包名類名相同導致出現混淆錯誤。下面是我自己總結各方資料來解決問題,僅供參考:
1.簡單的弄一個架包加入到framework.jar裡面去 在frameworks\base下新建xxx目錄,下面的目錄結構如下,不需要加Android.mk檔案,但必須要有一個java的目錄: └─xxx└─java
└─com
└─android
└─frameworkunit
└─ FrameworkTest.java 然後在build/core/pathmap.mk檔案中新增你自己建立的目錄
FRAMEWORKS_BASE_SUBDIRS := \
$(addsuffix /java, \
core \
graphics \
location \
media \
media/mca/effect \
media/mca/filterfw \
media/mca/filterpacks \
.
.
xxx \
)
然後通過mmm命令編譯這個新新增的模組了: mmm framework/base編譯,生成檔案為out/target/product/generic/system/framework/framework.jar 編譯通過後就可以做接下來的事情了這樣便實現 APK從framework.jar中呼叫自定義的方法了
借鑑: http://www.360doc.com/content/14/0308/22/3700464_358895265.shtml