成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Qt為Symbian開發(fā)應(yīng)用程序

原創(chuàng)
移動開發(fā)
Qt是一種跨平臺的原生開發(fā)框架,面向所有主要的操作系統(tǒng),包括Linux、Windows、Mac、Symbian和Maemo。本文介紹了用Qt這種原生應(yīng)用開發(fā)環(huán)境為Symbian智能手機(jī)開發(fā)應(yīng)用程序以及把應(yīng)用程序部署到諾基亞Ovi商店(Nokia Ovi Store)上。

【51CTO譯文】2007年,諾基亞發(fā)布了面向Symbian操作系統(tǒng)的標(biāo)準(zhǔn)C庫。當(dāng)時,我們寫了一篇題為《Open C:為移植鋪平道路》的文章。如今,標(biāo)準(zhǔn)C基礎(chǔ)庫出現(xiàn)在了各大操作系統(tǒng)上。由于標(biāo)準(zhǔn)C庫還出現(xiàn)在Symbian操作系統(tǒng)上,應(yīng)用程序開發(fā)變得容易了許多,跨不同操作系統(tǒng)移植現(xiàn)有的應(yīng)用程序也是如此。

這回,我們不再僅限于跨平臺的標(biāo)準(zhǔn)C庫,而是介紹用Qt為Symbian開發(fā)原生應(yīng)用程序。Qt是一種跨平臺的原生開發(fā)框架,面向所有主要的操作系統(tǒng),包括Linux、Windows、Mac、Symbian和Maemo。本文介紹用Qt為Symbian操作系統(tǒng)開發(fā)應(yīng)用程序以及把應(yīng)用程序部署到諾基亞Ovi商店(Nokia Ovi Store)上。

Qt支持基于Symbian的S60 3.1、3.2、5.0和最新的Symbian^3設(shè)備。如今,Symbian穩(wěn)占全球第一大智能手機(jī)平臺的寶座。我們主要介紹用Qt編寫應(yīng)用程序,并將應(yīng)用程序部署到Ovi商店上。請注意:這里給出的大多數(shù)步驟同樣適用于其他操作系統(tǒng),只不過側(cè)重于Symbian環(huán)境而已。

Qt SDK

Qt SDK

開始入手

我們先來看一下開發(fā)人員可以使用的Qt和Qt Mobility API方面的組件。然后,我們會深入探討Qt SDK、集成開發(fā)環(huán)境(IDE):Qt Creator以及模擬器。然后會在模擬器和實際硬件上運行示例代碼。一旦應(yīng)用程序開發(fā)完畢,我們會演示如何對它簽名、部署到Ovi商店上。

Qt SDK

Qt SDK是個一體化的安裝包,擁有桌面、Symbian和Maemo/MeeGo等開發(fā)環(huán)境。SDK包括了最新版的Qt框架和IDE:Qt Creator。它旨在提供容易為桌面平臺和移動設(shè)備開發(fā)優(yōu)秀應(yīng)用程序所需要的全部資源。為了進(jìn)一步支持移動開發(fā),Qt SDK包含名叫Qt Mobility API的移動性擴(kuò)展、對設(shè)備上調(diào)試的支持以及能夠在桌面上迅速進(jìn)行移動開發(fā)的Qt模擬器。

跨平臺的庫Qt API包括如下:

•QtCore:其他模塊所用的核心非圖形類

•QtGui:圖形用戶界面(GUI)組件

•QtMultimedia:用于低層多媒體功能的類

•QtNetwork:用于網(wǎng)絡(luò)編程的類

•QtOpenGL:OpenGL支持類

•QtOpenVG:OpenVG支持類

•QtScript:用于評估Qt Script的類

•QtScriptTools:額外的Qt Script組件

•QtSql:用于使用SQL與數(shù)據(jù)庫集成的類

•QtSvg:用于顯示可擴(kuò)展向量圖形(SVG)文件組件的類

•QtWebKit:用于顯示和編輯Web內(nèi)容的類

•QtXml:用于處理XML的類

•QtXmlPatterns:用于XML和自定義數(shù)據(jù)模型的XQuery & XPath引擎

•QtDeclarative:用于說明性地構(gòu)建流暢用戶界面的引擎,又叫Qt Quick/QML

•Phonon:多媒體框架類

•Qt3Support:Qt 3兼容類(這些遺留的支持類在MeeGo和Symbian中不受支持)。

Qt Mobility API包括如下:

•Bearer Management API:用于控制系統(tǒng)的互聯(lián)網(wǎng)連接狀態(tài)的API。

•Camera API:攝像頭設(shè)備得到平臺支持時,提供用于使用攝像頭設(shè)備功能的框架。

•Contacts API:讓客戶機(jī)能夠從本地或遠(yuǎn)程后端請求聯(lián)系人數(shù)據(jù)的API。

•Document Gallery API:讓應(yīng)用程序能夠搜索、過濾和處理本地文件系統(tǒng)中文件的元數(shù)據(jù)。

•Feedback API:讓應(yīng)用程序可以生成觸覺反饋。

•Landmarks API:作為Location API的一部分,它讓應(yīng)用程序可以創(chuàng)建、獲取、更新和刪除地標(biāo)。

•Location API:Location API提供了用于使用任意數(shù)據(jù)源來分發(fā)和接收位置數(shù)據(jù)的庫。

•Maps/Navigation API:提供了用于訪問地圖、地標(biāo)和路線信息以便導(dǎo)航的API。

•Messaging API:Messaging API能夠訪問消息傳遞服務(wù)。

•Multimedia API:提供了用于播放和錄制媒體,管理一大批媒體內(nèi)容的一組API。

•Organizer API:提供了用于創(chuàng)建、更新、刪除和共享各種組織器項目(如事件和待辦事項)的接口。

•Publish and Subscribe API:Publish and Subscribe API含有值空間(Value Space),讓應(yīng)用程序能夠讀取項目值、瀏覽變更通知和訂閱變更通知。

•Service Framework API:讓客戶機(jī)可以發(fā)現(xiàn)任意服務(wù),并為任意服務(wù)創(chuàng)建實例的一組Qt API。

•Sensors API:Sensors API提供了對傳感器的訪問。

•System Information:發(fā)現(xiàn)與系統(tǒng)有關(guān)的信息和能力(capabilities,即權(quán)限)的一組API。

•Versit API:管理vCards等Versit文檔的API。#p#

開發(fā)應(yīng)用程序

在你開始為Symbian開發(fā)基于Qt的應(yīng)用程序之前,建議注冊成為Ovi商店發(fā)布者(Ovi Publisher)。你會得到發(fā)布者編號(UID)、證書安裝工具以及開發(fā)和測試過程中需要的開發(fā)者證書/密鑰對。注冊費僅需1歐元。發(fā)布到Ovi商店不需要另外付費。我們會在本文后面介紹這些概念,到時需要用到這些。想了解更多詳細(xì)內(nèi)容,請參閱網(wǎng)站(尤其要注意發(fā)布者一覽表)。

可以在Qt官網(wǎng)上找到所用的例子(包括所有文件)。我們在這一個例子中使用了基于Qt Quick的例子:簡單的Calculator(該例子在文件夾$QTDIR\demos\declarative\calculator中隨帶Qt本身)。

如果你的應(yīng)用程序不依靠target(目標(biāo))平臺或Qt mobility API,桌面運行庫本身對快速應(yīng)用開發(fā)而言是個很好的選擇。

要是有Qt模擬器,你可以在一種類似設(shè)備環(huán)境的環(huán)境中測試面向移動設(shè)備開發(fā)的Qt應(yīng)用程序。可以更改設(shè)備所擁有的關(guān)于配置和環(huán)境的信息。

在工程模式(Projects mode)下,選擇Qt模擬器,并為該工程指定所需的構(gòu)建和運行設(shè)置(Build and Run Settings)。一旦完成,運行該工程,你會看到該應(yīng)用程序在模擬器中是如何啟動的。

Calculator應(yīng)用程序在模擬器中啟動

Calculator應(yīng)用程序在模擬器中啟動

QML查看器是個用于裝入QML文檔的應(yīng)用程序,以便快速開發(fā)和調(diào)試QML應(yīng)用程序。它會調(diào)用QML運行庫以裝入QML文檔,還包括了適用于開發(fā)基于QML的應(yīng)用程序的額外功能。

在設(shè)備上構(gòu)建和調(diào)試

一旦你完成了在桌面上測試應(yīng)用程序的工作,就可以開始為設(shè)備構(gòu)建應(yīng)用程序了。不過,在這做一步之前,有必要了解Symbian設(shè)備上的平臺安全到底怎樣。

為了防止執(zhí)行未授權(quán)的應(yīng)用程序,并且保護(hù)最終用戶,Symbian操作系統(tǒng)有平臺安全機(jī)制。對于開發(fā)者來說,這意味著所有應(yīng)用程序在安裝到設(shè)備上之前都需要簽名。簽名既批準(zhǔn)應(yīng)用程序可以安裝到設(shè)備上,又控制應(yīng)用程序?qū)μ囟ㄒ苿釉O(shè)備上數(shù)據(jù)的訪問。許多基本的應(yīng)用程序僅具備可以自簽名以便用于開發(fā)的能力,即所謂的“基本能力”(basic capabilities))。稍后部署商業(yè)應(yīng)用程序需要得到諾基亞的簽名。無論你何時使用要求一項特殊能力的功能,都需要按從左邊文件視圖上可以打開的工程文件(.pro)開發(fā)該能力。在Symbian選項卡下,你應(yīng)該會看到TARGET.CAPABILITY關(guān)鍵字。

在需要受限能力或制造商能力(CommDD、DiskAdmin、NetworkControl、MultimediaDD、AllFiles、TCB或DRM)的情況下,簽名需要完成Symbian簽名,這時需要發(fā)布者編號(要有公司才能獲得發(fā)布者編號)。不過,應(yīng)用程序需要這幾種能力的情況很少見,所以在絕大多數(shù)情況下,可以通過Ovi發(fā)布者計劃來對你的應(yīng)用程序簽名。這是建議采用的方法(因為它是免費的)。

在Calculator例子中,不需要任何特定的能力。

僅僅為了表明在.pro文件中如何指定能力,給出了下列代碼片段,其中指定了Location、NetworkServices和ReadUserData等能力。

  1. symbian {  
  2.  
  3. TARGET.CAPABILITY += Location \  
  4.  
  5. NetworkServices \  
  6.  
  7. ReadUserData  
  8.  

要證實所需的能力,最佳來源就是Qt和Qt Mobility的參考文檔——分章節(jié)專門記載了諸能力。想了解不同能力的更多信息,請參閱網(wǎng)站

為設(shè)備而構(gòu)建

選擇Symbian設(shè)備作為目標(biāo)(如圖1所示),然后構(gòu)建應(yīng)用程序。

圖1

圖1

在通過USB連接到開發(fā)PC的設(shè)備上運行應(yīng)用程序。Qt Creator會自動檢測到你的諾基亞設(shè)備。可直接從IDE來啟動。運行設(shè)置看起來應(yīng)該像圖2(已從設(shè)備查詢到設(shè)備信息)。

圖2

圖2

另外,在運行設(shè)置對話框中,你應(yīng)該在創(chuàng)建SIS包部署對話框中指定從Ovi發(fā)布者計劃獲得的開發(fā)者證書。如果你的應(yīng)用程序需要比基本能力集還要多的能力,就需要這個證書。用開發(fā)者證書簽名的應(yīng)用程序只能用于某一個移動設(shè)備(或一組設(shè)備),總會在安裝時顯示提醒信息:應(yīng)用程序不可信。參閱圖3。

圖3

圖3

可以在設(shè)備上調(diào)試應(yīng)用程序。對Symbian設(shè)備來說,這種調(diào)試也得到支持。調(diào)試代理程序必須安裝到設(shè)備上,這一步可以在通過 Qt SDK 菜單把所需運行庫安裝到 Symbian^3 設(shè)備上(安裝TRK調(diào)試代理程序)時同時進(jìn)行。在調(diào)試只出現(xiàn)在設(shè)備中的問題時,這項功能很有用。

創(chuàng)建圖標(biāo)

SVG 1.1圖標(biāo)和SVG 1.1 Tiny圖標(biāo)可以用在Qt應(yīng)用程序中。可以在這里找到關(guān)于如何為Symbian平臺創(chuàng)建圖標(biāo)的一些指南。

一旦你為應(yīng)用程序創(chuàng)建了圖標(biāo),就把下列語句添加到.pro文件中,構(gòu)建應(yīng)用程序。

  1. Symbian {  
  2.  
  3. ICON = myicon.svg  
  4.  
  5. …  
  6.  

 你的應(yīng)用程序(UID)

開發(fā)過程中,你可以使用來自介于0xE0000000到0xEFFFFFFF這個范圍的任何UID3。不過部署之前,你要從Ovi發(fā)布計劃獲得合適的UID3。

UID有三種不同類型:UID1、UID2和UID3。UID1定義了二進(jìn)制類型,比如可執(zhí)行文件、庫和數(shù)據(jù)。UID2并不總是用到,因為它以額外信息描述了安裝包。UID3用于以獨特方式識別系統(tǒng)里面的二進(jìn)制文件(EXE或DLL)。

Qt使用工程文件(.pro),用qmake生成針對特定系統(tǒng)的make文件。這些工程文件還攜帶將Qt應(yīng)用程序部署到Symbian設(shè)備上所需的信息。UID3在工程文件(.pro)中進(jìn)行了指定,就像這樣:

  1. symbian {  
  2.  
  3. TARGET.UID3 = 0xE0000069 # UID3 which can be used during development. Remember to change  
  4.  
  5. this before deployment.  
  6.  

#p#部署應(yīng)用程序

Qt應(yīng)用程序可以在Qvi商店中發(fā)布。面向Qt內(nèi)容的Ovi商店功能已經(jīng)過了測試,能夠用于以下20款諾基亞設(shè)備型號(截至本文完稿時):

•Symbian^3:N8-00、E7-00、C7-00和C6-01(這些設(shè)備交付時隨帶Qt 4.6.3)

•S60第五版:X6-00、C6-00、N97、N97 mini、5800 XpressMusic、5530 XpressMusic、5235、5233、5230和5228

•S60第三版: E72、E71、E66、E63和E52

Nokia Smart Installer for Symbian簡化了將Qt應(yīng)用程序部署到成千上萬Symbian設(shè)備上的任務(wù),就算那些設(shè)備交付時并不隨帶Qt,也是這樣。Smart Installer是個可執(zhí)行程序,與你的Qt應(yīng)用程序捆綁在一起,擁有所需的依賴信息(比如應(yīng)用程序所需的最低Qt版本)。Smart Installer在安裝過程中會檢測是否已安裝了所需的Qt庫;如果已安裝,它就只安裝Qt應(yīng)用程序。不然,Smart Installer會自動下載所需的Qt庫,并把它們安裝到你的設(shè)備上。有了Smart Installer,Qt二進(jìn)制代碼就無需隨同應(yīng)用程序一起分發(fā),因而使安裝包變小了許多,而且更適合通過Ovi商店等渠道來分發(fā)。

使用Smart Installer是強(qiáng)制性的,哪怕基于Symbian^3的諾基亞N8等設(shè)備已預(yù)先安裝了Qt也是這樣。

Qt Creator支持這一功能:自動生成具有Smart Installer功能的包。在工程頁面中,選擇Symbian設(shè)備目標(biāo)和運行設(shè)置,勾選方框“創(chuàng)建Smart Installer包”。

改動應(yīng)用程序.pro文件

主可執(zhí)行文件的UID和應(yīng)用程序.sis文件(myQt­App.sis)的UID必須一樣,必須與Ovi Publish的AppUID字段中指定的UDI相匹配。這將確保一旦應(yīng)用程序安裝完畢,應(yīng)用程序可以在Ovi商店客戶機(jī)里面啟動。

應(yīng)用程序的包文件中的廠商信息必須與你的發(fā)布者名稱相匹配,不得含有Nokia或Vendor。

  1. symbian {  
  2.  
  3. TARGET.VENDORID = 0x70000002 # Use vendor ID you will get from Nokia  
  4.  
  5. …  
  6.  

用Qt SDK創(chuàng)建可安裝文件(SIS文件)

SIS這個縮略語代表軟件安裝腳本(Software Installation Script)。它是面向Symbian OS的歸檔。包文件(.pkg)定義了可安裝sis文件的內(nèi)容。包文件還定義了該包將面向哪個平臺、軟件名稱以及應(yīng)用程序的版本和編號。Qt Creator負(fù)責(zé)創(chuàng)建模板包文件,之后如果你選擇改動模板包文件,就可以改動。

Qt Creator在開發(fā)階段簡化了這一步——如果你想在Symbian設(shè)備上運行應(yīng)用程序,就創(chuàng)建所需的SIS文件(注意:這在最近一個版本的Qt SDK中有了變化——更早些時候,SIS包在構(gòu)建時創(chuàng)建而成)。Qt Creator讓你在為開發(fā)的應(yīng)用程序創(chuàng)建SIS包時,可以使用自簽名證書或自定義證書。

分發(fā)嵌入式包

將應(yīng)用程序(提供了UID的未簽名SIS文件)提交到Ovi商店的收納(intake)工具。測試應(yīng)用程序時將基于諾基亞內(nèi)容和商店準(zhǔn)則、特定運營商的準(zhǔn)則以及Symbian簽名測試標(biāo)準(zhǔn)。如果應(yīng)用程序通過了測試,會得到諾基亞的快速簽名,之后發(fā)布到Ovi商店;你就大功告成了。

原文出處

【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請注明原文出處、作者及51CTO譯者!】

【編輯推薦】

  1. 詳解Qt Lighthouse和Wayland
  2. 在Windows操作系統(tǒng)下的Qt全局熱鍵
  3. Ubuntu下安裝Qt環(huán)境及Qt Creator開發(fā)工具
  4. Qt in Scala(JVM)開發(fā)梗概
  5. 用Scala實現(xiàn)Qt QWidget對象的Eventable接口
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2010-05-23 11:13:53

Widget開發(fā)

2011-06-16 15:17:16

2009-04-12 09:25:12

Symbian諾基亞移動OS

2009-04-12 08:45:32

Symbian諾基亞移動OS

2011-06-16 16:21:06

Qt Symbian FAQ

2011-06-09 09:12:12

QT symbian

2010-02-06 14:19:26

ibmdwGoogleMap

2010-11-18 15:52:32

QMLMeeGo

2009-09-22 12:22:54

ibmdwLotus

2012-05-29 10:04:08

2010-12-28 09:57:11

SymbianQtMeeGo

2011-06-14 14:57:06

QT Python GUI

2021-02-05 11:55:37

PythonWindows平臺代碼

2012-03-15 15:35:51

iUI框架EclipseiOS Web

2011-06-15 17:08:31

Qt Symbian 切換

2012-02-08 15:06:31

ibmdw

2022-09-19 00:37:13

SaaS云計算開發(fā)

2009-09-10 10:55:31

中國移動應(yīng)用程序商店

2013-02-21 14:14:40

開發(fā)Tizen

2013-02-21 14:15:41

開發(fā)Tizen
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区精品 | 久久曰视频 | 日韩在线播放一区 | 国产高清视频在线观看播放 | 国产乱码精品一区二区三区忘忧草 | 日韩成人一区二区 | 人人种亚洲| 成在线人视频免费视频 | 精品www| 男女爱爱福利视频 | 亚洲精品欧美一区二区三区 | 精品国产一区二区三区久久影院 | 国产精品久久久久久久久久免费看 | 国产精品一区二区在线 | 国产精品一区二区久久久久 | 久久午夜影院 | 国产精品久久久久久二区 | 欧美视频免费在线 | 欧美一区二区三区四区五区无卡码 | 国产日韩欧美在线播放 | 亚洲美女一区二区三区 | 欧美日韩高清在线一区 | 精品美女久久久 | 欧美日韩国产一区 | 欧美三级电影在线播放 | 亚洲精品一区中文字幕乱码 | 欧美日韩国产一区二区三区 | 亚洲天堂网站 | 午夜网 | 日韩精品在线播放 | 色综合色综合 | 狠狠爱视频 | 偷拍自拍网址 | 激情av在线 | 亚洲综合大片69999 | 中文字幕一区在线观看视频 | 国产精品久久久久久久久久久久冷 | 午夜一区 | 91精品国产91久久久久久最新 | 欧美自拍一区 | 一级黄色毛片免费 |