自己最早的时候动了念头学习QNX是因为RIM的BlackBerry PlayBook的发布,还有传闻的BlackBerry SuperPhone的消息。关于BlackBerry SuperPhone的消息到现在仍然只是消息,暂且放下。PlayBook已经可以在市场上看到了,虽然中国区并没有正式销售PlayBook。PlayBook上的应用开发方式目前有两种,Adobe AIR和WebWorks。网上有消息说是PlayBook上的原生开发工具也很快要发布了,另外有消息说PlayBook会支持Android应用。这样的话PlayBook上的开发方式就变得比较丰富了,让我们来看看这些PlayBook应用开发方式和QNX应用开发之间的关系。
首先明确一点是这里讨论的QNX开发是着重指QNX应用开发。如之前的博文提到,QNX开发可以大致分为QNX平台开发和QNX应用开发两个方向。QNX平台开发着眼于QNX操作系统的剪裁或者扩展,而QNX应用开发主要是开发QNX平台上运行的应用程序。
PlayBook上的Adobe AIR开发方式使用Adobe的Flash Builder作为编程环境,外加PlayBook开发插件。PlayBook Adobe AIR应用开发使用的编程语言是ActionScript,通过FLEX架构提供的接口实现组件绘制,文件访问,音视频播放等功能。通过这种开发方式可以很简单地开发复杂的动画界面,适合类似于愤怒的小鸟,植物大战僵尸这样的游戏,也适合开发一些界面要求比较高的商业应用。不过,ActionScript的计算能力比较差,不适合需要大量复杂运算的应用。
PlayBook上的WebWorks开发是使用目前流行的WebWorks技术,将基于HTML,CSS,JavaScript技术的网页应用包装成可以在PlayBook本地运行的应用程序。WebWorks的好处是HTML编程人员可以很快上手,问题是底层接口较少,同样也是运算能力较弱。
Android就不用我介绍了,目前很火,好多开发人员在学习Android。如果PlayBook上可以支持Android应用,很多Android开发人员都可以直接将手上的应用摆到PlayBook上运行了。
以上三种开发方式,包括Adobe AIR, Web Works, Android, 都需要特定虚拟环境的支持,并不是直接运行在QNX平台之上。所以上面三种开发方式和QNX应用开发没有太大关系。如果你们公司采用上面三种开发方式中的一种,学习QNX应用开发对你的工作帮助不大。
剩下的可能和QNX应用开发有关的就是PlayBook上的原生开发工具了。根据网上传出来的消息,PlayBook原生开发工具使用c/C++作为开发语言,是从QNX Momentics开发环境发展出来的。从这两点来看,PlayBook原生开发方式与QNX应用开发方式应该非常接近,也就是说目前QNX应用开发中使用的底层接口,2D图形接口,3D图形接口在PlayBook原生开发环境中都极有可能可以直接使用。
基于这些猜测,如果你希望在PlayBook上开发一些需要复杂计算,需要调用底层接口的应用,如导航,3D游戏这样的。那PlayBook原生开发工具应该是个不错的选择。
在PlayBook原生开发工具发布之前,可以通过QNX Momentics先了解一些QNX系统上进行C/C++编程的 基本知识。