android - AOSP:与其他服务通信的自定义系统服务
问题描述
我正在调查 AOSP 的自定义系统服务,以通过网络为系统提供基本的远程控制(切换用户和启动应用程序)。它应该基于 Android 9。为了将来的可移植性,如果可能的话,我更愿意使用相当高级的 Java API。
在系统级别上,我对 Android 的了解不多。看来,至少部分功能可以通过与活动管理器进行通信来覆盖,这可能是一个很好的起点。
我的一些问题:
是否打算让不同的系统服务相互通信?
如果这是可能的,一个系统服务如何使用其他服务的功能?尽管所有服务都在同一个进程中,但这是否仍应通过 HIDL/binder?
是否有现有的系统服务可以做类似的事情作为参考?
解决方案
是否打算让不同的系统服务相互通信?
是的,这是有意的。
如果这是可能的,一个系统服务如何使用其他服务的功能?尽管所有服务都在同一个进程中,但这是否仍应通过 HIDL/binder?
HIDL
over/dev/hwbinder
用于 HAL 到系统服务的通信。系统服务之间的通信仍然可以通过AIDL
over来完成/dev/binder
。我认为您通常会使用一个服务Manager
类,它无论如何都会抽象 Binder 的使用。这可能不是一个很好的简约示例,但您可以看看 Car 服务如何使用CarAudioService.javaTelephonyManager
中的。
是否有现有的系统服务可以做类似的事情作为参考?
您可以查看packages/services中的附加服务。
推荐阅读
- php - 如何将 SQL 数据增益从 php 脚本发送到 python 脚本?
- c# - 使用 docker 在非云环境中部署 dotnet core 应用程序
- php - Nginx + php-fpm 高cpu使用率
- testing - 使用 TypeORM 和 Nestjs 进行测试的过程,以及使用 mocks 的玩笑?
- javascript - ChartJS Tooltip 位置堆积条形图
- unreal-engine4 - Unreal GAS:当 GameplayAbility 被视为已执行时
- javascript - 从 JS 更改输出图像大小
- php - Json跳过数组只插入需要的东西
- java - 双链接节点矩阵
- python - 为什么我无法使用 Keras 预测线性方程 (Y=2*x)?