X01 的 HU 有两颗 SoC:8155F 和 8155R。
某些应用需要在 8155F 上调用 8155R 的系统服务。例如,启动 8155R 的某个 Activity,查询某个应用是否在 8155R 上安装了等。因此,我们设计了一个远程系统服务 RemoteManagerService。
远程系统服务的实现方式是,会把方法签名按照一定的规则序列化后,通过板间通信方式传递给另一个 SoC,在另一个 SoC 反序列化后调用对应的方法。
远程系统服务的定义是提供另一个 SoC 中 SystemService 的 API 调用服务,但不提供所有 API 的调用。有些是因为对应 API 在跨板间调用没有意义(例如 WindowManager 的 addView()
),有些是因为我们的技术及时间原因,暂时不会提供。
计划提供的 API:
startActivity()
。getPackageInfo()
。注意,因为板间通信需要的时间不确定,查询类的返回值只能以异步方式回调返回。前期无计划提供的 API:
requestAudioFocus()
方法。notify()
方法。软件架构图如下图所示。