在Android源碼中如何吧so庫打包編譯進入apk, 集成第三方庫(jar和so庫)


集成第三方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
else                                
    LOCAL_PREBUILT_LIBS := libssl:libs/armeabi-v7a/libssl.so
    LOCAL_PREBUILT_LIBS += libcrypto:libs/armeabi-v7a/libcrypto.so
    LOCAL_PREBUILT_LIBS += libvivosgmain:libs/armeabi-v7a/libtest.so
endif                               
                                    
include $(BUILD_MULTI_PREBUILT) 

 

 把so庫包含進入apk

 

LOCAL_JNI_SHARED_LIBRARIES := libssl libcrypto libvivosgmain

 

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
http://wangjianfei1016.blog.163.com/blog/static/20244096201212825258706/
http://bbs.csdn.net/topics/391988797
http://blog.chinaunix.net/uid-26524139-id-3161753.html
http://blog.csdn.net/zhejiang9/article/details/8664252
http://blog.csdn.net/thl789/article/details/7918093
3)LOCAL_MULTILIB := both  32和64都編譯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM