日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
“AndroidVSQt”:移動開發(fā)者眼里誰更強(qiáng)?

[[58181]]【2012年2月22日 外電頭條】本文將主要從開發(fā)者的角度,對Android和QT這兩大平臺作一個全方位的比較,希望對移動開發(fā)者有所幫助。

創(chuàng)新互聯(lián)建站主營張家界網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),張家界h5重慶小程序開發(fā)搭建,張家界網(wǎng)站營銷推廣歡迎張家界等地區(qū)企業(yè)咨詢

以下為全部譯文:

Android PK Qt:平臺概述

大多數(shù)Android應(yīng)用程序是用Java開發(fā)的,它們在Dalvik虛擬機(jī)里面運(yùn)行。不過,Android僅僅借鑒了Java的語言語法,并不提供一套標(biāo)準(zhǔn)的應(yīng)用編程接口(API),比如Java SE和Java ME里面的標(biāo)準(zhǔn)API。像觸摸屏和存儲這些設(shè)備服務(wù)通過谷歌服務(wù)API來進(jìn)行訪問。

請參閱專題:Android開發(fā)應(yīng)用詳解

雖然Android操作系統(tǒng)基于Linux內(nèi)核,但它本身不是一款Linux操作系統(tǒng)。它既沒有原生的窗口系統(tǒng),也不支持諸如GNU C之類的標(biāo)準(zhǔn)Linux庫。要想運(yùn)行用C或其他語言編寫的應(yīng)用程序,必須編譯成原生代碼,這可以通過Android原生開發(fā)工具包(Android NDK)來完成(欲知詳情,請參閱譯文)。

Qt則是一款跨平臺框架,面向Symbian、Maemo和MeeGo。雖然Qt為Python、Ruby和Perl等幾種編程語言提供了綁定機(jī)制,但是應(yīng)用程序主要是用C++來編寫的,并由額外的擴(kuò)展件來加以改進(jìn)。這些擴(kuò)展件由預(yù)處理程序來實(shí)現(xiàn),預(yù)處理程序在編譯之前生成標(biāo)準(zhǔn)的C++代碼。眾所周知,Qt框架易于使用,而且支持桌面端出色的圖形用戶界面(GUI)窗口組件。最近對移動平臺的改進(jìn)、尤其是Qt Mobility和Qt Quick著實(shí)吸引人。憑借成熟強(qiáng)大的Qt Creator集成開發(fā)環(huán)境(IDE),Qt框架在移動應(yīng)用開發(fā)領(lǐng)域找到了一席之地。

請參閱專題:Qt編程基礎(chǔ)入門


Android VS Qt:移動開發(fā)者眼里誰更強(qiáng)?
Android(設(shè)備數(shù)量為王,Android將獨(dú)步天下)
Qt(跨平臺框架,應(yīng)用用C++開發(fā),Geek的***)
 

#p#

Android PK Qt:應(yīng)用程序組件和API

Android架構(gòu)的一個主要概念是組件復(fù)用(component reuse)。這樣便于發(fā)布活動、服務(wù)和數(shù)據(jù),并與其他應(yīng)用程序共享活動、服務(wù)和數(shù)據(jù)。Android有四個基本的組件,每個組件有著特定的目的?;贏ndroid開發(fā)的軟件多少會用到下列應(yīng)用服務(wù)。

  • Activity Manager:該服務(wù)控制著任何活動的生命周期,包括活動堆棧的管理。活動為用戶的交互提供了一種接口。這是Android應(yīng)用程序的基本構(gòu)建模塊,負(fù)責(zé)創(chuàng)建窗口。所有活動都是android.app.Activity的子類,其中用戶界面的元素通過setContentView(View)來設(shè)定。視圖用于用戶界面的構(gòu)建。
  • Services:Service組件在后臺運(yùn)行,基本上是為了執(zhí)行冗長的操作或遠(yuǎn)程進(jìn)程。它們沒有用戶界面,作為android.app.Service的子類來實(shí)現(xiàn)。(視頻專題:Android組件-Service)
  • Content Providers:這種組件充當(dāng)共享數(shù)據(jù)的存儲庫,無論共享數(shù)據(jù)是文件系統(tǒng)、SQLite數(shù)據(jù)庫還是其他持久性存儲位置。Content providers作為android.content.ContentProvider的子類來實(shí)現(xiàn)。
  • Broadcast Receivers:電池電量很少、屏幕被關(guān)閉時,該組件充當(dāng)響應(yīng)系統(tǒng)廣播通知的角色。它作為android.content.BroadcastReceiver的子類來實(shí)現(xiàn)。

Android應(yīng)用程序始于Activity實(shí)例。這個代碼片段演示了基本理念。

 
 
 
  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);    
  12. }
  13. }

Qt用不同的方式來處理Android針對活動所作的處理。它使用了幾個組件,比如域類或狀態(tài)機(jī)來跟蹤組件狀態(tài)。如果使用之前版本的Qt,在創(chuàng)建用戶界面時,你就得使用窗口組件,或者在QGraphicsView上構(gòu)建屏幕。結(jié)果是用戶體驗(yàn)很差勁,在觸摸屏手機(jī)上更是差勁。但是隨著Qt Mobility和Qt Quick的發(fā)布,用Qt移動平臺來開發(fā)應(yīng)用程序變得更切實(shí)際了。

Qt Mobillity API框架提供了一系列廣泛的功能和技術(shù),包括如下:

  • Bearer Management:該API控制著系統(tǒng)的連接狀態(tài)、管理可用網(wǎng)絡(luò)連接以及使用***的可用連接。
  • Contacts:該API讓客戶機(jī)能夠請求來自本地和遠(yuǎn)地的聯(lián)系人數(shù)據(jù)。
  • Location:該API用于接收來自任意數(shù)據(jù)源的位置數(shù)據(jù)。
  • Messaging:該API用于發(fā)送和接收多種類型的消息,如短信和電子郵件。
  • Multimedia:該API有助于播放和錄制媒體,并管理媒體內(nèi)容的組合。
  • Publish和Subscribe:該API用于共享應(yīng)用程序之間的上下文信息和讀取項(xiàng)目值、瀏覽項(xiàng)目值以及訂閱變更通知。
  • Service Framework:該API用于發(fā)現(xiàn)任意服務(wù),并為任意服務(wù)創(chuàng)建實(shí)例。
  • System Info:該API用于發(fā)現(xiàn)與系統(tǒng)有關(guān)的信息和能力。

Qt Quick為使用QML語言,以聲明式方式建立對象樹提供了一種機(jī)制。QtDeclarative C++模塊將QML與C++對象集成起來。開發(fā)者可以構(gòu)建對智能手機(jī)及其他設(shè)備來說很常見的流暢的用戶界面。查看該列表,即可看到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.      }
  10. }

Qt移動平臺的基本起始點(diǎn)是main方法。下面是一個基于窗口組件的移動應(yīng)用程序的示例起始點(diǎn):

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

Android VS Qt:移動開發(fā)者眼里誰更強(qiáng)?
Android(設(shè)備數(shù)量為王,Android將獨(dú)步天下)
Qt(跨平臺框架,應(yīng)用用C++開發(fā),Geek的***)
 

#p#

Android PK Qt:平臺的優(yōu)缺點(diǎn)

由于Android是一款手機(jī)開發(fā)平臺,其觸摸屏和攝像頭等API訪問系統(tǒng)資源再自然不過了。而Qt則是一款跨平臺的應(yīng)用框架,它***面向桌面端,后來借助Qt Mobility包及其API擴(kuò)展到了移動平臺。因而,Qt訪問系統(tǒng)資源的機(jī)制大不一樣。表1顯示了Android的一些主要功能和Qt的對應(yīng)功能。

表1

Android

Qt移動平臺

借助ContactsContract和CalendarContract等API,Android能夠管理個人信息(聯(lián)系人和日歷)。

Qt Mobility為個人信息管理提供了一套API,比如Contacts API、Organizer API和Versit API。

Android讓用戶可以訪問用于監(jiān)控網(wǎng)絡(luò)類型和連接速度等基本電話信息的Telephony API,以及用于處理電話號碼串的實(shí)用工具。

Qt Mobility通過Bearer Management API,提供了與AndroidTelephony API對應(yīng)的API。

Android中的消息傳送通過Message API來訪問。

Qt Mobility提供了自己的Messaging API。

用于視頻編碼的圖像捕獲設(shè)置、播放/停止預(yù)覽、拍取照片和檢索幀都可以通過CameraAPI來訪問。

Qt Mobility提供了Multimedia API,以處理攝像頭硬件及其他添加的功能。

在Android中,開發(fā)者可以通過XML描述文件或IDE中的布局設(shè)計器(如Eclipse)裝入應(yīng)用程序的用戶界面。

Qt for Symbian提供了設(shè)計應(yīng)用程序的兩種方法:Qt Creator中的Form Designer和Qt Quick的QML,用于布局設(shè)計。

Android基于Java和Dalvik虛擬機(jī),它們離不開基于Linux的Android操作系統(tǒng)。

Qt主要基于C++,是一款跨平臺的應(yīng)用框架,離不開Symbian、Maemo和Meego等操作系統(tǒng)。

Android應(yīng)用程序局限于Android平臺,而該平臺主要是為智能手機(jī)、平板電腦其他手持設(shè)備而開發(fā)的。

Qt是一種跨平臺框架,主要為桌面開發(fā)而設(shè)計,后來移植到了移動平臺。一個合理設(shè)計的Qt應(yīng)用程序可以在Symbian、Maemo和Meego移動設(shè)備上執(zhí)行,也可以在Windows、Linux和Mac OS桌面平臺上執(zhí)行,不需要任何大幅改動。

結(jié)束語

對每一個開發(fā)項(xiàng)目來說,歸根結(jié)底就看產(chǎn)品的高效性和適銷性。由于各大廠商開始制造基于Android的智能手機(jī)、平板電腦、電子書閱讀器及其他手持設(shè)備,Android及其操作系統(tǒng)無疑證實(shí)了其適銷性。實(shí)際上,似乎是個劣勢的因素(Android應(yīng)用程序局限于Android平臺)恰恰成了Android平臺的一大優(yōu)勢。

Android的開放理念也確保了只要編寫擴(kuò)展件或替換件,就能消除用戶界面或原生應(yīng)用程序設(shè)計方面的任何缺陷。Android為你提供的工具可以開發(fā)出外觀、感覺和功能與你設(shè)想的一模一樣的手機(jī)界面和應(yīng)用程序。不過,Android開發(fā)者的工作效率因速度緩慢的仿真器受到了阻礙。

另一方面,Qt通過Qt Creator IDE,提供了一種非常高效的開發(fā)環(huán)境。由于Qt 不是為某一款操作系統(tǒng)而設(shè)計,Qt應(yīng)用程序在智能手機(jī)領(lǐng)域的適銷性高度依賴Symbian、MeeGo和Maemo等操作系統(tǒng)。然而,Qt應(yīng)用程序可以移植到Android設(shè)備上,不過要獲得技術(shù)上的成熟性可能需要借以一段時日。


Android VS Qt:移動開發(fā)者眼里誰更強(qiáng)?
Android(設(shè)備數(shù)量為王,Android將獨(dú)步天下)
Qt(跨平臺框架,應(yīng)用用C++開發(fā),Geek的***)
 

網(wǎng)頁名稱:“AndroidVSQt”:移動開發(fā)者眼里誰更強(qiáng)?
本文URL:http://www.dlmjj.cn/article/djjddpc.html