日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

symbian系统开发教程(一)

發(fā)布時間:2023/12/18 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 symbian系统开发教程(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
第一章:Symbian OS簡介 作者:謝興????????enigma19971@hotmail.com ????????????????????????????????????????---轉(zhuǎn)載需注明出處????? 下載word文檔 1.1.??? Symbian系統(tǒng)簡介 當(dāng)前有很多手機運行Symbian OS,數(shù)量甚至超出您的想象。到目前為止已經(jīng)有超過7500 萬、100 多種型號的手機運行Symbian OS。這些電話大部分都形態(tài)迥異:有的配有鍵盤,有的采用筆控輸入;有的配備TFT 彩色屏幕,有的則配備黑白LCD 顯示屏;有的擅長于音樂播放,有的專注于電子游戲、圖像處理甚至電視功能;有的手機面向個人消費者,有的專門針對商務(wù)用戶;有的是為單手操作設(shè)計的,有的是為雙手操作設(shè)計的——種類繁多不一而足。Symbian OS 手機受到廣大消費者的喜愛。僅2005 年就售出3400 萬部Symbian OS 手機——這相當(dāng)于每不到一秒鐘就有一部Symbian OS 手機被出售。網(wǎng)絡(luò)運行商同樣青睞Symbian OS 手機。全球有250 多個移動電話網(wǎng)絡(luò)運行商選擇了Symbian OS 手機。所有這些都表明現(xiàn)在市面上有成千上萬的手機是基于Symbian OS 的,所以為symbian系統(tǒng)開發(fā)的應(yīng)用程序會得到廣泛的應(yīng)用。現(xiàn)在已經(jīng)有5400 多種商業(yè)性應(yīng)用軟件可供Symbian OS 手機應(yīng)用。本教程旨在為您提供一些編寫Symbian OS 應(yīng)用程序的入門知識。希望它會對您有所裨益,為開發(fā)Symbian OS 應(yīng)用程序打下一個良好的基礎(chǔ)。 1.2.??? 開發(fā)語言 從開發(fā)初期起,Symbian OS 就是專門為移動電話而設(shè)計的,因此從彈性的電源管理(resilient power-management)到內(nèi)存資源的謹(jǐn)慎使用,全都是為了滿足手機操作系統(tǒng)的特定需求。作為Symbian OS 的開發(fā)人員,您將受益于Symbian OS 這樣一個專門為移動設(shè)備而創(chuàng)立并隨著市場一起發(fā)展的開發(fā)平臺。Symbian OS 最“基本”的編程語言是一種改進(jìn)的C++。Symbian OS C++ 經(jīng)過特殊設(shè)計與優(yōu)化,以利于降低手機電池能耗和內(nèi)存使用。比如,為了節(jié)約電池耗電,所有Symbian OS 程序都是基于事件(event-based) 的,而當(dāng)沒有任何程序進(jìn)行事件處理時,CPU 就進(jìn)入休眠。您在開發(fā)軟件時也可以使用Java、Python、.NET(使用Visual Basic 和帶AppForge’s Crossfire 的C#)、Perl、OPL和Adobe Flash,但是Symbian OS C++ 是最強大(它允許最大限度的利用操作系統(tǒng)提供的所有功能)也是最快捷(因為它直接以編譯碼運行,而無需在運行時進(jìn)行解譯)的語言。這也就是為什么我們在本書中選擇C++ 來向您演示如何進(jìn)行Symbian OS 開發(fā)的原因。好了,閑言少敘,讓我們言歸正傳。 1.3.??? 準(zhǔn)備工作 首先您需要有一臺電腦能創(chuàng)建并測試在Symbian OS 手機上運行的應(yīng)用程序。這也就是說電腦要有一個較快的CPU 處理器(至少1.5GHz)和相當(dāng)大的RAM(512MB或更大)以及一個大容量硬盤(至少有2GB 剩余空間)。該電腦必須能運行Windows 2000 或XP 操作系統(tǒng)。然后您需要開發(fā)軟件來幫助您編寫代碼并進(jìn)行編譯。這可通過包含編輯程序(editor)、編譯程序(compiler) 和鏈接程序(linker) 的集成開發(fā)環(huán)境(IDE) 來完成。在這推薦兩種適合Symbian OS 程序開發(fā)的IDE。對于開發(fā)非商業(yè)用途的Symbian OS 應(yīng)用程序,Nokia 的Carbide.c++ Express 版本是最理想不過了,它建立在Eclipse IDE 的基礎(chǔ)上,供免費下載。對于使用Visual Studio.NET 2003 的程序員來說,也可選擇Carbide.vs。這是一套基于Microsoft Visual Studio .NET2003 IDE 的工具,用于開發(fā)S60 和Series 80 軟件。您還需要軟件開發(fā)包(SDK), 專門用來編寫和創(chuàng)建Symbian OS 應(yīng)用程序。基于不同手機類型,有不同版本的SDK 供選擇,具體使用哪個SDK 請見以下幾頁的說明。如果您還沒有決定具體的手機類型或平臺而無法確定選擇哪個SDK,我們建議您一開始可使用S60 和UIQ SDK。如果您想為最新款的手機(如Nokia 3250、E60、E61、N71、N80、N91、N73 或N93)編寫應(yīng)用程序,那就選擇基于Symbian OS v9 的SDK(UIQ 3 或S60 第三版),要么您就選擇更低版本的SDK(UIQ 2.1 或S60 第二版)。 不同版本的Symbian OS 之間有什么區(qū)別?主要的分別是,在Symbian OS 9.1 版本之前,為較低版本的Symbian OS編寫的軟件往往可在較高版本上運行,但9.1 版本與以往的版本截然不同。如要運行在9.1 版的Symbian OS 上,應(yīng)用程序必須稍加修改并進(jìn)行再次編譯。接下來您需要下載您所選擇的IDE 和SDK。以下章節(jié)將向您介紹如何在互聯(lián)網(wǎng)上找到這些工具。 1.4.??? S60 平臺 ??? S60 平臺是一個完整的應(yīng)用程序包(package),用戶接口和構(gòu)建于Symbian 系統(tǒng)技術(shù)的開發(fā)工具。S60 用戶接口 (UI) 經(jīng)過精心的設(shè)計,方便用戶使用,便于單手操作。從用戶的角度看來,該平臺最大的特點在于它的用戶界面:大的彩屏和各種輸入鍵(兩個軟件鍵, 五方位的導(dǎo)航鍵,和幾個專用的鍵)。 單手操作和大彩屏的優(yōu)點能使應(yīng)用程序開發(fā)者提供更有吸引力的內(nèi)容和提供更方便的導(dǎo)航功能,同時增加用戶使用手機時的愉快體驗。 ??? 目前,s60平臺上已經(jīng)存在各種各樣的應(yīng)用軟件. 其中最重要的有:高級智能電話應(yīng)用程序,個人信息管理應(yīng)用程序(PIM)(例如, 電話簿,日歷, 相冊), 短信, 網(wǎng)頁瀏覽, 電子郵件和應(yīng)用程序安裝引擎,它能夠讓您自由地從電腦上下載軟件到您的手機上。 ??? S60 第三版本支持兩種不同的外觀: ????????? QVGA Portrait (240x320) ????????? QVGA Landscape (320x240) 1.5.??? 如何選擇SDK 基于Symbian OS 的手機外型各異,用戶界面(UI) 也不盡相同。為了給特定的用戶界面編寫應(yīng)用程序,您必須選擇特定的SDK(盡管應(yīng)用程序的引擎往往與用戶界面無關(guān))。大部分運行Symbian OS 的手機采用的是S60 用戶界面并使用鍵盤操作。S60 已經(jīng)發(fā)布了一系列版本,選擇正確的S60 SDK 和相應(yīng)的Symbian OS 十分重要: S60 第三版– Symbian OS v9.1 S60 第二版功能包3 – Symbian OS v8.1 S60 第二版功能包2 – Symbian OS v8.0a S60 第二版功能包1 – 升級Symbian OS v7.0s S60 第二版– Symbian OS v7.0s S60 第一版– Symbian OS v6.1 您可在以下網(wǎng)站查到每一系列S60 SDK 所包含的手機型號列表:www.symbian.com/developer/sdks/sdks_series60.asp 其它大部分基于Symbian OS 的手機采用筆控輸入的UIQ 用戶界面。以下網(wǎng)站列出了基于各版本的UIQSDK 的手機機型www.symbian.com/developer/sdks/sdks_uiq.asp 您可以到以Nokia的網(wǎng)站下載SDK www.forum.nokia.com 1.6.Carbide.c++ 集成開發(fā)環(huán)境(IDE) ? 前面已經(jīng)提到了各種集成開發(fā)環(huán)境,這里我們主要介紹Carbide.c++的集成開發(fā)環(huán)境。Carbide.c++的集成開發(fā)環(huán)境(IDE)基于Eclipse集成開發(fā)環(huán)境版本3。增添了能使Eclipse處理symbian c++ 源文件和編譯Symbian工程的插件。這些插件分為以下幾類: ????????? C/C++開發(fā)工具箱(CDT)。這是一個使得Eclipse管理和編譯symbian工程的工具集 ????????? Symbian插件。這些插件由symbian開發(fā),使得eclipse能夠處理Eclipse C++的概念,同時提供對Symbian操作系統(tǒng)軟件開發(fā)工具箱和Symbian工具鏈的支持。 ????????? Nokia插件。由Nokia開發(fā),提供對Symbian操作系統(tǒng)工具箱的更多支持。插件實現(xiàn)了C++編譯器,symbian系統(tǒng)的調(diào)試器,并且加入了Carbide.c++系列產(chǎn)品的商業(yè)版本的高級特性。 很明顯,因為Carbide.c++是基本的Eclipse集成開發(fā)環(huán)境,開發(fā)者可以進(jìn)一步定制其它的商業(yè)或免費的插件,比如說,一個版本控制系統(tǒng),一個UML建模系統(tǒng)等。 Carbide.c++有自己的安裝程序,所以安裝比較簡單。在啟動這個產(chǎn)品之后,用戶看到的集成開發(fā)環(huán)境和Eclipse開發(fā)環(huán)境十分類似,如下圖所示,因為Carbide.c++是設(shè)計用于處理symbian c++應(yīng)用程序的,所以其集成開發(fā)環(huán)境的左邊顯示的是c/c++工程視圖,這個視圖用于顯示構(gòu)成一個典型symbian c++工程源文件、頭文件,資源文件。 關(guān)于eclipse平臺和插件的相關(guān)知識,不是本教程所關(guān)心的重點, 有興趣的讀者可參考相關(guān)的其他著述。 1.7.??? 開發(fā)環(huán)境的構(gòu)建 ????????? 第一步:安裝JDK5.0 ????????? 第二步:安裝ActivePerl(需要5.6.1以上版本) ????????? 第三步:安裝Symbian sdk ????????? 第三步:安裝Carbide.c++1.2 版本。 Carbide有不同的版本。 其中Express版本是免費安裝的,但不支持UI設(shè)計功能,也不支持在手機上調(diào)試的功能。 注意:這幾個文件需要放在一個目錄下面。否則,在編譯程序的過程中,可能會出現(xiàn)難以預(yù)料的錯誤。 1.8.??? 文件目錄的布局 在動手寫代碼之前,我們有必要了解工程的文件組織結(jié)構(gòu)。如果您看過SDK中的例子工程,或是用IDE的工程向?qū)?chuàng)建一個UI應(yīng)用程序,您就會了解一個典型的工程文件結(jié)構(gòu)布局是怎樣的。 ??? 當(dāng)工程增長到一定程度的時候,好的文件目錄布局將有助于幫助跟蹤代碼的變更。工程中包含了各種不同類型的文件,包括源文件和其他類型的文件,我們通常將這些文件分開來存放,下面我們簡短地介紹這些文件。 ??? 資源文件, 例如 .bmp 或 .wav 文件, 通常被單獨地存放在一個目錄下面。 測試代碼也會和產(chǎn)品代碼分開來存放。所以,一個典型的UI 應(yīng)用程序會有如下這樣一些目錄結(jié)構(gòu)和文件。

文件目錄 存放文件類型
data (S60) 存放資源規(guī)格文件(.rss)
Gfx (S60) 應(yīng)用程序資源文件,例如圖片和聲音文件。
Group 該目錄存放工程文件 (例如 .mmp?和 bld.inf)
Images (UIQ) 應(yīng)用程序資源文件,例如圖片。
Inc 該目錄存放頭文件 (typically .h, .hrh?和 .inl)
rsrc (UIQ) 存放資源規(guī)格文件 (.rss, .ra)
src 該目錄存放 .CPP 文件
Test 存放測試代碼

在group 目錄下面,有兩個重要的文件,這兩個文件都與創(chuàng)建Symbian工程相關(guān): 如果,需要在命令行編譯工程,必須創(chuàng)建如下兩個工程文件: ·???????? 工程定義文件 (.mmp file),這個文件對要編譯的工程進(jìn)行描述,并定義要構(gòu)建的資源文件。該文件是環(huán)境無關(guān)的,編譯工具用它來生成針對各種目標(biāo)環(huán)境下的make files文件。 ·???????? 組件描述文件(bld.inf), 這個文件列出了一組相關(guān)的工程, 并包含一些編譯指令. CodeWarrior?和 Carbide.c++ 都能夠?qū)牍こ潭x文件,并用它來在IDE環(huán)境下創(chuàng)建工程。下面詳細(xì)描述這些文件的格式。 ????????? 組件(component)描述文件: bld.inf ??? Bld.inf 是一個文本文件。它的內(nèi)容非常繁瑣,主要包括工程定義文件mmp和其他的任何編譯工具所需要的文件。該文件分為多個節(jié),其中,mmp文件列表在PRJ_MMPFILES節(jié)中。即使一個工程文件只包含一個mmp文件,bld文件仍然是必須的。下面是一個典型的bld.inf文件。
// 目標(biāo)平臺 PRJ_PLATFORMS
WINSCW GCCE

// 從工程中輸出的文件
PRJ_EXPORTS
// None

//
工程定義文件
PRJ_MMPFILES
filebrowseapp.mmp

// 工程定義文件(測試代碼用)
PRJ_TESTMMPFILES
../test/FileBrowseTest.mmp
??? 在上面的例子中, 如PRJ_PLATFORMS 聲明所示,默認(rèn)情況下工程被編譯為針對WINSCW平臺和 GCC-E平臺的執(zhí)行代碼。 當(dāng)您用CodeWarrior為模擬器編譯代碼的時候,您使用的是WINSCW 平臺, WINSCW的來由是,最終的代碼運行于Windows, 單線程模式(in a Single process),并用CodeWarrior編譯。 ??? 平臺的名稱用來標(biāo)識最終的可執(zhí)行代碼所運行的那個平臺。 所以, 當(dāng)上面的代碼被編譯完后,可執(zhí)行程序被放在 /epoc32/release/winscw 目錄下面(根據(jù)是調(diào)試(debug)版本還是釋放(release)版本,被放在 /udeb 或 /urel 子目錄下面)。 如果代碼是針對手機硬件的,需要選用GCCE平臺。這時,最終的可執(zhí)行代碼被放到/epoc32/release/gcce/目錄下面。 ????????? 工程描述文件 (mmp) mmp 文件中的每個語句都以一個關(guān)鍵字開頭。下面是一個典型的mmp 文件的例子。
// filebrowseapp.mmp
TARGET??????????????filebrowseapp.exe
TARGETTYPE??????????exe
UID?????????????????0x100039CE 0xE80000A6
????
VENDORID????????????0

#ifdef __WINSCW__
CAPABILITY??????????AllFiles??//????AllFiles on emulator since no signing is required???????
#else
CAPABILITY??????????NONE??????//????No capabilities on hardware - otherwise SIS file signing is required
#endif

SOURCEPATH??????????../src
SOURCE??????????????FileBrowseAppUi.cpp
SOURCE??????????????FileBrowseDocument.cpp
SOURCE??????????????FileBrowseApplication.cpp
SOURCE??????????????FileBrowseBaseView.cpp
SOURCE??????????????RFsEngine.cpp

SYSTEMINCLUDE???????/epoc32/include
USERINCLUDE?????????../inc


SOURCEPATH??????????../data

START RESOURCE??????filebrowseapp.rss
TARGETPATH??????????/resource/apps
HEADER
END

START RESOURCE??????filebrowseapp_reg.rss
TARGETPATH??????????/private/10003A3F/apps
END

START RESOURCE??????filebrowseapp_loc.rss
TARGETPATH??????????/resource/apps
LANG????????????????SC
HEADER
END
START BITMAP filebrowseapp.mbm
TARGETPATH /resource/apps
HEADER
SOURCEPATH ../gfx
SOURCE C16 folder.bmp
SOURCE C16 file.bmp
SOURCE 8 mask.bmp
END

LIBRARY?????????euser.lib efsrv.lib cone.lib eikcore.lib eikcoctl.lib eikdlg.lib egul.lib eikctl.lib apparc.lib
LIBRARY bafl.lib
LIBRARY avkon.lib CommonEngine.lib
下面簡單地描述每個關(guān)鍵字的作用:

TARGET 該關(guān)鍵字指明了目標(biāo)文件(exedll文件)的名稱。
TARGETTYPE 該關(guān)鍵字指明了工程所產(chǎn)生的目標(biāo)文件的類型,在上面的例子中,我們生成了一個可執(zhí)行文件。在大多數(shù)情況下,目標(biāo)文件的類型為dll,exe或是其他的插件(plugin)。
UID 目標(biāo)(通常指可以執(zhí)行的.exe.dll文件)具有三個UID,這些UID用來標(biāo)識組件,第一個UID是無須指定的。因為它是編譯工具根據(jù)目標(biāo)的類型自動分配的。所以這里所指定的實際上是UID2,這個值進(jìn)一步指明了目標(biāo)的類型,上面例子中,值(0x100039CE)指明了目標(biāo)文件是一個應(yīng)用程序,Symbian系統(tǒng)使用這個值來標(biāo)識所有的應(yīng)用程序。下一個指定的UID 對每個應(yīng)用程序來說都是唯一的。它標(biāo)識了這個應(yīng)用程序的注冊資源文件和該程序的安裝包文件.pkg。所以為了保證這個值的唯一性, 您必須要向Symbian申請這個UID,由他們負(fù)責(zé)從數(shù)據(jù)庫中為您的應(yīng)用程序分配一個UID。可到Symbian的網(wǎng)站上了解更多的相關(guān)信息。有一些UID的值是用來測試的,例如SDK中的例子:文件系統(tǒng)瀏覽應(yīng)用程序(filesystem browser)所使用的UID0xE80000A6, 您也可以在測試您的應(yīng)用程序的時候使用這個值,但注意,不要在您的最終產(chǎn)品中使用它。 ?
SECUREID 這是個可選的關(guān)鍵了,上面的例子中沒有出現(xiàn)。該關(guān)鍵字為應(yīng)用程序定義了安全標(biāo)示符,用來指明這個程序可以訪問哪個私有的目錄。如果該關(guān)鍵字沒有使用,用UID3來代替該關(guān)鍵字。
VENDORID 該關(guān)鍵字是在Symbian OS v9.1版本新增的。用來指定軟件提供商的ID號。該關(guān)鍵字不是必須的,可省略。
CAPABILITY 這是 Symbian OS 9.1新增加的關(guān)鍵字。該關(guān)鍵字指明了應(yīng)用程序的權(quán)限(或稱作能力,如:查看系統(tǒng)目錄)。大上面的例子中,應(yīng)用程序在模擬器上和在手機上被分配了不同的能力(capability)。在模器上,該程序被賦予了AllFiles 的權(quán)限, 比在手機上運行時,能看到更多的私有文件系統(tǒng)的區(qū)域。沒有被賦予AllFiles 能力的程序不能看到/Sym 目錄下的內(nèi)容。應(yīng)用程序只有在經(jīng)過認(rèn)證(certificate)以后才能獲得AllFiles的能力。關(guān)于認(rèn)證和簽名的內(nèi)容,我們在這一章的后面會講到。
SOURCEPATH和SOURCE SOURCE關(guān)鍵字指明了有哪些源文件和資源文件需要編譯,SOURCEPATH關(guān)鍵字指明了這些文件的位置。這個位置既可以是相對路徑(相對于mmp文件),也可以是絕對路徑。
SYSTEMINCLUDE 這個關(guān)鍵字指定了系統(tǒng)頭文件的位置,系統(tǒng)頭文件通常用#include<>語句包含。
USERINCLUDE 該關(guān)鍵字的作用類似于SYSTEMINCLUDE,它指明了在用戶自定義頭文件所在的位置。
START RESOURCE…END START RESOURCE 關(guān)鍵字表明了一個信息塊的開始,這些信息指明了如何編譯資源文件。END 標(biāo)示該信息塊結(jié)束。
TARGETPATH 該關(guān)鍵字用來指定被編譯后的資源文件的位置。注意: 由于安全方面的考慮,所有的可執(zhí)行代碼(exedll)都從手機上的/sys/bin/ 目錄運行。可執(zhí)行代碼不需要用該關(guān)鍵字指定位置。TARGETPATH 關(guān)鍵字僅僅用來指定編譯后的資源文件的位置。
HEADER 這是一個可選的關(guān)鍵字,當(dāng)它被使用的時候,系統(tǒng)將會在/epoc32/include/路徑下創(chuàng)建資源頭文件(.rsg)。這個頭文件包含了允許以C++代碼引用特定資源的標(biāo)識符。
LIBRARY 這個關(guān)鍵字列出了應(yīng)用程序需要鏈接的庫文件。
STATICLIBRARY 該關(guān)鍵字用來指定需要被靜態(tài)鏈接的庫文件 (庫文件中的代碼會被鏈接到您的程序中,而不是需要時才裝載到內(nèi)存)
START BITMAP…END 這一節(jié)包含了應(yīng)用程序圖標(biāo)所使用的位圖(bitmap),以及如何將這些位圖編譯成.mbmSymbian系統(tǒng)專有的圖像格式)的方式。
EPOCSTACKSIZE 該關(guān)鍵字是可選的,我們上面的例子中并未用到。在以前的Symbian OS 版本中,缺省的棧大小為0X5000字節(jié)。在v9.1版本中,缺省值為0x2000。為了增加棧的大小,可以使用該關(guān)鍵字。例如:EPOCSTACKSIZE 0x5000 。要注意的是, 對棧設(shè)置僅僅對真實設(shè)備有效,但對模擬器無效。
EPOCHEAPSIZE 該關(guān)鍵字也是可選的,我們上面的例子中并未用到。這個關(guān)鍵字指定了應(yīng)用程序可以使用的最大、最小堆空間。缺省情況下,4K為最小的尺寸,1M為最大的尺寸。

1.9.??? 第一個程序: HellowWorld 1.9.1.??? 創(chuàng)建工程 運行Carbide 集成開發(fā)環(huán)境,在菜單欄上選擇file->New->Symbian OS C++ project,出現(xiàn)如下圖所示的對話框: 我們選擇帶用戶界面設(shè)計器的圖形用戶界面應(yīng)用程序(Carbide Express 版本不支持用戶界面設(shè)計的功能)。然后點擊“下一步”按鈕。出現(xiàn)下面的對話框: 用戶選擇一個sdk的版本(筆者的機器上安裝的是s60_3rd_FP1版本的sdk)。繼續(xù)下一步: 按下一步,繼續(xù): 選擇一個空的界面,這樣我們可以自由地在上面添加控件。下面的步驟一直按“下一步”,直到完成。 1.9.2.??? 在模擬器上運行和調(diào)試 工程建立完成后,就可以構(gòu)建(build)工程了。在將程序放到手機上運行之前,我們通常需要先在模擬器上運行、調(diào)試程序。模擬器是SDK附帶的一個軟件,能夠模擬真實手機的運行情況。 在工程透視圖中,選中工程,點擊右鍵,將活動構(gòu)建設(shè)置為Emulator Debug(Winscw)。如下圖所示: 這樣,編譯出來的程序版本才是針對模擬器的。設(shè)置后,可以構(gòu)建(build)工程了:在工程透視圖中選中工程,點擊右鍵,選擇“build Target Only”(只編譯模擬器版本,節(jié)省時間)。 最后,點擊工具欄上的運行按鈕,選擇Run As->1 Run Symbian OS Application Carbide 啟動模擬器, 這個過程需要持續(xù)幾十秒到幾分種,依賴機器的配置。在模擬器啟動后,點擊模擬器上的軟件鍵,模擬器會出現(xiàn)下面的界面:

選擇Installed 選項后,可以看到應(yīng)用程序的圖標(biāo):

在模擬器上點擊按鈕,運行該程序。 1.10.??????????? 在手機上運行和調(diào)試 1.10.1.???????????? 基本概念 能夠在模擬器上運行、調(diào)試程序后,您可能想要在真實的手機上運行您的程序。但在這之前,先需要搞清以下幾個基本概念: ????????? GCCE版本和ARM版本: 在真實設(shè)備上運行的程序版本不同于我們在模擬器上運行的程序版本,在設(shè)備上運行的版本必須是GCCE版本或ARM版本。其中GCCE版本是用SDK 自帶的編譯器的,使用它不需要付費,而ARM版本是專門針對ARM 平臺的,代碼經(jīng)過優(yōu)化,性能優(yōu)于GCCE版本的程序,但需要付費。 ????????? .sis文件和.pkg: 創(chuàng)建應(yīng)用程序的GCCE 版本以后,需要創(chuàng)建一個Symbian 安裝文件(.sis)。從本質(zhì)上來講,.sis文件只是一個壓縮文件, 它包含了組成應(yīng)用程序所需的exe,dll,rss文件,和一些手機接收應(yīng)用程序時所必須的信息(例如:語言種類,應(yīng)用程序的UID)。現(xiàn)在的問題是,我們根據(jù)什么信息來創(chuàng)建這個sis文件呢?答案在于pkg文件, 在創(chuàng)建這個文件之前,先需要創(chuàng)建一個pkg文件,pkg文件中包含了一些有用的信息,包括將工程文件拷貝到手機的哪個目錄下面,程序的版本號等。 ????????? 簽名(sign): 在開發(fā)s60 3rd版本的應(yīng)用程序時,所有的 .sis 文件在安裝到手機之前,必須被簽名。如果您的程序沒有用到capability或只用到了對所有的用戶都開放的功能(utility),您可以使用自簽名認(rèn)證(Self Signed certificate)。當(dāng)在自己的手機上調(diào)試程序時,這種方法特別管用。 ????????? 機上調(diào)試代理(on-device debug agent)??? 如果想要在真實的手機設(shè)備上調(diào)試程序,需要在手機上安裝機上調(diào)試代理,這個手機上的代理程序通過藍(lán)牙或USB串行鏈路與調(diào)試器通信,在Carbide.c++調(diào)試器和目標(biāo)機器之間的起到接口的作用。調(diào)試代理提供以下功能: 1.?????? 運行在Symbian 系統(tǒng)上作為調(diào)試代理。 2.?????? 為Symbian系統(tǒng)提供一個穩(wěn)定的集成的接口 3.?????? 能被用來在真實的設(shè)備上調(diào)試應(yīng)用程序 4.?????? 能燒入到系統(tǒng)鏡像中,或是被安裝的sis文件。 使用機上調(diào)試代理, 我們可以使用Carbide.c++ 集成開發(fā)環(huán)境來調(diào)試運行在手機硬件上的應(yīng)用程序,這使得調(diào)試過程更為容易。機上調(diào)試代理可以在所有的S60 3rd 版本的設(shè)備上工作。包括在 UIQ 2nd版本 和 UIQ 3rd 版本的設(shè)備上。 1.10.2.???????????? 編譯、運行應(yīng)用程序的手機版本 在清楚這些基本的概念后,下面我們看看,如何編譯和運行GCCE版本的應(yīng)用程序: 1.?????????????? 編譯這個應(yīng)用程序的GCCE版本. 2.?????????????? 創(chuàng)建Symbian 安裝文件(.sis)。 3.?????????????? 給.sis文件簽名。 4.?????????????? 在s60手機上安裝這個sis文件。 5.?????????????? 運行該應(yīng)用程序。 首先,我們按下面的步驟,在Carbide中,編譯GCCE版本和創(chuàng)建sis文件。 1)?從菜單上選擇 Project > Properties 選項. 2)?在屬性對話框上, 點擊 C/C++ Build 3)?Configuration 下拉菜單中選擇 "S60 3.0 GCCE UREL"。 4)?點擊 OK 5)?從菜單欄上點擊 Project > Build Project 如下圖所示:

Carbide 根據(jù)工程的設(shè)置,創(chuàng)建了一個能在手機上運行的版本。如果編譯的過中沒有出錯,可以在目錄/Symbian/9.2/S60_3rd_FP1/Epoc32/release/gcce/urel中找到已經(jīng)編譯好的可執(zhí)行文件。然后,可以進(jìn)行下一步:生成sis文件。 ??? 打開工程視圖,找到sis文件夾中的 .pkg 文件,點右鍵,在彈出菜單中選擇:build PKG file。如下圖所示: 如果邊編譯的過程沒有出錯,可以在sis文件夾中找到經(jīng)過簽名的.sis文件和擴展名為.cer的證書文件和擴展名為.key的密鑰文件。這兩個文件是Carbide自動生成的。 ??? 將經(jīng)過簽名的.sis(或.sisx)文件通過USB接口下載到手機(WAP, 郵件附件, 紅外, 藍(lán)牙),然后用文件管理器安裝,如果安裝的時候沒有錯誤提示,我們就可以在手機上運行程序了。 1.10.3.???????????? 在手機上調(diào)試 在真實的手機設(shè)備上調(diào)試比在模擬器上調(diào)試更加準(zhǔn)確,而且不必使用昂貴的硬件調(diào)試設(shè)備。前面我們提到過,在手機上調(diào)試, 需要安裝調(diào)試代理,有兩不同的機上調(diào)試代理,分別為:Application TRK和System TRK ·??? Application TRK—僅僅支持應(yīng)用程序的調(diào)試。 ·??? System TRK—不但支持應(yīng)用程序的調(diào)試,還支持有限的ROM調(diào)試。設(shè)備制作商可用它來調(diào)試設(shè)備驅(qū)動程序。 現(xiàn)在,我們來看看: ????????? 如何在手機上安裝調(diào)試代理軟件 ??? 打開..Carbide/plugins/com.nokia.Carbide.trk.support_1.2.0.29/trk/s60目錄,可以看到有一個s60_3_1_app_trk_2_7.sisx文件,該文件就是調(diào)試代理(debug agent)的安裝程序,下面我們通過USB接口(或紅外、藍(lán)牙)將這個程序下載到手機上安裝。步驟如下: 1.???????? 將電腦和手機設(shè)備通過USB接口連接。 在手機識別出USB連接線后,設(shè)置手機,讓它從PC上接收文件。 1)?????? 選擇 USB Mode > File Transfer, 然后按OK鍵,這時有通知消息出現(xiàn):手機將處于離線狀態(tài)。 2)?????? 按OK 軟件鍵確認(rèn)該消息。 2.???? 將SISX 文件拷貝到MMC 卡。 3.?????? 用“安全刪除硬件”的方式斷開手機和PC 之間的USB連接。 4.?????? 在手機上,用文件管理器安裝SISX文件 ??????? 在安裝好調(diào)試軟件后,現(xiàn)在就可以開始調(diào)試程序了。 ??? PC和手機的通信接口有兩種:藍(lán)牙和USB,由于大多數(shù)的PC機中只有USB接口,下面我們就以USB連接方式來調(diào)試程序。 1.安裝最新的USB連接軟件,例如,S60設(shè)備使用的Nokia PC 套件。 2.用USB線連接Pc 和手機。 3.目標(biāo)設(shè)備被連擊后,在S60設(shè)備上,選擇PC套件作為USB連接模式。 4.下載APP TRK 或 System TRK SISX 文件到手機上。(如果在已經(jīng)下載安裝過該調(diào)試代理,這一步可省略) 5.在PC 上,打開設(shè)備管理,找到S60 手機USB的條目,如下圖所示: 記下端口號(在我們的例子中為COM5),后面我們要用到。 在手機的USB模式列表上選擇PC套件模式。然后在手機上啟動App TRK,將連接方式設(shè)置為USB,如下圖所示:

選擇“back”,然后重新啟動App TRK。 ??? 在Carbide集成開發(fā)環(huán)境上(IDE),選擇工具欄上的 調(diào)試按鈕,選擇“debug”,如下圖:   這時,會啟動一個“調(diào)試面板”,我們選擇第一項:“Symbian OS App TRK”,雙擊此項,將會生成一個啟動配置項(launch Configuration),在這個面板的右邊有一些關(guān)于調(diào)試的選項,如下圖所示:   安裝要求填寫這些配置項, 這一步比較容易,有兩點要注意的是:Connection 面板中,Serial port選擇的值(這里為com5)必須是我們前面在設(shè)備管理器中所記錄下來的值。另外,在Installation面板中,需要指明要安裝的文件,這個文件就是我們在前面生成的經(jīng)過簽名的sis文件,如下圖: 1.11.??????????? 用命令行方式編譯、運行GCCE釋放版本 下面我們以SDK自帶的helloworldbasic工程為例子,演示如何用命令行的方式來編譯和運行GCCE版本的程序。 ????????? 第一步:創(chuàng)建GCCE釋放版本: 1.?????? 打開一個命令行窗口。 2.?????? 用cd group 進(jìn)入工程的group 目錄。 3.?????? 輸入下面的命令: bldmake bldfiles。 4.???????? 再輸入:abld build gcce urel 或 abld gcce udeb (該命令產(chǎn)生手機上的調(diào)試版本)。上面的編譯腳本創(chuàng)建了一個GCCE版本的應(yīng)用程序,在下面的目錄可找到該文件: Epoc32/release/gcce/urel/ ??????? 第二步:創(chuàng)建sis文件 我們通過使用makesis工具來編譯.pkg文件得到.sis文件,在我們的例子中,該pkg文件位于例子中的 /sis目錄下。 1. 打開命令行窗口,并進(jìn)入到HelloWorldBasic.pkg 文件所在的路徑:<S60_SDK_installation_directory>/Symbian/9.2/S60_3rd_FP1/S60ex/helloworldbasic/sis 2. 輸入 makesis helloworldbasic.pkg 命令:
3. 我們可以看到,在該文件夾下生成了一個helloworldbasic.SIS 文件。 ????????? 第三步:用signsis工具為sis文件簽名 在進(jìn)行簽名之前,我們需要兩個文件:私鑰文件和自簽名證書(self signed certificate)文件。這涉及到密碼學(xué)的知識,讀者可自己參考相關(guān)著作。這里,我們用只是makekeys工具生成這兩個文件。makekeys工具在下面的目錄可找到。 <SDK_installation_directory>/Symbian/9.2/S60_3rd_FP1/Epoc32。 1.???????? 為了產(chǎn)生私鑰文件和自簽名認(rèn)證,在命令行下敲入以下命令: 運行完該命令后(可能要花幾分鐘的時間),可以看到,在該目錄下產(chǎn)生了兩個新的文件:mykey.key和mycert.cer。 2.???????? 給sis文件簽名,在命令行下敲入以下命令: ????????? 第四步:在手機上安裝sis文件。 這一步比較簡單, 僅僅將準(zhǔn)備好的sis文件下載到您的手機。這個過程可以通過不同的數(shù)據(jù)通道完成(WAP, 郵件附件, 紅外, 藍(lán)牙, USB接口), 采用何種方式,取決于您的手機。 1.12.??????????? 導(dǎo)入工程 如果symbian c++的開發(fā)者在自己的計算機上已經(jīng)有了各種各樣的symbian工程,并且用codewarrior或者命令行工具鏈編譯過該工程,他們會發(fā)現(xiàn)可以很方便地移植這些工程到Carbide.c++,不需要創(chuàng)建一個新的工程和手工插入這些源文件。Eclipse實現(xiàn)了從集成開發(fā)環(huán)境導(dǎo)入和導(dǎo)出信息的框架,并通過向?qū)韺崿F(xiàn)這個過程。Carbide.c++也實現(xiàn)了這種工具。從菜單欄選擇File->import菜單項,用戶就啟動了一個有很多選項的導(dǎo)入面板。如下圖所示: 例如:如果我們想導(dǎo)入sdk中自帶的filebrowser的例子工程,我們在導(dǎo)入面板中選擇Symbian OS Bld.inf file選項,然后點擊下一步,這時會啟動“文件導(dǎo)入向?qū)А睂υ捒?#xff0c;在對話框中輸入filebrowser工程中的bld.inf文件(通常,這個文件在group目錄中)。 然后,一直點擊“下一步”按鈕,直到這個過程結(jié)束。如果工程被成功導(dǎo)入,在左邊的工程視圖中會出現(xiàn)該工程的信息。

總結(jié)

以上是生活随笔為你收集整理的symbian系统开发教程(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。