幸苦添加的HIDL service是为了服务各个client请求的。在实际场景中,HIDL service一般对应某个硬件模块,其中的接口则对应硬件所具备的功能。各个client则是对该模块有具体需求的。例如 HIDL-Light中则会提供控制具体led的接口,那么client则可以通过HIDL-Light所提供的接口来控制led,来实现各种联动功能。
1.Android.bp 说明
HIDL的服务是支持cpp/ndk/java方式调用的,这里选用cpp的方式进行调用。那么编译的模块则是cc_binary,大致内容如下
cc_binary {
name: "customHardwareClient1",
vendor: true,
relative_install_path: "hw",
shared_libs: [
...
"flagstaff.hardware.custom_hardware@1.0",
],
}
从上面的Android.bp可得,测试模块为customHardwareClient1,位于/vendor/bin/hw路径。因为其需要调用custom_hardware接口的服务,则添加相应的动态库(flagstaff.hardware.custom_hardware@1.0),该动态库中涵盖了binder rpc的实现,以及ICustomHardware,.ha接口所转化出来的cpp头文件和代理类相关的接口实现。
2.customHardwareClient1实现
using flagstaff::hardware::custom_hardware::V1_0::ICustomHardware;
int main(int /* argc */, char** /* argv */) {
android::sp<ICustomHardware> instance

本文介绍如何使用C++实现HIDL服务的客户端,包括Android.bp配置、客户端代码编写及调试方法。通过具体示例展示了如何调用HIDL提供的接口。
最低0.47元/天 解锁文章
480

被折叠的 条评论
为什么被折叠?



