Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
我认为用Qt开发安卓应用,暂时还是不够成熟的,原因如下:
1. 跨平台只在pc上有优势,在移动设备上毫无优势。移动设备整体的应用风格需要保持一致,你外部加进来一个ui,倒是和平台保持一致了。你如何保持和原生ui的这种使用一致性。
2.在开发易用度上,Android(java) api 已经做得很好,包括事件,广播,服务等Qt里有的基本上Android api里已经做得很好,从Qt开发者转为java开发者也很容易。 而如果要写QfA应用,开发者不仅要懂Qt,同样也避免不了要写java代码。
3. 如果要写和其它app通信的时候,QfA的灾难性就来了。如果是上层的几乎等完整的搞一遍Android api吧。 另外对于和设备相关的一些调用(GPS/Telephony)等,QfA的工作量一下子就上来了,这时候你还指望qml么?
4.性能呢? QfA对于图形渲染区的请求还得在java的接口请求,是不是又要绕了个大弯。
5. 软件体积。 终端用户要用Qt app,势必要先装一个Qt lib, 或者在你的app 中一起静态发布。
在有很多优秀的QfA app出现之前,大家不带乐意只为一个好的app 去装一个大的软件,而会愿意选择一个原生软件替代。
6.官方支持。目前Qt开发团队多少人?但目前他们要支持多少平台。 如果没有一个比较大的商业级别软件在用QfA,官方能做的就是让这个软件在Android平台能编译,运行,解决一些明显的bug。
7.Qt的移动开发还是不完善,你在开发过程中就会发现,甚至网上找不到理想资料。所以建议手机端你还是使用java(安卓)或者oc(ios)开发,当然你也可以选择swift开发ios,只是服务器多线程的资料关于NSthread与GCD的资料还是少的可怜!