“Android VS Qt”:移动开发者眼里谁更强?

7 篇文章 0 订阅

    虽然Android和Qt这两大开发平台的架构大不一样,但是它们有着一个共同的目的:为开发移动应用程序提供一种高效的框架。这边Android作为一种面向智能手机的丰富应用开发框架,已立稳了脚跟;那边Qt以及先后问世的Qt Mobility和Qt Quick却也是这个领域强有力的竞争者。

                                    Android VS Qt:移动开发者眼里谁更强?

本文将主要从开发者的角度,对Android和Qt这两大平台作一个全方位的比较,希望对移动开发者有所帮助。

以下为全部译文:

Android PK Qt:平台概述

大多数Android应用程序是用Java开发的,它们在Dalvik虚拟机里面运行。不过,Android仅仅借鉴了Java的语言语法,并不提供一套标准的应用编程接口(API),比如Java SE和Java ME里面的标准API。像触摸屏和存储这些设备服务通过谷歌服务API来进行访问。

请参阅51CTO专题:Android开发应用详解

虽然Android操作系统基于Linux内核,但它本身不是一款Linux操作系统。它既没有原生的窗口系统,也不支持诸如GNU C之类的标准Linux库。要想运行用C或其他语言编写的应用程序,必须编译成原生代码,这可以通过Android原生开发工具包(Android NDK)来完成(欲知详情,请参阅51CTO译文)。

Qt则是一款跨平台框架,面向Symbian、Maemo和MeeGo。虽然Qt为Python、Ruby和Perl等几种编程语言提供了绑定机制,但是应用程序主要是用C++来编写的,并由额外的扩展件来加以改进。这些扩展件由预处理程序来实现,预处理程序在编译之前生成标准的C++代码。众所周知,Qt框架易于使用,而且支持桌面端出色的图形用户界面(GUI)窗口组件。最近对移动平台的改进、尤其是Qt Mobility和Qt Quick着实吸引人。凭借成熟强大的Qt Creator集成开发环境(IDE),Qt框架在移动应用开发领域找到了一席之地。

请参阅51CTO专题:Qt编程基础入门  


Android VS Qt:移动开发者眼里谁更强?
Android(设备数量为王,Android将独步天下)
Qt(跨平台框架,应用用C++开发,Geek的最爱)
 

Android PK Qt:应用程序组件和API

Android架构的一个主要概念是组件复用(component reuse)。这样便于发布活动、服务和数据,并与其他应用程序共享活动、服务和数据。Android有四个基本的组件,每个组件有着特定的目的。基于Android开发的软件多少会用到下列应用服务。

  • Activity Manager:该服务控制着任何活动的生命周期,包括活动堆栈的管理。活动为用户的交互提供了一种接口。这是Android应用程序的基本构建模块,负责创建窗口。所有活动都是android.app.Activity的子类,其中用户界面的元素通过setContentView(View)来设定。视图用于用户界面的构建。 
  • Services:Service组件在后台运行,基本上是为了执行冗长的操作或远程进程。它们没有用户界面,作为android.app.Service的子类来实现。(51CTO视频专题:Android组件-Service) 
  • Content Providers:这种组件充当共享数据的存储库,无论共享数据是文件系统、SQLite数据库还是其他持久性存储位置。Content providers作为android.content.ContentProvider的子类来实现。 
  • Broadcast Receivers:电池电量很少、屏幕被关闭时,该组件充当响应系统广播通知的角色。它作为android.content.BroadcastReceiver的子类来实现。 

Android应用程序始于Activity实例。这个代码片段演示了基本理念。

 
 
  1. package org.mypackage.mynamespace; 
  2. import android.app.Activity; 
  3. import android.os.Bundle; 
  4. import android.widget.TextView; 
  5. public class Androidproj2Activity extends Activity {   
  6.      @Override  
  7.    public void onCreate(Bundle savedInstanceState) {  
  8.        super.onCreate(savedInstanceState); 
  9.        TextView textView=new TextView(this); 
  10.        textView.setText("Hello World"); 
  11.        setContentView(textView);     

Qt用不同的方式来处理Android针对活动所作的处理。它使用了几个组件,比如域类或状态机来跟踪组件状态。如果使用之前版本的Qt,在创建用户界面时,你就得使用窗口组件,或者在QGraphicsView上构建屏幕。结果是用户体验很差劲,在触摸屏手机上更是差劲。但是随着Qt Mobility和Qt Quick的发布,用Qt移动平台来开发应用程序变得更切实际了。

Qt Mobillity API框架提供了一系列广泛的功能和技术,包括如下:

  • Bearer Management:该API控制着系统的连接状态、管理可用网络连接以及使用最佳的可用连接。 
  • Contacts:该API让客户机能够请求来自本地和远地的联系人数据。 
  • Location:该API用于接收来自任意数据源的位置数据。 
  • Messaging:该API用于发送和接收多种类型的消息,如短信和电子邮件。 
  • Multimedia:该API有助于播放和录制媒体,并管理媒体内容的组合。 
  • Publish和Subscribe:该API用于共享应用程序之间的上下文信息和读取项目值、浏览项目值以及订阅变更通知。 
  • Service Framework:该API用于发现任意服务,并为任意服务创建实例。 
  • System Info:该API用于发现与系统有关的信息和能力。 

Qt Quick为使用QML语言,以声明式方式建立对象树提供了一种机制。QtDeclarative C++模块将QML与C++对象集成起来。开发者可以构建对智能手机及其他设备来说很常见的流畅的用户界面。查看该列表,即可看到Qt Quick的所有组件。

这个Qt Quick代码片段让你可以大致了解脚本是什么样子:

 
 
  1. import Qt 4.7 
  2. Rectangle { 
  3. Width : 270 
  4. Height : 170 
  5. Text { 
  6.      anchors . horizontalCentre : parent . horizontalCenter 
  7.      anchors . verticalCenter : parent . verticalCenter 
  8.      text : "Hello World" 
  9.      } 

Qt移动平台的基本起始点是main方法。下面是一个基于窗口组件的移动应用程序的示例起始点:

 
 
  1. #include "mainwindow.h" 
  2. #include <QtGui/QApplication> 
  3. int main(int argc, char *argv[]) 
  4.     QApplication app(argc, argv); 
  5.     MainWindow mainWindow; 
  6.     mainWindow.setOrientation(MainWindow::ScreenOrientationAuto); 
  7.     mainWindow.showExpanded(); 
  8.     return app.exec(); 

Android VS Qt:移动开发者眼里谁更强?
Android(设备数量为王,Android将独步天下)
Qt(跨平台框架,应用用C++开发,Geek的最爱)
 

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设备上,不过要获得技术上的成熟性可能需要借以一段时日。

注:

        转:http://mobile.51cto.com/android-319034_all.htm


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt 5.15是一个流行的跨平台C++应用程序开发框架,而Android是一种广泛使用的移动操作系统。Qt 5.15可以用于开发Android应用程序。 Qt 5.15提供了一整套工具和类库,可以简化开发过程,并提供用于构建用户界面、处理输入事件、访问设备硬件等功能。同时,Qt还提供了丰富的跨平台支持,开发者可以在不同的操作系统上重用大部分代码,从而减少开发和维护成本。 在Qt 5.15中,Android是一个已经支持的目标平台。开发者可以使用Qt Creator集成开发环境,通过简单的几步配置,就可以开始开发Android应用程序。Qt提供了QAndroidJniObject类,用于与Java代码进行交互,以便访问Android特定的功能和服务。此外,Qt还提供了Qt Android Extras模块,用于访问多的Android API,如传感器、位置服务、通知等。 Qt 5.15对于Android应用程序开发提供了很多便利的功能和工具。例如,Qt提供了Qt Quick Controls 2模块,用于快速构建现代化的用户界面。同时,Qt还提供了Qt WebView模块,可以在应用程序中嵌入Web浏览器功能,以便显示Web内容。 总之,Qt 5.15是一个大的开发框架,可以帮助开发者轻松地构建跨平台的Android应用程序。无论是开发嵌入式设备应用程序、移动应用程序还是桌面应用程序,Qt都是一个值得考虑的选择。 ### 回答2: Qt 5.15是一款跨平台的应用程序开发框架,可以用于开发安卓应用。Qt提供了丰富的API和工具,使开发者可以方便地设计、开发和部署应用程序。 Qt 5.15对于安卓开发有一些特性和改进。首先,Qt 5.15增加了对Android 10的支持,可以在Android 项目中使用最新的安卓版本和功能。其次,Qt 5.15引入了一种新的构建系统qmake,可以好地支持安卓项目的构建。此外,Qt 5.15还改进了OpenGL ES的支持,在安卓设备上高效地渲染图形。 Qt提供了一套完整的工具和框架,用于在Qt Creator中设计和开发安卓应用程序。Qt Creator是一款大的集成开发环境,提供了代码编辑器、调试器、项目管理等功能。开发者可以使用Qt Creator的图形界面设计工具,在安卓设备上创建用户界面,并使用Qt提供的信号槽机制实现应用程序的逻辑。 使用Qt 5.15开发安卓应用程序还有一些优势。首先,Qt使用C++语言进行开发,具有良好的性能和可扩展性。这使得开发者可以创建高效、稳定的安卓应用。其次,Qt具有丰富的库和组件,开发者可以轻松地添加各种功能和特性到应用程序中。最后,Qt的跨平台特性允许开发者在多个平台之间共享代码和逻辑,方便快捷地实现应用程序的多平台支持。 总而言之,Qt 5.15是一款适用于安卓开发的大工具,提供了一套完整的功能和工具,使开发者能够轻松地设计、开发和部署安卓应用程序。它具有良好的性能和可扩展性,可以满足各种安卓应用的开发需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值