Qt 5的Android版预览

作者:Liang Qi | Mar 14, 2013 9:24:12 AM

原文链接:Eskil Abrahamsen Blomfeldt - Preview of Qt 5 for Android

迁移Qt 4到Android的第一个代码变更(commit)发生在2009年圣诞节,来自于BogDan Vatra的“Android mkspecs and semaphore”。

2010年1月22日,他在“A small step for Qt, a giant leap for android”(Qt的一小步,Android的大飞跃)中提交了一个可以工作的图形系统插件,并且可以在Android设备上真正运行Qt应用程序了。为此他上传了一个视频进行庆祝。

2011年2月20日,他在Necessitas发布了第一个可用的Qt 4的Android版。

在此后的三年多时间里,BogDan和其他朋友一起(还在继续)利用业余时间开发Necessitas项目,并且在去年的11月8日,BogDan同意把他的这一工作带到Qt 5中并且将这一移植提交到了Qt Project中

1月4日,他把Qt 5的Android版的第一个版本提交到一个WIP(正在工作中)分支,最近我们已经把它合并到“dev”分支,这也就是说它将会作为Qt 5.1的一部分发布。

对于这次预览发布,我们主要集中精力在开发人员体验方面,让开发人员可以很容易地在Android设备上运行和测试他们的应用程序。尽管您可以在应用程序商店中发布使用Qt 5.1版的应用程序,但是我们还是建议您等到Qt 5.2版的时候再这样做,因为我们希望投入更多精力来改善这一体验:对于如何部署应用程序提供更多选项,增加更多通用的优化,并且支持更多的Android API,同时允许您使用Java代码或者它们的C++ API映射来扩展您的应用程序,只要您喜欢。

演示程序来了!(译者注:某个地区的网友也许不能访问,原因众所周知。)

第一个是,Qt 5 Cinematic Experience演示程序在以下设备上运行(从左到右):Nexus 4、Asus Transformer Pad TF300T和Nexus 7。Qt 5 Cinematic Experience演示程序现在已经成为了我们在所有展会中的首选演示程序,因为它很好地演示了Qt Quick 2中很多新的图形能力,例如着色器效果(shader effects)、粒子效果(particle effects)和新的PathAnimation以及让60fps成为可能的底层硬件加速SceneGraph架构。

在Qt的核心部分之外,我们还支持了QtMultimedia中的QML媒体播放器API。这里是Andy用QML写的一个很不错的视频播放器,在视频之上使用了像素着色器效果,它运行在Asus Transformer TF300上:

让我们炫耀一下多点触摸支持,这里是一个运行在Nexus 4上的简单手指绘制演示程序。这里也显示了对于本地菜单的支持:

Qt 5中所支持的最低Android API等级是10,也就是Android 2.3.3。这也就是说Qt应用程序可以运行在像Huawei Y100这样价位的机器上:

这里是我们现在所完成的部分的一个概览:

  • 支持创建可以运行在Android设备上的Qt Widgets和Qt Quick应用程序
  • 支持Android API等级10(2.3.3版)及以上
  • QtMultimedia中的QML媒体播放器功能
  • QtSensors中的一套常用传感器
  • 当然还有Qt的一些跨平台特性(包括Qt Quick Controls和QtGraphicalEffects)
  • 在Qt Creator 2.7中开发和配置应用程序
  • 从Qt Creator中直接向设备部署一个测试构建

另外,我们将会在较短时间内完成使用Ministro发布工具发布Qt库,这将会允许您在一个设备上让多个应用程序共享一套Qt库,并且这也将是部署使用Qt 5.1的应用程序的主要方式。所有完成的工作这里都已经叙述完毕,大家可以查看我们的wiki来获得更多具体信息。如果哪里错了,请告知我们。您可以在Freenode IRC服务器的#necessitas频道找到我们。

您如果问,下一步呢?您可以帮助我们来做决定。您可以报告您发现的Bug以及您所期望的特性,也可以贡献您的代码。我们将继续完成对Qt 5的Android版的改进,与此同时我们也很期望您的反馈。在这个wiki中,我们还列举了我们验证过可以运行Qt应用程序的设备。如果您在测试之后,为这一列表增加了新的设备(当然还有您所发现的任何问题),我们将非常感激

最后:在此感谢BogDan Vatra、Ray Donnelly以及其他在过去几年中为Necessitas 项目作出贡献的朋友们,以及过去几个月中为Qt 5的Android版作出贡献的朋友们。当然也感谢以后将会为这个项目做贡献的每一个人。