[[58181]]【2012年2月22日 外电头条】本文将主要从开发者的角度,对Android和QT这两大平台作一个全方位的比较,希望对移动开发者有所帮助。
创新互联建站主营张家界网站建设的网络公司,主营网站建设方案,成都App定制开发,张家界h5重庆小程序开发搭建,张家界网站营销推广欢迎张家界等地区企业咨询
以下为全部译文:
Android PK Qt:平台概述
大多数Android应用程序是用Java开发的,它们在Dalvik虚拟机里面运行。不过,Android仅仅借鉴了Java的语言语法,并不提供一套标准的应用编程接口(API),比如Java SE和Java ME里面的标准API。像触摸屏和存储这些设备服务通过谷歌服务API来进行访问。
请参阅专题:Android开发应用详解
虽然Android操作系统基于Linux内核,但它本身不是一款Linux操作系统。它既没有原生的窗口系统,也不支持诸如GNU C之类的标准Linux库。要想运行用C或其他语言编写的应用程序,必须编译成原生代码,这可以通过Android原生开发工具包(Android NDK)来完成(欲知详情,请参阅译文)。
Qt则是一款跨平台框架,面向Symbian、Maemo和MeeGo。虽然Qt为Python、Ruby和Perl等几种编程语言提供了绑定机制,但是应用程序主要是用C++来编写的,并由额外的扩展件来加以改进。这些扩展件由预处理程序来实现,预处理程序在编译之前生成标准的C++代码。众所周知,Qt框架易于使用,而且支持桌面端出色的图形用户界面(GUI)窗口组件。最近对移动平台的改进、尤其是Qt Mobility和Qt Quick着实吸引人。凭借成熟强大的Qt Creator集成开发环境(IDE),Qt框架在移动应用开发领域找到了一席之地。
请参阅专题:Qt编程基础入门
Android VS Qt:移动开发者眼里谁更强? |
Android(设备数量为王,Android将独步天下) |
Qt(跨平台框架,应用用C++开发,Geek的***) |
#p#
Android PK Qt:应用程序组件和API
Android架构的一个主要概念是组件复用(component reuse)。这样便于发布活动、服务和数据,并与其他应用程序共享活动、服务和数据。Android有四个基本的组件,每个组件有着特定的目的。基于Android开发的软件多少会用到下列应用服务。
Android应用程序始于Activity实例。这个代码片段演示了基本理念。
- package org.mypackage.mynamespace;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class Androidproj2Activity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TextView textView=new TextView(this);
- textView.setText("Hello World");
- setContentView(textView);
- }
- }
Qt用不同的方式来处理Android针对活动所作的处理。它使用了几个组件,比如域类或状态机来跟踪组件状态。如果使用之前版本的Qt,在创建用户界面时,你就得使用窗口组件,或者在QGraphicsView上构建屏幕。结果是用户体验很差劲,在触摸屏手机上更是差劲。但是随着Qt Mobility和Qt Quick的发布,用Qt移动平台来开发应用程序变得更切实际了。
Qt Mobillity API框架提供了一系列广泛的功能和技术,包括如下:
Qt Quick为使用QML语言,以声明式方式建立对象树提供了一种机制。QtDeclarative C++模块将QML与C++对象集成起来。开发者可以构建对智能手机及其他设备来说很常见的流畅的用户界面。查看该列表,即可看到Qt Quick的所有组件。
这个Qt Quick代码片段让你可以大致了解脚本是什么样子:
- import Qt 4.7
- Rectangle {
- Width : 270
- Height : 170
- Text {
- anchors . horizontalCentre : parent . horizontalCenter
- anchors . verticalCenter : parent . verticalCenter
- text : "Hello World"
- }
- }
Qt移动平台的基本起始点是main方法。下面是一个基于窗口组件的移动应用程序的示例起始点:
- #include "mainwindow.h"
- #include
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- MainWindow mainWindow;
- mainWindow.setOrientation(MainWindow::ScreenOrientationAuto);
- mainWindow.showExpanded();
- return app.exec();
- }
Android VS Qt:移动开发者眼里谁更强? |
Android(设备数量为王,Android将独步天下) |
Qt(跨平台框架,应用用C++开发,Geek的***) |
#p#
Android PK Qt:平台的优缺点
由于Android是一款手机开发平台,其触摸屏和摄像头等API访问系统资源再自然不过了。而Qt则是一款跨平台的应用框架,它***面向桌面端,后来借助Qt Mobility包及其API扩展到了移动平台。因而,Qt访问系统资源的机制大不一样。表1显示了Android的一些主要功能和Qt的对应功能。
表1
Android |
Qt移动平台 |
借助ContactsContract和CalendarContract等API,Android能够管理个人信息(联系人和日历)。 |
Qt Mobility为个人信息管理提供了一套API,比如Contacts API、Organizer API和Versit API。 |
Android让用户可以访问用于监控网络类型和连接速度等基本电话信息的Telephony API,以及用于处理电话号码串的实用工具。 |
Qt Mobility通过Bearer Management API,提供了与AndroidTelephony API对应的API。 |
Android中的消息传送通过Message API来访问。 |
Qt Mobility提供了自己的Messaging API。 |
用于视频编码的图像捕获设置、播放/停止预览、拍取照片和检索帧都可以通过CameraAPI来访问。 |
Qt Mobility提供了Multimedia API,以处理摄像头硬件及其他添加的功能。 |
在Android中,开发者可以通过XML描述文件或IDE中的布局设计器(如Eclipse)装入应用程序的用户界面。 |
Qt for Symbian提供了设计应用程序的两种方法:Qt Creator中的Form Designer和Qt Quick的QML,用于布局设计。 |
Android基于Java和Dalvik虚拟机,它们离不开基于Linux的Android操作系统。 |
Qt主要基于C++,是一款跨平台的应用框架,离不开Symbian、Maemo和Meego等操作系统。 |
Android应用程序局限于Android平台,而该平台主要是为智能手机、平板电脑其他手持设备而开发的。 |
Qt是一种跨平台框架,主要为桌面开发而设计,后来移植到了移动平台。一个合理设计的Qt应用程序可以在Symbian、Maemo和Meego移动设备上执行,也可以在Windows、Linux和Mac OS桌面平台上执行,不需要任何大幅改动。 |
结束语
对每一个开发项目来说,归根结底就看产品的高效性和适销性。由于各大厂商开始制造基于Android的智能手机、平板电脑、电子书阅读器及其他手持设备,Android及其操作系统无疑证实了其适销性。实际上,似乎是个劣势的因素(Android应用程序局限于Android平台)恰恰成了Android平台的一大优势。
Android的开放理念也确保了只要编写扩展件或替换件,就能消除用户界面或原生应用程序设计方面的任何缺陷。Android为你提供的工具可以开发出外观、感觉和功能与你设想的一模一样的手机界面和应用程序。不过,Android开发者的工作效率因速度缓慢的仿真器受到了阻碍。
另一方面,Qt通过Qt Creator IDE,提供了一种非常高效的开发环境。由于Qt 不是为某一款操作系统而设计,Qt应用程序在智能手机领域的适销性高度依赖Symbian、MeeGo和Maemo等操作系统。然而,Qt应用程序可以移植到Android设备上,不过要获得技术上的成熟性可能需要借以一段时日。
Android VS Qt:移动开发者眼里谁更强? |
Android(设备数量为王,Android将独步天下) |
Qt(跨平台框架,应用用C++开发,Geek的***) |
分享标题:“AndroidVSQt”:移动开发者眼里谁更强?
路径分享:http://www.36103.cn/qtweb/news13/39263.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联