失效链接处理 |
HIDL最全编译流程 PDF 下载
本站整理下载:
提取码:8v9j
相关截图:
主要内容:
HIDL最全编译流程
想 了 解 HIDL 介 绍 的 可 以 参 考 《 HIDL 概 述
(https://blog.csdn.net/u013357557/article/details/84561457)》,本篇文章主要介绍HIDL的详细编译
流程及简单的客户端应用(C++跟Android客户端的应用)。
一、准备工作
1. 整一套源码,Android O或者Android P的 2. 保证全套代码已经全编译,原生代码全编译命令
source build/envset.sh
lunch
make
3、hidl-gen工具已经安装,安装命令
make hidl-gen
二、hidl-gen工具介绍
系统定义的所有的 .hal 接口,都是通过 hidl-gen 工具转换成对应的代码。 hidl-gen 源码路径:
system/tools/hidl,是在ubuntu上可执行的二进制文件。
使用方法:hidl-gen -o output-path -L language (-r interface-root) fqname
例子:
hidl-gen -o hardware/interfaces/gunder/1.0/default/ -Lc++-impl -
randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport
android.hardware.gunder@1.0
参数说明:
-L: 语言类型,包括c++, c++-headers, c++-sources, export-header, c++-impl, java, java-constants, vts,
makefile, androidbp, androidbp-impl, hash等。 hidl-gen 可根据传入的语言类型产生不同的文件。
fqname: 完全限定名称的输入文件。比如本例中 android.hardware.gunder@1.0 ,要求在源码目录下必须有
hardware/interfaces/ gunder /1.0/ 目录。对于单个文件来说,格式如下: package@version::fileName ,
比如android.hardware. gunder @1.0::types.Feature。对于目录来说。格式如下 package@version ,比如
android.hardware. gunder @1.0 (mailto:%E6%AF%94%E5%A6%82android.hardware.power@1.0)。
-r: 格式package:path,可选,对fqname对应的文件来说,用来指定包名和文件所在的目录到Android系统源
码根目录的路径。如果没有制定,前缀默认是:android.hardware,目录是 Android 源码的根目录。
-o:存放hidl-gen产生的中间文件的路径。
可以使用hidl-gen 查看帮助,如图1:
2020/4/10 HIDL最全编译流程 - 程序员大本营
https://www.pianshen.com/article/8772104324/ 2/11
图1 hidl-gen的帮助信息
三、项目实例
1、在hardware/interfaces/目录下新建gunder/1.0目录,并在1.0目录中创建接口IGunder.hal。目录结
构如下:
gunder@ubuntu-MX8:~ /IMX8_b0beta2/hardware/interfaces/gunder$ tree
|