AllJoyn控制面板服务框架为应用提供了一种简单的方式来渲染一组UI组件集,从而与远程设备进行交互。框架由一系列标准接口所组成,当具体的服务运行在某个特定的目标路径上时,框架允许远端设备对组件中的UI进行动态渲染。控制面板服务抽象化了AllJoyn控制面板接口的细节,从而使其能够调用更高级别的API以及代码生成器,从而创建组件元素。一个控制面板无法决定UI的具体形状,它只是提供隐式的信息来标注元素的用途,屏幕上所显示的区域以及与其他应用的同步操作。
概念与术语
控制器与控制元件
在控制面板框架中,由两个角色所构成:
- 控制器,该应用用于渲染控制面板
- 控制元件,该应用用于广播控制面板
控制面板
它是为用户提供设备交互的组件集合。控制面板通过控制元件进行定义与申明,并通过控制器进行发现与显示。一个设备可以有多个控制面板,并且能在多个语言基础上进行定义
控制面板服务代码生成器
它是一种辅助代码生成的工具,可以帮助展现一个控制面板。该工具使用一个XML文件来定义控制面板组件,并生成相应的代码来实现具体的控制面板。
注:XML文件在控制面板服务中不能被用于终端组件的显示,也无法通过控制器的连线进行传输。
组件模块类型
一个控制面板可以使用XML进行表示,并基于代码生成器构建,最后被连接到开发者网络中。控制面板有如下的UI元素所构成:
- 容器:容器UI元素允许将组件进行打包,它必须包含最少一个子元素。
- 标签:它是作为一个用于阅读的文本标签。
- 动作:它是基于按钮显示的UI元素,既可以在控制元件上执行代码,也可以在执行之后打开另一个组件对话作为确认流程的一部分。
- 对话框:它是UI对话框元素,具背对话框信息功能,并且可以放置三个选择按钮。
- 属性:属性UI元素用于显示一个值,并且可以对其进行适当的修改。该组件通过隐式属性进行定义,用于表示滑动条、选项按钮等。
UI适配层
为了与一个控制面板进行交互以及辅助其使用,框架中提供了一个帮助库。软件层的设计是为了能够简化组件元素的发现流程,该组件使用AllJoyn回溯,在控制面板接口的对象路径开始进行寻找。接下来该软件层解析路径下的每个子节点来决定某个子节点是否需要创建本地平台UI元素,从而与其他已发现的组件进行交互。本地平台元素默认情况下是给定平台的UI。在安卓上一个按钮与安卓默认按钮相同,在IOS上设备将具有本地的外表,并且与其他OS没有什么具体差别。开发者可以选择重载平台组件的生成,从而制作一个自定义的界面。