Android本地库命名空间

本文介绍了Android 7.0引入的本地库命名空间,旨在限制内部API可见性和解决应用使用平台库时的意外终止问题。系统库与应用库分离,通过public.libraries.txt设置白名单允许应用访问系统库。Android 8.0后,供应商本地库需遵循额外权限设置,且不得依赖非VNDK-SP和LLNDK系统库。
摘要由CSDN通过智能技术生成

Android本地库命名空间

 SegmentFault博客

2月 ago

Android 7.0 推出了本地库的命名空间,其目的是限制内部 API 可见性,并解决应用在使用平台库时意外终止的问题。本地库命名空间的架构如下图所示,

从架构上可以看出:

  • 系统库与应用库被分离开来,彼此不能交叉使用。
  • 系统进程和应用都可以访问NDK库。
  • 应用很可能使用与系统库同名的私有库,这种设计避免了应用使用错误库而导致的意外。

但是,应用也经常需要使用系统库,每个应用都将系统库打包到自己中未免太浪费了。所以Android还提供了应用访问系统库的方法,通过public.libraries.txt设置白名单。

本地系统库由芯片供应商和设备制造商提供,它们放置的位置为,

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

将本地系统库的名字加入到public.libraries.txt,就可以开放给应用来使用。public.libraries.txt存在多个文件,分别为:

  • /vendor/etc/public.libraries.txt (芯片供应商的库)。
  • /system/etc/public.libraries-COMPANYNAME.txt &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值