问:GUI的蓝海在哪里?答:嵌入式!

来源:互联网 发布:网络语木的意思 编辑:程序博客网 时间:2024/04/29 21:19

  作为一款跨平台C++图形用户界面应用程序框架,QT提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。QT完全面向对象,模块化程度更高、易扩展,并且允许真正组件编程。

  笔者当记者多年,笔记本电脑里有两个程序驻留最久,一个是WPS Office,一个是Adobe PhotoShop。当从QT中国区销售负责人李力与QT高级销售工程师夏春萌口中获知,上述两个软件的GUI开发都是由QT实现的时,一种敬意油然而生。

  历史厚重

  21年前,QT从关注智能终端GUI开始,主要满足用户在Linux桌面环境下开发图形应用的需求。

  早期基于图形基础为用户提供编程接口的调用,那时要调用一个接口过程非常复杂,即使是一个非常简单的小界面,也要配置很多代码,而QT的解决方案能够让这个过程变得简单和高效,由此也获得了市场的认可。著名的可运行于Linux、Unix,以及FreeBSD等操作系统上的自由图形桌面环境KDE就是完全基于QT来编写的。




  在随后的发展过程中,QT开始寻求跨平台的最佳方法,尤其是包括对Linux的支持。

  2003年,QT开始进入嵌入式领域。因为QT发现PDA(Personal Digital Assistant 掌上电脑)在当时还缺乏图形界面解决方案。

  2006年到2007年,QT在智能手机领域取得了很多成就。值得一提的成功案例是其解决方案在摩托罗拉“明”系列手机上的应用。第一款“明”系列手机摩托罗拉A1200在2006年创下了中国市场单型号销量超过300万部的辉煌业绩,并且也成为全球首款销量超过500万部的手机。

  这时,恰逢诺基亚正在寻找智能终端GUI的方案,它看到了QT的成功,所以将QT收购后组织开发了MeeGo操作系统。随着智能手机市场的不断变化,诺基亚失败了。QT经过一系列的商业运作后,最终获得了独立运营的机会。

  跨平台本事优于Java

  一般情况下,Java程序编译之后的代码是不能被硬件系统直接运行的,而只是一种“中间码”——字节码。不同的平台会预先安装不同的Java虚拟机(JVM),由JVM来把字节码“翻译”成平台能够执行的代码。此时,开发者不必关心平台环境是UNIX、Linux还是Windows,因为每个平台都拥有自己的JVM,Java以此实现跨平台。

  而在嵌入式领域,情况就不是这么简单了。

  工作站、PC机的运算能力很强,可用资源很多,利用Java实现跨平台在效率上不是问题,但到了嵌入式设备上就不同了,嵌入式设备通常不具备与PC、工作站同等级别的处理能力,虚拟机的方案会遇到性能瓶颈。

  夏春萌告诉记者,C++与Java相比,第一个优势就是可以获得本地运行的最佳性能支持。第二个优势是QT非常适合面向嵌入式开发。这两方面优势让QT 能够跨越更多的平台。

  “这是因为Java是基于虚拟机,而QT 是一个C++程序开发框架,能基于本地性能实现一个应用程序的编译、链接和运行。另外,很多嵌入式设备对Java的支持能力和适配性远不如C++。”夏春萌如是说。

  “QT开发的程序在不同平台上运行时,都是在本地编译的。QT 会向应用层接口提供一致的API,也向不同平台提供不同的链接库。比如你要在Windows 平台编译程序,就需要面向Windows 链接库进行编译链接,与虚拟机的方式不同,QT编译后的代码都是可以直接运行的机器码。简单总结就是,虚拟机二进制编译一次,多平台运行。QT是一次编写、多次编译、多平台运行。显然后者更适合嵌入式开发环境。”李力补充说。

  奢俭由人

  现在,GUI行业正在上演着更大的变化:以触摸体验为主的界面开始普及到其他领域,比如汽车、智能家居等。而QT的特性能够更有效地实现和支撑上述体验,甚至优于安卓。

  并不是说安卓不优秀,在当下智能手机市场,安卓是必不可少的重要角色,但恰恰是因为安卓更专注构建智能手机垂直的、独特的体验标准,所以不能广泛地应用到工业领域。“工业安卓”不够成功,这是众人所见的。

  我们从安卓版本的更新信息中,可以非常频繁地看到与手机硬件标准相关的参数和术语。比如新的版本会支持多高的CPU主频、支持哪些WiFi和蓝牙的最新芯片,支持哪些最新的屏幕显示技术。但这些参数或者说配置对于嵌入式行业来说太过奢侈了,毕竟在一台洗衣机上安装蓝牙和WIFI在现在看来仍只是时髦的事,更不用说是否值得去评估配置2GB内存的实用性。在手机上蓝牙和WiFi是标配,但QT却没有那么多的“讲究”,在配置稍低的设备上,仍然可以实现较佳的流畅体验,如果用户不需要冗余的其他硬件功能支持,QT就不会强行硬塞给用户冗余的相关代码,所以嵌入式用户愿意使用QT是有道理的。

  当然,如果用户的设备具备足够的性能,QT也会切换到“奢侈模式”。

  “QT与嵌入式行业有着良好的契合度,同时QT本身的特性也能够满足来自不同行业的不同需求。如果物联网、军工、汽车行业提出高端显示的体验需求,QT也能够满足。”李力说。

  QT与硬件厂商也保持着紧密的合作。比如与英伟达的合作。特斯拉一款车型中的液晶显示系统采用了英伟达的解决方案,QT也参与了该解决方案的实现。客户希望利用芯片的性能来实现更多的功能,而功能使用界面的构建任务被交给QT完成。

  3月22日,QT最新版5.6版本在北京发布。新版本的发布,也意味着QT有望在中国市场迎来更多的发展机遇。

专注企业级报道,影响信息化决策。中国计算机报关注IT行业技术和应用,聚焦新市场、新模式、新应用。欢迎关注中国计算机报微信,或是作者微信号,让我们一起畅谈产业巨变!

原创粉丝点击