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中剝離出來。