Android⼿机NFCPOS的EMV设计框架(HIDL实现)
HIDL背景
Treble 是 Google Android 团队的⼀项重⼤项⽬,意在 Android 操作系统框架在架构⽅⾯的⼀项重⼤改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Android 7.x 及更早版本中没有正式的供应商接⼝,因此设备制造商必须更新⼤量 Android 代码才能将设备更新到新版 Android 系统。
Android O以后,Treble 提供了⼀个稳定的新供应商接⼝,供设备制造商访问 Android 代码中特定于硬件的部分,这样⼀来,设备制造商只需更新 Android 操作系统框架,即可跳过芯⽚制造商直接提供新的 Android 版本。
HIDL简介
HIDL 是⽤于指定 HAL 与其⽤户之间接⼝的⼀个接⼝描述语⾔(Interface Description Language),它允许将指定的类型与函数调⽤收集到接⼝(Interface)和包(Package)中。更⼴泛地说,HIDL 是⼀个可以让那些独⽴编译的代码库(Libraries)之间进⾏通信的系统。 HIDL 实际上是⽤于进⾏进程间通信(Inter-process Communication,IPC)的。进程间的通信可以称为 Binder 化(Binderized)。对于必学术通
须连接到进程的库,也可以使⽤ passthough 模式(但在Java中不⽀持)。 HIDL 将指定的数据结构与⽅法签名组织到接⼝中,这些接⼝⼜会被收集到包中以供使⽤。它的语法与 C++、JAVA 是类似的,不过关键字集合不尽相同。其注释风格与 JAVA 是⼀致的。微信怎么改密码
HIDL设计
设计 HIDL 这个机制的⽬的,主要是想把框架(framework)与 HAL 进⾏隔离,使得框架部分可以直接被覆盖、更新,⽽不需要重新对 HAL 进⾏编译。HAL 的部分将会放在设备的 /vendor 分区中,并且是由设备供应商(vendors)或 SOC 制造商来构建。这使得框架部分可以通过OTA ⽅式更新,同时不需要重新编译 HAL。
直通式HAL( Passthrough 模式)和 绑定式 HAL (Binderized模式)
为了将以往设备的 Android 版本更新到 Android O,开发者需要将传统的 HAL 封装到新的 HIDL 接⼝中,这个接⼝为 HAL 提供了 Binder 化以及 Passthrough 模式。这个封装过程对 HAL 以及 Android Framework 都是透明的。
Passthrough 模式仅对 C++ 客户端与实现适⽤,以往的 Android 版本设备中,HAL 不会采⽤ JAVA 语⾔来写,所以 JAVA HAL 必然是Binder 化的。
绑定式 HAL。以 HAL 接⼝定义语⾔ (HIDL) 表⽰的 HAL。这些 HAL 取代了早期 Android 版本中使⽤的传统 HAL 和旧版 HAL。在绑定式HAL 中,Android 框架和 HAL 之间通过 Binder 进程间通信 (IPC) 调⽤进⾏通信。所有在推出时即搭载了 Android 8.0 或后续版本的设备都必须只⽀持绑定式 HAL。
下⾯介绍HIDL的实现流程:
⼀、编译环境
果然好吃
1. 下载AOSP源码
android 8.1.0_r52 OPM7.181205.001
游洞庭湖2. 编译代码:
南瓜吐司面包source build/envt.sh
lunch ,选择⼀个对应⼿机的编译项雷锋精神内涵
make
3、hidl-gen⼯具已经安装,安装命令
make hidl-gen
4、调试平台
创新驱动发展战略
颈部保健操