VNDK extensions

2023-10-27

Android P要求开VNDK

 

如果HAL需要链接android原生库,原生库的Android.bp必须包含下面内容

 

如果没有对原生库做任何修改,编译不会出现问题;如果对原生库做了修改,这个时候编译会出错,会提示不允许链接该库,这个时候就需要添加扩展库了

VNDK扩展库与VNDK原生库相比增加了新的API或者对原有API的修改,编译出的扩展库会放到/vendor/lib[64]/vndk[-sp]下面把原生的VNDK库替换掉,具体操作如下:

假设原生库为libABC,扩展库为libABC_ext

1、在原有模块libABC的基础上新增模块libABC_ext,并添加cflag LIBABC_EXT_ENABLE

cc_library {
name: "libABC",
vendor_available: true,
vndk: {
enabled: true,
},
}
cc_library {
name: "libABC_ext",
vendor: true,
vndk: {
enabled: true,
extends: "libABC",
},
cflags: [
"-DLIBABC_EXT_ENABLE",
],
}

2、条件编译

新增API (newly_add_api)

#ifdef LIBABC_EXT_ENABLE
void newly_add_api()
#endif

修改API(new 与old相比,接口名称一样,内容不一样)

#ifdef LIBABC_EXT_ENABLE
void new()
#else
void old()
#endif

做完这些后,就能编译通过了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VNDK extensions 的相关文章

  • vue3中hooks的介绍及用法

    大家好 今天这篇文章是介绍一下vue3中的hooks以及它的用法 本文内容主要有以下两点 什么是hooks vue3中hooks的使用方法 一 什么是hooks hook是钩子的意思 看到 钩子 是不是就想到了钩子函数 事实上 hooks
  • 告别了夸克,我已经找到了比你更强大的浏览器

    老实说 夸克真的是一款非常不错的浏览器 但是随着更新这个app越来越臃肿 还搞起了付费网盘 很多人转身选择其他浏览器 以前也给大家推荐过Alook浏览器 X浏览器等 今天 再给大家推荐3款浏览器 比夸克更牛 更好用 不信就往下看吧 1 多御
  • 【论文精读】360MVSNet

    今天读的是发表在WACV2023上的MVS文章 该文章提出了基于全景相机的MVS pipeline 文章链接 点击前往 代码链接 暂未开源 文章目录 Abstract 1 Introduction 2 Related works 3 Met
  • day28 回溯

    93 复原IP地址 本质上是分割问题 判断一个分割的值是否有效 回溯需要去掉 78 子集 收集每个树的节点 90 子集II 收集每个树的节点 树层去重 package algor trainingcamp import java util
  • pycharm中的 opencv-python 没有函数提示的解决方案

    pycharm中用 pip install opencv python 安装的cv2可能没有函数提示功能 ctrl 鼠标左键 也不会进入源代码 解决方案如下 1 找到cv2对应python编译器的安装路径 pycharm左下角 将鼠标放在编
  • 什么是页缓存(Page Cache)(转载)

    我们知道文件一般存放在硬盘 机械硬盘或固态硬盘 中 CPU 并不能直接访问硬盘中的数据 而是需要先将硬盘中的数据读入到内存中 然后才能被 CPU 访问 由于读写硬盘的速度比读写内存要慢很多 DDR4 内存读写速度是机械硬盘500倍 是固态硬
  • teamviewer 试用期到期以后怎么卸载然后安装使用

    1 1 退出TeamViewer远程软件 卸载软件 2 2 按键盘的 win R 组合键打开 运行 输入 appdata 3 3 在弹出的窗口中 找到并删除TeamViewer文件夹 4 4 按键盘的 win R 组合键打开 运行 输入 r
  • 降噪电路_TWS蓝牙耳机降噪要选对蓝牙晶振

    如今 越来越多的手机开始取消3 5mm耳机接口 转而采用USB C接口耳机或是无线蓝牙耳机 但消费者对音乐分辨率的要求却始终有增无减 一项调查显示 音质已成为消费者选择耳机或音箱产品时最看重的因素 76 的受访者为此投了赞成票 79 的受访
  • 启动指定用户docker

    有段时间没用docker了 都不记得怎么操作了 启动指定用户docker 方法如下
  • 目标检测正负样本区分和平衡策略总结

    目标检测正负样本区分策略和平衡策略总结 一 知乎0 简介本文抛弃网络具体结构 仅仅从正负样本区分和正负样本平衡策略进行分析 大体可以分为 正负样本定义 正负样本采样和平衡loss设计三个方面 主要是网络预测输出和loss核心设计即仅仅涉及网
  • Darknet下的Yolo v3

    一 网址 https github com AlexeyAB darknet 二 训练自己的数据 检测人头 1 经过1周训练的效果图 总体上效果还是很OK的 检测精度也比较高 2 数据准备 2 1 标注工具 标注工具在我的其他博客里有说明
  • STM32微控制器综合实训8 PWM输出实验

    实验8 PWM输出实验 用STM32的定时器来产生PWM呼吸灯 文章目录 代码讲解 main c timer c 编译仿真 第一次仿真 第二次仿真 第三次仿真 第四次仿真 遇到的错误 总结 代码讲解 main c int main void
  • TortoiseGit 入门指南04:查看提交日志

    如果每次提交都按照规定格式书写提交信息 这样一来就可以使用日志功能来查看开发过程 找出所做的更改以及更改原因 在仓库中右击鼠标 选择 TortoiseGit Show log 打开日志对话框 默认日志对话框仅列出所选文件或目录及其子目录文件

随机推荐