安卓开发中,有时候需要在系统环境下开发apk,导入第三方jar包或者so库。
导入aar包:
1、在模块根目录下新建文件夹libs,将需要aar包拷贝进libs.
2、在Android.mk文件加入:
LOCAL_STATIC_JAVA_AAR_LIBRARIES := demo
3、在include $(BUILD_PACKAGE)后面加入:
include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := demo:libs/demo.aarinclude $(BUILD_MULTI_PREBUILT)
导入jar包:
1、在模块根目录下新建文件夹libs,将需要jar包拷贝进libs.
2、在Android.mk文件加入:
LOCAL_STATIC_JAVA_LIBRARIES := \demo
3、在include $(BUILD_PACKAGE)后面加入:
include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \demo:libs/demo.jarinclude $(BUILD_MULTI_PREBUILT)
导入so文件:
需要的so文件简单点的做法是将文件拷贝到system/lib下和system/lib64下面。
可以通过PRODUCT_COPY_FILES 进行拷贝:
PRODUCT_COPY_FILES +=device/qom/userdata/libs/demo1.so:system/lib/demo1.sodevice/qom/userdata/libs/demo2.so:system/lib/demo2.so
编译输出so文件
PRODUCT_COPY_FILES += \$(call find-copy-subdir-files,*,vendor/emdoor/apps/AgeingTest/libs/armeabi-v7a,system/priv-app/AgeingTest/lib/arm) \$(call find-copy-subdir-files,*,vendor/emdoor/apps/FactoryTest/libs/armeabi-v7a,system/priv-app/FactoryTest/lib/arm)
下面给出一个导入aar包,jar包的完整Android.mk文件
ifneq ($(TARGET_BUILD_PDK), true)LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/resLOCAL_PACKAGE_NAME := DemoAppLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_CERTIFICATE := platformLOCAL_MODULE_TAGS := optionalLOCAL_PRIVILEGED_MODULE := trueLOCAL_USE_AAPT2 := trueLOCAL_PROGUARD_ENABLED := disabledLOCAL_DEX_PREOPT := falseLOCAL_STATIC_ANDROID_LIBRARIES += \androidx.car_car \androidx-constraintlayout_constraintlayout//定义jar包名称LOCAL_STATIC_JAVA_LIBRARIES := \demo_jar//定义aar包名称LOCAL_STATIC_JAVA_AAR_LIBRARIES := \demo_aarinclude $(BUILD_PACKAGE)//指定jar包目录和aar目录include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \demo_jar:libs/demo_jar.jar \demo_aar:libs/demo_aar.aarinclude $(BUILD_MULTI_PREBUILT)endif
一些导入jar的例子
LOCAL_STATIC_ANDROID_LIBRARIES := \android-support-v7-recyclerview \android-support-v7-appcompat \android-support-percent \LOCAL_STATIC_JAVA_LIBRARIES:=glidelibs\mediaplayer_gsonlib\libvlc\fastjsonlib\eventbuslib\fmlib\kwmusiclib\speechcontrollib\tingphoneopensdkbaby\litepal\include $(BUILD_PACKAGE)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := glidelibsLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/glide-3.7.0.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := mediaplayer_gsonlibLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/gson-2.2.4.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := fastjsonlibLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/fastjson-1.2.56.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := eventbuslibLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/eventbus-3.1.1.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := fmlibLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/client_sdk_1.3.6.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := kwmusiclibLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/kwmusic-autosdk-v2.0.6.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := speechcontrollibLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/SpeechControllerBaby_1.0.6.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := tingphoneopensdkbabyLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/TingPhoneOpenSDK_6.3.1.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := litepalLOCAL_PRIVATE_PLATFORM_APIS := trueLOCAL_SRC_FILES := MediaPlayer/libs/litepal-3.0.0.jarLOCAL_UNINSTALLABLE_MODULE := trueinclude $(BUILD_PREBUILT)
