安卓开发中,有时候需要在系统环境下开发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.aar
include $(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.jar
include $(BUILD_MULTI_PREBUILT)
导入so文件:
需要的so文件简单点的做法是将文件拷贝到system/lib下和system/lib64下面。
可以通过PRODUCT_COPY_FILES 进行拷贝:
PRODUCT_COPY_FILES +=
device/qom/userdata/libs/demo1.so:system/lib/demo1.so
device/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)/res
LOCAL_PACKAGE_NAME := DemoApp
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true
LOCAL_USE_AAPT2 := true
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_DEX_PREOPT := false
LOCAL_STATIC_ANDROID_LIBRARIES += \
androidx.car_car \
androidx-constraintlayout_constraintlayout
//定义jar包名称
LOCAL_STATIC_JAVA_LIBRARIES := \demo_jar
//定义aar包名称
LOCAL_STATIC_JAVA_AAR_LIBRARIES := \demo_aar
include $(BUILD_PACKAGE)
//指定jar包目录和aar目录
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
demo_jar:libs/demo_jar.jar \
demo_aar:libs/demo_aar.aar
include $(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_LIBRARIES
LOCAL_MODULE := glidelibs
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/glide-3.7.0.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := mediaplayer_gsonlib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/gson-2.2.4.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := fastjsonlib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/fastjson-1.2.56.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := eventbuslib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/eventbus-3.1.1.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := fmlib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/client_sdk_1.3.6.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := kwmusiclib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/kwmusic-autosdk-v2.0.6.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := speechcontrollib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/SpeechControllerBaby_1.0.6.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := tingphoneopensdkbaby
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/TingPhoneOpenSDK_6.3.1.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := litepal
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_SRC_FILES := MediaPlayer/libs/litepal-3.0.0.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)