溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Android源碼中如何編譯出指定jar包的操作

發(fā)布時間:2021-05-10 11:34:53 來源:億速云 閱讀:484 作者:小新 欄目:移動開發(fā)

這篇文章主要介紹了在Android源碼中如何編譯出指定jar包的操作,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Android是什么

Android是一種基于Linux內核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯(lián)盟領導及開發(fā)。

今天想把android源碼/vendor/letv/frameworks/base/java下的源碼編譯成 framework-letv.jar供樂樂語音客戶端使用,編譯完后,發(fā)現(xiàn)jar包文件雖然生成了,但包里面并沒有相關的源碼class文件,無法正常使用。

經(jīng)過請教加研究發(fā)現(xiàn),Android.mk文件需要添加選項如下:

 54 LOCAL_JACK_ENABLED := disabled # important!
 55 #include $(BUILD_JAVA_LIBRARY) 

 56 include $(BUILD_STATIC_JAVA_LIBRARY) #編譯jar包

最終生成了javalib.jar,改名為 framework-letv.jar即可。注意:如果沒有指定LACAL_JACK_ENABLED選項,則默認是enabled,將會生成classes.jack文件,不會產(chǎn)生classes.jar包!

另外補充點:在某一應用程序中有時候需要引用第三方jar包,那么怎么才能在編譯app的時候把該jar包引入進入呢?

在該app下的Android.mk文件中添加如下語句:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := user eng
########################################
LOCAL_STATIC_JAVA_LIBRARIES := lib3party //定義引用名
########################################
....
include $(BUILD_PACKAGE)
###############################################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib3part:libs/3part.jar //引用名:jar包名
include $(BUILD_MULTI_PREBUILT)
################################################################

添加jar包,關鍵在 LOCAL_STATIC_JAVA_LIBRARIES := libarity 和 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libarity:lily.jar 這兩句。

libarity為jar包的別名,可以隨便取,只要與下面相對應就行。但是后面冒號后面的那個jar包名字就必須寫你需要引入的jar包名字。

jar包應該放在工程的根目錄下,也就是與你要編譯的app的src,res,Android.mk文件同級的目錄。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“在Android源碼中如何編譯出指定jar包的操作”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI