亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android.mk引入第三方j(luò)ar包和so庫文件的方法

 更新時(shí)間:2018年05月07日 16:58:35   作者:陽光玻璃杯  
這篇文章主要介紹了Android.mk引入第三方j(luò)ar包和so庫文件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

以SystemUI為例,如果需要在SystemUI中引入第三方j(luò)ar包以及so庫,可作如下處理:

首先,在frameworks\base\packages\SystemUI下新建libs目錄:

 

將需要引入的jar包放置到libs目錄下。然后修改Android.mk文件:

也就說引入jar包主要依賴的是LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES和LOCAL_STATIC_JAVA_LIBRARIES。下面吧完整的Android.mk貼出來,方便拷貝。

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
 src/com/android/systemui/EventLogTags.logtags
LOCAL_STATIC_JAVA_LIBRARIES := aaa Keyguard android-support-v7-palette android-support-v4
LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_JAVA_LIBRARIES += JSRConfig

LOCAL_SHARED_LIBRARIES := libtest1 \
 libtest2

LOCAL_PACKAGE_NAME := SystemUI
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_RESOURCE_DIR := \
 frameworks/base/packages/Keyguard/res \
 $(LOCAL_PATH)/res
LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard

include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
 aaa:libs/aaa.jar
include $(BUILD_MULTI_PREBUILT)
include $(call all-makefiles-under,$(LOCAL_PATH))

我們把需要引入的jar包放置到了SystemUI下的libs目錄下了,并通過修改Android.mk完成了對(duì)它的引入。那么so庫怎么辦呢?上面并沒有說把它放置到哪里???

Android中,系統(tǒng)級(jí)的app使用到so庫以后,都會(huì)去system/lib目錄下去查找,所以你只需要把so庫放置到system/lib目錄下,然后在Android.mk中通過LOCAL_SHARED_LIBRARIES變量完成引用即可。我們可以通過adb把so庫push到設(shè)備的system/lib目錄下,可是,如果想要在android系統(tǒng)編譯過程中,就實(shí)現(xiàn)so庫拷貝到system/lib目錄,那怎么辦呢?這用到了Android編譯系統(tǒng)中的PRODUCT_COPY_FILES變量。

舉例來說,打開device\xx\xxx目錄下一產(chǎn)品名命名的.mk文件,搜索PRODUCT_COPY_FILES變量就會(huì)看到很多該變量的用例,比如:

# Audio configuration file
PRODUCT_COPY_FILES += \
 device/xx/xxx/audio_policy.conf:system/etc/audio_policy.conf \
 device/xx/xxx/audio_effects.conf:system/vendor/etc/audio_effects.conf \
 device/xx/xxx/mixer_paths_qrd_skuh.xml:system/etc/mixer_paths_qrd_skuh.xml \
 。。。

PRODUCT_COPY_FILES 的每一個(gè)值都是以“:”隔開,前面是源,后面是目的。比如我們?cè)赿evices/xx/xxx目錄下新建lib目錄,把libtest1.so和libtest2.so放置到lib目錄下,然后就可以通過給PRODUCT_COPY_FILES 作如下賦值,即可是的系統(tǒng)在編譯的時(shí)候完成對(duì)他們的拷貝:

#so library
PRODUCT_COPY_FILES += \
 device/xx/xxx/libs/libtest1.so:system/lib/libtest1.so \
 device/xx/xxx/libs/libtest2.so:system/lib/libtest2.so

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 通過Android trace文件分析死鎖ANR實(shí)例過程

    通過Android trace文件分析死鎖ANR實(shí)例過程

    遇到ANR(Application Not Responding)是比較常見的問題,產(chǎn)生ANR的原因有很多,比如CPU使用過高、事件沒有得到及時(shí)的響應(yīng)、死鎖等,下面將通過一次因?yàn)樗梨i導(dǎo)致的ANR問題,來說明如何通過trace文件分析ANR問題
    2013-06-06
  • Android自定義商品購買數(shù)量加減控件

    Android自定義商品購買數(shù)量加減控件

    這篇文章主要為大家詳細(xì)介紹了Android自定義商品購買數(shù)量加減控件的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Kotlin使用靜態(tài)變量與靜態(tài)方法詳解

    Kotlin使用靜態(tài)變量與靜態(tài)方法詳解

    kotlin定義靜態(tài)變量、方法可以采用伴生對(duì)象companion object的方式。 下面這篇文章主要給大家介紹了關(guān)于Kotlin使用靜態(tài)變量與靜態(tài)方法的相關(guān)資料,需要的朋友可以參考下
    2018-12-12
  • android surfaceView實(shí)現(xiàn)播放視頻功能

    android surfaceView實(shí)現(xiàn)播放視頻功能

    這篇文章主要為大家詳細(xì)介紹了android surfaceView實(shí)現(xiàn)播放視頻功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Android編程之軟鍵盤的隱藏顯示實(shí)例詳解

    Android編程之軟鍵盤的隱藏顯示實(shí)例詳解

    這篇文章主要介紹了Android編程之軟鍵盤的隱藏顯示,結(jié)合實(shí)例形式詳細(xì)分析了Android編程中軟鍵盤的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-12-12
  • Android藍(lán)牙服務(wù)啟動(dòng)流程分析探索

    Android藍(lán)牙服務(wù)啟動(dòng)流程分析探索

    這篇文章主要介紹了Android藍(lán)牙服務(wù)啟動(dòng)流程,了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時(shí)也是驗(yàn)證了一個(gè)人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會(huì)的
    2023-01-01
  • Android中使用SQLite3 命令行查看內(nèi)嵌數(shù)據(jù)庫的方法

    Android中使用SQLite3 命令行查看內(nèi)嵌數(shù)據(jù)庫的方法

    這篇文章主要介紹了Android中使用SQLite3 命令行查看內(nèi)嵌數(shù)據(jù)庫的方法的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • Android自定義控件實(shí)現(xiàn)下拉刷新效果

    Android自定義控件實(shí)現(xiàn)下拉刷新效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)下拉刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Flutter應(yīng)用框架搭建之屏幕適配詳解

    Flutter應(yīng)用框架搭建之屏幕適配詳解

    因移動(dòng)設(shè)備的多樣性,特別是 Android 的碎片化嚴(yán)重,存在各種各樣的分辨率,而 Flutter 跨平臺(tái)開發(fā)又需同時(shí)支持 Android 和 iOS ,為盡可能的還原設(shè)計(jì)圖效果提升用戶體驗(yàn),屏幕適配就勢(shì)在必行了。本文將詳細(xì)講解Flutter屏幕適配的方法,需要的可以參考一下
    2022-03-03
  • Android編程實(shí)現(xiàn)獲取系統(tǒng)內(nèi)存、CPU使用率及狀態(tài)欄高度的方法示例

    Android編程實(shí)現(xiàn)獲取系統(tǒng)內(nèi)存、CPU使用率及狀態(tài)欄高度的方法示例

    這篇文章主要介紹了Android編程實(shí)現(xiàn)獲取系統(tǒng)內(nèi)存、CPU使用率及狀態(tài)欄高度的方法,涉及Android基于自定義類實(shí)現(xiàn)針對(duì)系統(tǒng)硬件信息的相關(guān)獲取操作技巧,需要的朋友可以參考下
    2017-08-08

最新評(píng)論