在Android原始碼中如何吧so庫打包編譯進入apk, 整合第三方庫(jar和so庫)
阿新 • • 發佈:2019-01-30
整合第三方so和jar包
include $(CLEAR_VARS) #jar包編譯 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=securitysdk:libs/hello.jar #64和32系統選擇不同的庫 ifeq (arm64, $(strip $(TARGET_ARCH))) LOCAL_PREBUILT_LIBS := libssl:libs/arm64-v8a/libssl.so LOCAL_PREBUILT_LIBS += libcrypto:libs/arm64-v8a/libcrypto.so LOCAL_PREBUILT_LIBS += libvivosgmain:libs/arm64-v8a/libaa.so把so庫包含進入apk
LOCAL_MODULE_INCLUDE_LIBRARY := true
後面Android某個原始碼版本不支援這一處理了,加入下面
LOCAL_MODULE_TAGS := tests
編譯後代apk在data目錄,so是整合進入apk的
1)假設so庫是已經存在的,不需要重新編譯的話。只需要用LOCAL_PREBUILT_JNI_LIBS指定(注意包含so的路徑) 2)假設so需要編譯,則需要先用LOCAL_JNI_SHARED_LIBRARIES指定,然後再用LOCAL_MODULE_INCLUDE_LIBRARY := true打包so到apk 最好還要編寫jni下的android.mk 3)LOCAL_MULTILIB := both 32和64都編譯。