android - 什么可以在 Android N+ 上加载私有原生库?
问题描述
我必须在我的应用程序中加载一些硬件专有的非 NDK(即私有)平台原生库;由于较长的依赖链和各个设备实现的差异,按照Google 的建议捆绑本机库的副本是不切实际的。由于这些库是特定于硬件的,因此无法将它们添加到NDK 或 VNDK中。
由于甚至不再允许系统应用程序加载私有本机库,我不确定 Android 组件能够做到什么。我偶然发现从 /system/priv-app 安装和运行的应用程序似乎通过了,因为 /system/lib 被认为在他们的库搜索路径上,但是在通常的 /data 分区中安装的更新会丢失访问(因此不能选择带有稍后更新的存根特权应用程序)。我宁愿避免使用不可更新的 /system/priv-app 解决方案,而且无论如何我还没有在任何地方发现这种解决方法,所以我怀疑它是一个官方和可靠的替代方案。
我可以访问我的设备的完整系统源代码,因此添加框架模块是一个很好的解决方案;但是,我不确定在这种情况下什么构成“框架代码”和/或可以访问 Android N+ 上的私有本机库。
Android 的哪些组件可以访问私有原生库?
通过 ServiceManager 和 Context.getSystemService() 可发现的系统服务是否可以访问私有本地库?
解决方案
Aiui 这就是 VNDK 的用途。
Android 的哪些组件可以访问私有原生库?
系统服务。不是应用程序;正常程序。
推荐阅读
- payment-gateway - 在万事达卡支付网关中验证支付
- python-3.x - Python3 - 网页抓取 zomato - 多个页面
- python - 没有numpy的python中的梯形规则
- python-3.x - 无法在 Python 中分组 by() 和 sum()
- c# - IIS Web 请求无限期挂起 - OWIN 模块
- go - 无法在 vscode 中运行第一个 golang 项目
- solr - Solr - 添加 JSON 文档
- bash - 使用 bash 将特殊字符 (√) 转换为普通字符串
- python - 使用 re.match() 修复字符串大小写
- mysql - 无法返回符合条件的记录