android 编译的so自动放到system/lib,android – 将自定义SO文件导入AOSP

我按照本教程构建了一个AOSP系统服务:

http://www.androidenea.com/2009/12/adding-system-server-to-android.html

现在我想使用预编译的.so文件,无法确定放在哪里,以便我的代码能够访问它.

所以,我在framewaork / base / libs / my_folder /创建了一个文件夹

并把两个文件:

my_lib.so

android.mk

android.mk的内容是:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE:= my_lib

LOCAL_MODULE_TAGS := optional

include $(BUILD_SHARED_LIBRARY)

make运行没有错误,但是当代码尝试通过以下方式加载库时:

的System.loadLibrary( “my_lib”);

我收到了这个错误:

06-27 13:58:55.581:E / AndroidRuntime(806):引起:java.lang.UnsatisfiedLinkError:找不到库my_lib;试过[/vendor/lib/my_lib.so,/system/lib/my_lib.so]

所以我将so文件添加到out / target / product / generic / system / lib

但得到了同样的错误.

那么我应该在哪里放置my_lib.so文件?它是一个android.mk需要它吗?

也许我应该在系统的某个地方注册?

提前致谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值