Android 12 如何加载 native 原生库

本文介绍了 Android 7.0 及更高版本中系统库与应用库分开的情况。原生库命名空间可防止应用使用私有平台 API 及意外使用平台库。芯片供应商和设备制造商可提供其他原生库,以 SDK 31 及以上为目标的应用需在清单中指定依赖项,还介绍了相关属性影响及库文件要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Android 7.0 及更高版本中,系统库与应用库是分开的。

原生库的命名空间

图1. 原生库的命名空间

 原生库的命名空间可防止应用使用私有平台的原生 API(例如使用 OpenSSL)。该命名空间还可以避免应用意外使用平台库(而非它们自己的库)的问题(如使用 libpng 时)。应用库很难意外使用内部系统库(反之亦然)。

除了标准的公共原生库之外,芯片供应商(从 Android 7.0 起)和设备制造商(从 Android 9 起)还可以选择提供可供应用访问的其他原生库,方法是将它们放在相应的库文件夹中,并在 .txt 文件中显式列出它们。

库文件夹是:

  • /vendor/lib(对于芯片供应商的 32 位库)和 /vendor/lib64(对于芯片供应商的 64 位库)
  • /system/lib(对于设备制造商的 32 位库)和 /system/lib64(对于设备制造商的 64 位库)

.txt 文件是:

  • /vendor/etc/public.libraries.txt&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值