LOCAL_PREBUILT_JNI_LIBS使用说明
使用LOCAL_PREBUILT_JNI_LIBS,可用于控制APK集成时,其相关so的集成方式。
比如,用于将APK中的so,抽取出来。
LOCAL_PREBUILT_JNI_LIBS := \lib/arm64-v8a/libNativeCore.so \lib/arm64-v8a/libasic_guidecore.so \lib/arm64-v8a/libc++_shared.so \
同时,也可以告知编译系统,哪些so保留在apk中。不进行抽取,使用@标识
LOCAL_PREBUILT_JNI_LIBS := \@lib/arm64-v8a/libNativeCore.so \@lib/arm64-v8a/libasic_guidecore.so \@lib/arm64-v8a/libc++_shared.so \
- 对应Android源码(Android12)
android/build/make/core/install_jni_libs.mk
LOCAL_PREBUILT_JNI_LIBS的值赋给 my_prebuilt_jni_libs。
android/build/make/core/install_jni_libs_internal.mk
使用my_prebuilt_jni_libs,对my_embedded_perbuilt_jni_libs赋值(找出@对应的lib),并将my_embedded_perbuilt_jni_libs赋值给embedded_prebuilt_jni_libs(见上图)
/android/build/make/core/app_prebuilt_internal.mk
使用embedded_prebuilt_jni_libs对PRIVATE_EMBEDED_JNI_LIBS赋值
android/build/make/core/definitions.mk
判断PRIVATE_EMBEDED_JNI_LIBS是否为空。不为空,则将其用作-X的参数。表示排除这些so,就是不从apk中剥离出来。