新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 多屏世界的框架

多屏世界的框架

作者:时间:2014-12-23来源:电子产品世界收藏

  跨平台应用框架

本文引用地址:http://www.eepw.com.cn/article/267201.htm

  使用跨平台应用框架确保了业务逻辑和核心功能在所有平台都可直接重复利用。例如,每个操作系统会以其自己的方式暴露联网服务,但 Qt 这样的框架通过通用代码接口来隐藏这些差异。对于联网和连接,Qt Socket 类或 Qt 蓝牙模块为支持的目标平台提供相同的 API,对程序员隐藏了平台的实现细节。Qt 有多种类型的模块:数据库访问,多媒体功能,以及通用连接设备功能,如相机和基于 GPS 的定位服务。

  通过 Qt,开发人员可以拥有几种方式创建响应式的用户界面,并使其可以轻松地连接到应用程序的核心业务逻辑。一个是采用面向widget的技术,这项技术最初是为桌面环境构想的。

  传统上,连接用户界面控件和业务逻辑的技术采用回调,就是 C 或 C++ 函数的指针。当用户界面事件发生时,回调使用指针来通知函数相应的变化。这种方法会出现两个问题。首先,程序员必须确保用正确的方法进行回调,这使维护工作复杂化,并且在用户界面改变时,还可能导致引入错误。其次,该技术要求界面和业务逻辑代码紧密连接,因为每次回调都需要确切地知道要访问哪个函数。

  Qt 避免了传统回调的问题,方法是采用一种称为信号与槽的灵活机制来管理代码对象之间的连接。事件产生信号,而注册并监听信号的函数能接收到这种特定的信号。这种连接是灵活的,因为它不要求两个部分彼此相互了解。因此,一个信号可以连接到多个槽,使得系统比回调更灵活。此外,系统是类型安全的,确保了函数不会收到损坏的数据。由于Qt是构建在 C++ 之上的, 而C++ 默认并不提供这种机制,这是通过特殊的 Qt 元对象来实现的(在编译时为 Qt 创建对象,以携带使用中的对象的动态元信息)。

  通过 Qt Quick 和 Web 技术进行多屏设计的灵活性

  Qt Widgets 提供更为传统的基于 C++ 面向对象的方法来创建用户界面,但不具备独立于平台的多屏应用所需的响应式用户界面设计的所有灵活性。作为 Qt 的另一种方法,Qt Quick 利用声明式编程风格,可以很快地开发出用户界面。

  Qt Quick 将命令式编程逻辑与声明表示层分开,利用和 Qt 的 C++ API 相同的信号与插槽机制,使这两个保持灵活的连接。Qt Quick 采用为 web 创造的概念和技术,但具有全部本地执行的优势。一个关键的组成部分就是声明方式设计语言 QML。

  QML 基于 JavaScript,目的是支持流畅的触摸式用户界面的设计和创建。其基于事件和属性的声明方法将布局和界面行为与核心概念逻辑完全分开。在一个设备上用手势可以启动的操作在另一设备上可以用滑块对象来完成。通过给对象绑定不同的属性,开发人员可以快速尝试不同的界面配置,以适应每个目标设备的独特显示环境。核心 C++ 业务逻辑保持相同,允许直接访问设备和外设并优化性能。针对不同客户端 UX 的变化用 QML 创建用户界面。

  由于其基于 JavaScript 的结构,QML 允许开发人员导入第三方的类库(可用于执行输入验证),提供额外的用户界面服务,如语音识别,或与 web 服务连接以集成RESTful的 API。有意义的情况是QML 也强大到足以处理业务逻辑。

  以其核心的形式,QML 提供简单的图形对象,通过它可以为每个平台构建用户界面控件。对于常用控件,Qt Quick Controls and Layouts 类库给开发人员提供了现成的对象,以适应通用平台的本机外观,也可以轻松改变他们来定制独特的外观。

  为另一种设备更新用户界面和交换一个 QML 布局文件一样简单,甚至改变同一个布局文件中的变量即可。例如,可以设置这些变量以确定在视图中显示多少元素,以及是否应该使用大小版本不同的图标和其它的对象。所有数值和比例都可与屏幕尺寸绑定。

  因为可以动态地,甚至在线加载 QML,所以可以在改进完成时远程更新用户界面,而不需要重新部署应用。由于 Qt 还支持直接集成 HTML5,开发人员可以构建混合界面,对动态内容采用 web 技术,扩展设备的功能,使设备可以在互联网上提供服务。

  Qt 不仅针对各种屏幕,它本身也可用作平台。许多客户已经部署了用 Qt 构建的软件开发工具包 (SDKs),使他们的设备对第三方程序员开放。这种方法能够围绕嵌入式设备建立整个软件生态系统,利用社区的技能来提供增值服务。

  结论

  凭借广泛的平台支持以及可以支持新增设备类型的架构,Qt 技术为开发人员提供工具以充分利用多屏市场带来的商机。通过把声明式用户界面设计与必要的业务逻辑相结合,的开发人员能够减少每个新平台需要执行的重复工作,同时为每个设备都带来新颖的用户界面功能。

物联网相关文章:物联网是什么


万能遥控器相关文章:万能遥控器代码



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭