在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
3)LOCAL_MULTILIB := both  32和64都编译。


  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android AOSP 源码的 device 目录下添加自定义的 JAR 包和 libso 的步骤如下: 1. 添加 JAR 包: 将自定义的 JAR 包复制到 device/vendor/{vendor_name}/{device_name}/proprietary/ 目录下,其 {vendor_name} 和 {device_name} 分别是设备制造商和设备名称。 在 device/{vendor_name}/{device_name}/device.mk 文件添加以下代码: ``` PRODUCT_PACKAGES += MyCustomJar PRODUCT_COPY_FILES += \ vendor/$(VENDOR)/$(DEVICE)/proprietary/MyCustomJar.jar:system/framework/MyCustomJar.jar ``` 其 MyCustomJar 是你的 JAR 包名称。这样就将 JAR 包添加到了 Android 系统的 framework 。 2. 添加 libso : 将自定义的 libso 复制到 device/vendor/{vendor_name}/{device_name}/proprietary/vendor/lib/ 目录下。 在 device/{vendor_name}/{device_name}/device.mk 文件添加以下代码: ``` PRODUCT_PACKAGES += MyCustomLib PRODUCT_COPY_FILES += \ vendor/$(VENDOR)/$(DEVICE)/proprietary/vendor/lib/libMyCustomLib.so:vendor/lib/libMyCustomLib.so ``` 其 MyCustomLib 是你的 libso 名称。这样就将 libso 添加到了 Android 系统的 vendor/lib 目录下。 3. 编译 Android 系统: 在编译 Android 系统之前,需要先执行以下命令: ``` source build/envsetup.sh ``` 然后编译 Android 系统: ``` lunch {device_name}-{build_type} make -j{n} ``` 其 {device_name} 是设备名称,{build_type} 是编译类型(如 userdebug),{n} 是编译线程数。 编译完成后,就可以在 Android 系统使用自定义的 JAR 包和 libso 了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值