问题标签 [hidl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 我是否需要将以下情况视为关键?
我有 Android java 服务,它将HAL
使用HIDL
调用与服务交互。
我有以下情况,我不确定将其视为关键。
的定义SendFunction
如下。
SendFunction
正在从两个不同的线程调用。使用server
的实例在哪里。CPP Server
HIDL
我的问题。
我是否需要将上述call
视为关键并同步它?asserver
对象将从两个不同的线程访问。
android - Android HIDL 中方法 registerAsService() 的实现在哪里
registerAsService()
Android HIDL中方法的实现在哪里。
要注册一个服务,我们应该调用这个方法。但是这个方法的实现在哪里呢?
android - 什么是 Android 中的“HAL 远程处理”?
在hidl-cpp 的Android HIDL 描述中,提到了称为“HAL 远程处理”的内容。它是现有 Android 的一部分吗?叫法不一样?
android - 蓝牙模块的 HIDL 是如何实现的?
我正在浏览AOSP
蓝牙代码以了解更多关于HIDL
.
据我了解,HIDL
提供 和 之间的System services
接口HAL layer
。
但是根据官方的android doc here ,这似乎是蓝牙固件实现HIDL
之间的接口。bluetooth stack(/system/bt)
HIDL
蓝牙进程服务和蓝牙堆栈之间不应该存在吗?我在这里错过了什么吗?
android - 定义和实现 HIDL 接口
出于测试目的,我想创建一个 HIDL 接口 + 实现并将组合作为系统服务运行。为此,我定义了IGuotie.hal
接口:
以下文件用于实现接口
Guotie.h
国铁.cpp
服务.cpp
android.hardware.guotie@2.0-service.rc
安卓.bp
构建导致以下错误消息
一些文章建议添加(在我的情况下)android.hardware.guotie@2.0.so
到build/make/target/product/vndk/28.txt
. 但是,vndk 文件夹不存在。相反,我将它添加到build/make/target/product/gsi/29.txt
,current.txt
但构建仍然失败(我按字母顺序添加它)。有什么建议么?
android-source - 在 fork 中使用 HwBinder
我正在实现一个 HAL 组件,我正在为其创建一个测试。该测试实际上是关于在不同进程中创建 HAL 回调的模拟,并将其自身注册到 HAL。换句话说,我是在模拟 HAL 的客户端,然后模拟客户端崩溃导致事务失败,以测试 HAL 处理错误的能力。问题是,尝试在 fork 中使用 Binder IPC 会导致段错误。阅读这个问题并从文档中我了解到 HwBinder 线程通过链接到 libbiner 自动启动。
鉴于fork()
不复制父进程的正在运行的线程,这意味着分叉的进程将找不到助手 HwBinder 线程,或者它确实假设它存在并尝试使用它?
这会产生一系列错误,最终会产生 SEGV_MAPERR。
我的问题是,无论如何都可以在我的分叉孩子中重新启动 HwBinder 线程而不必使用exec
?
这是我的代码:
这会导致此错误:
android - HIDL 接口继承
我正在尝试扩展 HAL 功能的实现。似乎一旦发布了 HAL 接口,我们就无法在该版本中进行任何更改。所以我尝试通过参考这里https://source.android.com/devices/architecture/hidl-java#extensions来进行接口继承。
IA.HAL 文件
ClientService.Java 文件
对于扩展,我创建了一个新的 HAL 文件,其中涉及接口继承,如下所示。
IB.HAL 文件
ClientService.Java 文件
知道我做错了什么。提前致谢。
hal - HIDL:VINTF 有什么用?
我正在尝试构建 HIDL 结构,但我坚持使用 VINTF 的东西。
https://source.android.com/devices/architecture/vintf/objects
是对 VINTF 的引用,我无法理解 vintf_fragments 的真正用途。
请问谁能帮我理解 vintf_fragments 的作用,以及使用它有什么好处?
android - 在 Android 上添加新的光传感器和新的加速度计
我在一个项目中,将开发一张运行 Android 10 的卡。
它将有一个环境光/接近传感器 (SFH207779) 和一个加速度计传感器 (LIS2DH12TR),两者都通过 I2C 协议连接。
我有为使用的 SOM(模块上系统)定制的 Android 10 源代码。
我希望传感器可以由用 Java 编写的用户应用程序访问,通常由 SensorManager 和 Sensor 类使用。
在Android IIO 传感器上,您可以很好地回答以下步骤:
- 查找/编写具有合适设备模型(输入、iio、hwmon 等)的驱动程序
- 使板子识别设备(通过向设备树或板子配置文件中添加信息)
- 查找/编写合适的 Sensor-HAL 或将传感器添加到现有 HAL。
但它没有指定,甚至没有示例,必须在 Android 源代码中创建/更改的文件。
android - Android原生框架中使用linkToDeath的最佳实践
我有一个可以有多个客户端的 hidl,所以我想保留一个 DeathHandler 以防任何客户端死亡,这样我就可以进行清理了。
};
关于我的 hidl:
- 它可以有多个客户端。
- 1 个客户端内可以有多个会话。
它有 1 个打开会话的 API。
这里的问题是我最终为每个打开的调用注册了 linkToDeath,所以最终在 1 个 pid 上注册了多个死亡处理程序,所以当客户端被杀死时,我会收到多个通知(100+)。为了处理这个问题,我需要同步我的 serviceDied 方法。
现在的问题是:
- 使用 linkToDeath 的最佳实践是什么?
- 我是否应该只为客户端注册一次这个 linkToDeath,因为它只特定于 pid。
- 如何检查由多次注册和导致多次回调引起的 binder 框架的开销,如果我想在将其限制为每个 pid 一次后检查性能改进。