,,http://www.bjzhda.cnzh-cn曙海教育集團(tuán)論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團(tuán)論壇Symbian 深入討論 RConnectionMonitor并用此來(lái)統(tǒng)計(jì)流量http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2064&Page=1wangxinxin2010-12-3 16:02:56今天來(lái)聊聊關(guān)于如何使用RConnectionMonitor來(lái)統(tǒng)計(jì)流量。

RConnectionMonitor被SYMBIAN封裝的受不了。

大家詳細(xì)看看OS 內(nèi)核,把好好的一個(gè)API封裝的想自殺擬的。

因?yàn)檫@種變態(tài)的封裝使得我們好多參數(shù)都得不到,郁悶之極啊。

如果我們能得到流量,并定位到指定的程序該多好啊。

哈哈。很多事情都往往......但是總是美好的瑕想。

少費(fèi)話了,看我們?nèi)绾螒?yīng)用RConnectionMonitor這個(gè)來(lái)統(tǒng)計(jì)流量吧。

我們先來(lái)看看RConnectionMonitor這個(gè)的基本用法。

假定您已經(jīng)習(xí)慣了Symbian的Observer模式。那么請(qǐng)先繼承MConnectionMonitorObserv

er吧

//初始化

void CMonitorNetWork::ConstructL()

{

TInt err = iConnMon.ConnectL();

iConnMon.NotifyEventL(*this);

}

//當(dāng)發(fā)生所有事件時(shí),都可以回調(diào)到這里

//比如新的連接,連接斷開(kāi)時(shí)都會(huì)回調(diào)

void CMonitorNetWork::EventL( const CConnMonEventBase &aEvent )

{

case EConnMonCreateConnection:

{

TUint connectionId = eventCreate->ConnectionId();

//所有的新建的連接都會(huì)回調(diào)到這里

//我們可以得到連接的索引

//那么連接的索引對(duì)于我們來(lái)說(shuō)有什么作用呢?哈哈當(dāng)然有作用。

//讓我們來(lái)看看下面的API。KDownlinkData哈哈是不是很驚喜可以得到下載的流量。

//對(duì)就是這樣的。讓我們來(lái)分析一下這個(gè)API。

//aConnectionId 連接索引,0 子連接,KDownlinkData 需要得到屬性的值,iValue所得到的值

//GetUintAttribute( aConnectionId, 0, KDownlinkData, iValue, iStatus);

}

}

//哈哈。我們搞清楚了GetUintAttribute的每一項(xiàng)是不是所有的事情都搞定了呢。

//當(dāng)然不是,在測(cè)試中發(fā)現(xiàn)有時(shí)候得不到值。

void CMonitorFlow::GetDownLinkData(TUint aConnectionId)

{

iState = EGet;

iMonitor.GetUintAttribute( aConnectionId, 0, KDownlinkData, iValue, iStatus);

SetActive();

}

//注意:在這里每1S種得到一次值,就可以得到相應(yīng)的流量值了。系統(tǒng)刷新的比較慢。我們就忍了吧。

]]>
symbian基礎(chǔ)知識(shí)---普及S60 3rd 新生入學(xué)大教堂http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2063&Page=1wangxinxin2010-12-3 15:50:46Symbian由摩托羅拉、西門(mén)子、[wiki]諾基亞[/wiki]等幾家大型移動(dòng)通訊設(shè)備商共同出資組建的一個(gè)合資公司(摩托羅拉已經(jīng)撤資),專(zhuān)門(mén) 研發(fā)手機(jī)操作系統(tǒng)的公司。而Symbian操作系統(tǒng)的前身是EPOC,而EPOC Electronic Piece of Cheese取第一個(gè)字母而來(lái)的,其原意為使用電子產(chǎn)品時(shí)可以像吃乳酪一樣簡(jiǎn)單,這就是它在設(shè)計(jì)時(shí)所堅(jiān)持的理念。Symbian 不僅僅是一個(gè)操作系統(tǒng)的名稱,而且還是一個(gè)公司、一個(gè)陣營(yíng)、一個(gè)手機(jī)壟斷聯(lián)盟的代名詞。Symbian公司成立于1987年,2 004年,Symbian集團(tuán)股權(quán)發(fā)生了一定的變化。愛(ài)立信所持股份由17.5%變?yōu)?5.6%;索尼愛(ài)立信由1.5%變?yōu)?3 .1%;諾基亞由32.2%變?yōu)?7.9%;松下由7.9變?yōu)?0.5%;Psion 由31.1%變?yōu)?.0 %;三星由5.0%變?yōu)?.5 %,西門(mén)子由4.8 %變?yōu)?.4%。摩托羅拉年在2004年賣(mài)掉了所持Symbian股份。 6 ~; a. l9 Q) i$ A6 Y8 }
Symbian類(lèi)型與版本

  Symbian開(kāi)放式的操作系統(tǒng)中,有兩種類(lèi)型,一類(lèi)用于基于掌上電腦、帶手寫(xiě)筆的智能手機(jī),代表產(chǎn)品有索尼愛(ài)立信的P80 2等,另一類(lèi)則用于HPC手機(jī),代表產(chǎn)品有諾基亞9210等。由于該操作系統(tǒng)出產(chǎn)于由摩托羅拉、西門(mén)子、諾基亞等幾家大型移動(dòng)通 訊設(shè)備商共同出資組建的一個(gè)合資公司,所以,它常用于上述廠商推出的相應(yīng)的手機(jī)上。例如我們熟悉的索尼愛(ài)立信的P802、P90 8、諾基亞7610、西門(mén)子SX1等所用的就是該操作系統(tǒng),當(dāng)然,還有夏普等廠商也推出過(guò)基于該操作系統(tǒng)的手機(jī)。   Y$ \1 I$ G9 x
Symbian按版本來(lái)分,繼2005年二月Symbian推出一款新的手機(jī)操作系統(tǒng)軟件OSv9.0,到目前為止已先后有 了6.0、6.1、7.0、7.0s、8.0、9.0幾種版本。1999年3月Symbian推出了Symbian5.0操作系 統(tǒng),它的主要內(nèi)核集合了網(wǎng)絡(luò),無(wú)線文字,電子郵件,名片薄以及個(gè)人信息助理,同時(shí)還具有支持標(biāo)準(zhǔn)網(wǎng)絡(luò)頁(yè)面的瀏覽器,配合java 語(yǔ)言的支持,使得Symbian可以運(yùn)行小型的應(yīng)用程序。不過(guò)這個(gè)版本采用的機(jī)型甚少,基本上與EPOC沒(méi)有太多的差別。

  Symbian 6.0則在5.0的基礎(chǔ)上增加了,GPRS、WAP1.2瀏覽器以及藍(lán)牙技術(shù)的支持,用戶可以運(yùn)行第三方基于C++和J2ME開(kāi) 發(fā)的程序。而Symbian 6.1則是和Symbian 6.0相比主要增加了對(duì)USB的支持。Symbian 6.0的主要特點(diǎn)是: 支持語(yǔ)音通話和數(shù)據(jù)通信 ,支持Bluetooth和WAP ,配備安全性功能(SSL,HTTPS,WTLS) ,采用16bit Unicode,支持多語(yǔ)言顯示 ,采用“PersonalJava 3.0”和“JavaPhone 1.0” 2 Y5 c5 ]) D+ u! I5 y
Symbian 7.0則支持多模式和3G手機(jī),可以讓制造商們可以面向全世界推出可以運(yùn)行于所有網(wǎng)絡(luò)之上的Symbian OS手機(jī),而且可以不對(duì)代碼進(jìn)行重大改動(dòng)的情況下就可以重新使用許多目前已有的軟件應(yīng)用。7.0包含一些新的通訊、消息、聯(lián)網(wǎng)和 應(yīng)用開(kāi)發(fā)技術(shù),并對(duì)一些與安全和認(rèn)證相關(guān)的功能進(jìn)行了改進(jìn)。Symbian OS 7.0的其他功能包括:支持靈活的用戶界面,例如Nokia的Series 60;支持幾種音頻/圖像格式和許多面向游戲開(kāi)發(fā)人員的API;全力的加密和認(rèn)證管理,基于安全通訊協(xié)議(包括HTTPS、WT LS和SSL)及認(rèn)證的應(yīng)用安裝;和Over-the-air(OTA)SyncML同步支持。

 2004年2月,Symbian在授權(quán)LG等公司的時(shí)候,發(fā)布了Symbian8 .0版本。該版本改善了實(shí)時(shí)系統(tǒng)性能,提高了原有操作系統(tǒng)的兼容能力。此外,Symbian OS 8.0的軟件工具改進(jìn)了遠(yuǎn)程接入控制系統(tǒng)功能,運(yùn)用調(diào)節(jié)裝置消除手機(jī)用戶使用增值服務(wù)時(shí)會(huì)受到的干擾。這個(gè)系統(tǒng)包含了絕對(duì)現(xiàn)代化 的多媒體和Java設(shè)備,支持多種標(biāo)準(zhǔn),其中包括JSR118, CLDC1.1 (JSR139),MobileMedia (JSR135),3D圖像數(shù)據(jù)(JSR184), JTWI 1.0 c(JSR185)。最后,新版OS還支持SDIO。

 2005年二月,英國(guó)著名手機(jī)軟件制造商Symbian推出一款新的手機(jī)操作系統(tǒng)軟件OSv9.0,它支持更高像素?cái)?shù)碼相機(jī) 與三維游戲動(dòng)畫(huà)。該操作系統(tǒng)軟件對(duì)運(yùn)行環(huán)境要求較高,目前運(yùn)行在由英國(guó)芯片開(kāi)發(fā)商ARM提供的快速處理器芯片,并且需要相關(guān)設(shè)計(jì) 與其它工具的支持來(lái)幫助手機(jī)生產(chǎn)商在開(kāi)發(fā)其它版本時(shí)能夠節(jié)約時(shí)間和降低成本。該軟件可以處理200萬(wàn)像素的數(shù)字圖片,甚至能夠向 無(wú)線耳機(jī)傳送立體聲音樂(lè),更可喜的是,它不需要同步軟件就能夠從PC上導(dǎo)出MP3文件。
S60,是基于Symbian 操作系統(tǒng),它有一個(gè)非常健全的核心——強(qiáng)大的對(duì)象導(dǎo)向系統(tǒng)、企業(yè)用標(biāo)準(zhǔn)通信傳輸協(xié)議以及完美的Sun Java語(yǔ)言。同時(shí),由于這個(gè)系統(tǒng)為第三方應(yīng)用程序開(kāi)發(fā)商提供了一個(gè)開(kāi)放、標(biāo)準(zhǔn)的開(kāi)發(fā)平臺(tái),支持kjava和C++的開(kāi)發(fā)。NO KIA7650、NOKIA3650、NOKIA6600、NOKIA7610、N-Gage和西門(mén)子SX1都是使用s60系統(tǒng) 。我們舉個(gè)通俗的例子,s40仿佛是計(jì)算機(jī)操作系統(tǒng)中的Windows,它可以安裝各種應(yīng)用軟件,但是用戶卻不能對(duì)他綁定的ie 瀏覽器或核心界面進(jìn)行修改。s60仿佛是Linux,他不但支持各種應(yīng)用軟件,還支持用戶對(duì)操作系統(tǒng)自身進(jìn)行修改,加上許多特殊 有趣的功能。

       + S" M6 t3 `0 o7 x+ n9 p; F/ A
  從Symbian OS v6.0開(kāi)始(6.0以前的版本不支持中文),共有以下幾種SDK(區(qū)別主要在界面) :
 UIQ (應(yīng)用于具有觸摸屏的手機(jī))
+ Q2 |" ~( \& C& e/ m
 Nokia Series 80(應(yīng)用于具有完整鍵盤(pán)的手機(jī))& P+ W7 Z8 L1 r4 }
  Nokia Series 90(已廢棄, Nokia 7710 原本使用它)
 另外Nokia還提供針對(duì)特定設(shè)備的SDK:
0 w& [4 F3 e! {5 p
  Nokia 7710 SDK for Symbian OS, For C++
 Nokia 9200 Communicator Series SDK

  手機(jī)操作系統(tǒng)(OS),作為連接硬件、承載應(yīng)用的關(guān)鍵平臺(tái),扮演著舉足輕重的角色。 Symbian 、 Smartphone 、Palm、 linux 四個(gè)主要操作系統(tǒng),隨著今年手機(jī)終端的不斷問(wèn)世、市場(chǎng)的不斷升溫,它們之間的征戰(zhàn)也越來(lái)越白熱化,越來(lái)越走到前臺(tái)。 操作系統(tǒng)的平臺(tái)之爭(zhēng)最后一定會(huì)落實(shí)到手機(jī)終端制造商上。盡管操作平臺(tái)廠商都使出渾身解數(shù),來(lái)吸引手機(jī)終端制造商和軟件開(kāi)發(fā)商到自 己的平臺(tái)上,但是手機(jī)市場(chǎng)瞬息萬(wàn)變,在這樣的背景下,終端廠商往往會(huì)多條腿走路,不做孤注一擲的賭博,對(duì)操作系統(tǒng)的選擇也會(huì)如此 。
1 B8 ^' j2 y- v5 B
0 V) s: t5 X# O" n, P
  在多元化的格局下,未來(lái)誰(shuí)會(huì)成為最主要的贏家,成為最大市場(chǎng)份額的擁有者,最后還是取決于市場(chǎng),取決于應(yīng)用,取決于產(chǎn)業(yè)里的 支持人氣。誰(shuí)的平臺(tái)能實(shí)現(xiàn)最多的價(jià)值,帶來(lái)更多的應(yīng)用,誰(shuí)就有可能主沉浮。目前,智能手機(jī)市場(chǎng)還屬于培育和快速發(fā)展的前期,整個(gè) 產(chǎn)業(yè)鏈上參與的廠商還在不斷豐富,這樣的時(shí)期更是充滿變數(shù)。對(duì)于消費(fèi)者來(lái)說(shuō),選好手機(jī)是首先考慮的,至于操作系統(tǒng)的不同,影響不大,看個(gè)人喜好了。
8 q; T* }. l' ]]>
PPC實(shí)在是太費(fèi)電了~換回symbian~http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2062&Page=1wangxinxin2010-12-3 15:48:28    還好有兩部手機(jī)~一部是倚天M500,一部是諾基亞N70~我現(xiàn)在去圖書(shū)館的時(shí)候都要帶這兩部手機(jī)~M500是用來(lái)學(xué)習(xí)看書(shū)的,大屏幕看書(shū)查字典很爽,而且還可以看書(shū)標(biāo)重點(diǎn),觸屏的體驗(yàn)比單純只是用實(shí)體鍵盤(pán)好得多~不過(guò)對(duì)于我來(lái)說(shuō)M500只能算是一部PDA吧~一部有超級(jí)功能的PDA~說(shuō)到打電話發(fā)短信~那就是諾基亞N70的本職了~畢竟發(fā)短信用實(shí)體鍵盤(pán)感覺(jué)相當(dāng)好~雖然M500也有touchpal或者A4打字也很快~但是在體驗(yàn)上還是比不過(guò)實(shí)體鍵盤(pán)哦~這是我個(gè)人感覺(jué)而已~
   還有說(shuō)到symbian和wm之爭(zhēng)~我覺(jué)得兩者之間是形成一個(gè)互補(bǔ)~其實(shí)我不知道我是否算得上是一個(gè)資深手機(jī)玩家~但是從我在symbian和wm的使用來(lái)說(shuō)~我覺(jué)得symbian更貼近于手機(jī)與用戶的選擇~但是假如wm能把穩(wěn)定性提高~電源管理優(yōu)化一下~我覺(jué)得那樣也會(huì)很無(wú)敵的~我真的很期望wm也有像symbian那樣穩(wěn)定省電的體驗(yàn)~那樣我就不用兩部手機(jī)隨身帶了~那樣我就可以只用帶一部windows mobile的了~呵呵~
    以上純屬個(gè)人觀點(diǎn)~歡迎各位大俠拍磚~]]>
Symbian基礎(chǔ)類(lèi)知識(shí)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2061&Page=1wangxinxin2010-12-3 15:45:30
1.1 SymbianOS的六大特性

1、操作系統(tǒng)是運(yùn)行在ROM上的
2、系統(tǒng)是運(yùn)行在電池驅(qū)動(dòng)的設(shè)備上的
3、完全是面向?qū)ο蟮?
4、基于組件的設(shè)計(jì)
5、被設(shè)計(jì)成確保用戶的數(shù)據(jù)不會(huì)丟失
6、簡(jiǎn)單的UI系統(tǒng)

Symbian 是真正的微核操作系統(tǒng),所謂“微核”,就是說(shuō)操作系統(tǒng)
只有很小的一部分是運(yùn)行在最高優(yōu)先級(jí)的,其他的功能都是以Client-
Server的方式提供。下面是Symbian系統(tǒng)的內(nèi)部結(jié)構(gòu)圖:

應(yīng)用層:Shell, OPL, 及其他應(yīng)用程序
------------------------------------------------
系統(tǒng)層:Dialogs, Menu, Toolbar, Icons, Resources, JavaVM,
Grid, Rich Text, Edit Control, List Control, Application Framework,
Jave Class Libraries.
------------------------------------------------
服務(wù)層:Window Server, Process Server, Socket Server, Sound Server,
Wireless Server, Database Server, File Server, Alarm Server, Comms
Server, 以及無(wú)線協(xié)議
------------------------------------------------
內(nèi)核:euser.dll, ekern.exe, 服務(wù)控制(supervisor server),
HAL(設(shè)備抽象層)
------------------------------------------------
驅(qū)動(dòng)程序?qū)樱喊ㄒ纛l驅(qū)動(dòng),顯示驅(qū)動(dòng),MMC驅(qū)動(dòng),鍵盤(pán)驅(qū)動(dòng),串并口驅(qū)動(dòng)
,DSP驅(qū)動(dòng),時(shí)鐘控制器驅(qū)動(dòng)等等

1.2 Symbian UI系統(tǒng)命名

使用過(guò)Symbian UI系統(tǒng)的同志們一定都聽(tīng)說(shuō)過(guò)一些奇怪的名字,比如:
Eikon, Cone, Apparc, Avkon等等,這么多kon字輩的東東到底有什么關(guān)系呢?

首先,大家要明白,在kon字輩的同志們中,Cone和Apparc是老大,其他kon們
都是從這兩個(gè)kon繼承來(lái)的。

先說(shuō)說(shuō)Cone。Cone就是Control Environment(控制環(huán)境)的縮寫(xiě)。Cone是Client
端的控制環(huán)境。這個(gè)東東定義了Graphic UI中一些基礎(chǔ)的東西,沒(méi)什么代碼,
但是是一種Design pattern

Apparc是Application Architecture的縮寫(xiě)。Application architecture定義了
Symbian應(yīng)用程序的框架。主要是定義了CApaApplication, 以及CApaDocument
這兩個(gè)類(lèi),也就是d&v結(jié)構(gòu)。然后還定義了程序啟動(dòng)以及數(shù)據(jù)控制流等等。

kon們其實(shí)就是控件組,關(guān)于控件的用法以后再說(shuō)。Series60用的是Avkon,
Series90用的是Ckon,大家可以理解為不同的kon是專(zhuān)為不同屏幕大小的手機(jī)設(shè)
計(jì)的不同的控件庫(kù)。

以Series60為例:

Avkon
-----
Eikon
-----
Uikon
-----
Cone + Apparc

===================================================
〖Symbian OS內(nèi)存管理介紹〗

在Symbain OS中內(nèi)存管理的主要任務(wù)是:如何為程序分配內(nèi)存以及如何在程序的內(nèi)部分配內(nèi)存。
Symbian OS 程序最根本和基礎(chǔ)的東西就是內(nèi)存,作為一個(gè)有限的資源,必須小心細(xì)致地處理,特別是當(dāng)有錯(cuò)誤或異常發(fā)生的時(shí)候。正是由于這樣的原因,在支持清理機(jī)制的API中,異常處理和內(nèi)存管理幾乎是綁在一起的。
Uikon核心框架使用這些支持清理機(jī)制的API來(lái)管理內(nèi)存,使GUI程序的基礎(chǔ)架構(gòu)具有良好的性能和表現(xiàn)。GUI程序還支持異常情況下內(nèi)存清理,以及調(diào)試模式下的內(nèi)存泄露檢測(cè)。

一、Symbian OS的清理機(jī)制(cleanup)
清理機(jī)制是Symbain OS 程序?qū)τ诔绦虍惓L幚淼囊环N特有方式。當(dāng)異常發(fā)生時(shí),清理機(jī)制將清理錯(cuò)誤的內(nèi)存區(qū)域。Symbian OS的清理策略和它所有類(lèi)的基類(lèi)CBase類(lèi)有著密切關(guān)系。要了解Symbian OS清理機(jī)制就必須清楚以下三個(gè)概念:異常處理(exception handling)、清理?xiàng)#╟leanup stack)以及通用清理項(xiàng)(general cleanup item)。

1、異常處理 (Exception Handling)
Symbian OS沒(méi)有使用C++的try…catch異常處理方式,而是使用了它自己所特有的方式:leave。在Symbian OS中,異常以 leave 的形式出現(xiàn),trap harness可以在程序中設(shè)置一個(gè)點(diǎn),使程序發(fā)生leave時(shí)回跳到這個(gè)點(diǎn)上,宏TRAP和TRAPD 可以在程序中設(shè)置這個(gè)點(diǎn)。調(diào)用系統(tǒng)API User 類(lèi)的一些靜態(tài)函數(shù)可以觸發(fā)Leave ,例如 User:圖片點(diǎn)擊可在新窗口打開(kāi)查看eave()方法,這就相當(dāng)于主動(dòng)地拋出異常,當(dāng)然某些系統(tǒng)函數(shù)或是用戶代碼,也有可能發(fā)生leave。

2、清理?xiàng)#–leanup Stack)
當(dāng) leave 發(fā)生時(shí),任何分配了資源的heap內(nèi)存,例如通過(guò)new()方法創(chuàng)建的對(duì)象,他們將被孤立,因?yàn)閘eave一旦發(fā)生已指向他們的指針就不存在了,這樣就導(dǎo)致了內(nèi)存泄漏。為了防止內(nèi)存泄漏發(fā)生,程序就有要記錄那些已經(jīng)被創(chuàng)建的對(duì)象,如果程序運(yùn)行發(fā)生leave,那么系統(tǒng)可以自動(dòng)找到并清理他們所占用的內(nèi)存。這些工作可以通過(guò)清理?xiàng)?lái)完成。CleanupStack類(lèi)是支持清理?xiàng)5囊粋(gè)類(lèi)。GUI應(yīng)用程序擁有一個(gè)由應(yīng)用程序框架所提供的清理?xiàng)#渌膽?yīng)用程序必須用CTrapCleanup 類(lèi)自己構(gòu)建一個(gè)清理?xiàng)!?br/>
3、通用清理項(xiàng)(General Cleanup Item)在默認(rèn)情況下,清理?xiàng)V惶幚砟切?CBase-based 類(lèi)(也就是它所處理的類(lèi)必須是由 CBase類(lèi)繼承下來(lái)的)和那些untyped 類(lèi)型對(duì)象(用一個(gè)簡(jiǎn)單的內(nèi)存釋放語(yǔ)句就可以釋放的對(duì)象)。通用清理項(xiàng)(General Cleanup Item)使其他類(lèi)型的對(duì)象也可以放到清理?xiàng)V小CleanupItem類(lèi)是支持通用清理項(xiàng)的一個(gè)類(lèi)。

二、Symbian OS的內(nèi)存分配
內(nèi)存分配管理的目的在于 能夠使Symbian OS 進(jìn)程通過(guò)底層函數(shù)訪問(wèn)和操縱內(nèi)存區(qū)域。絕大多數(shù)的客戶端程序不需要直接使用這些函數(shù),那些在進(jìn)程間共享內(nèi)存區(qū)域以及在一個(gè)進(jìn)程的線程間共享內(nèi)存區(qū)域的程序會(huì)使用這些底層函數(shù)來(lái)管理內(nèi)存。這里有兩個(gè)概念需要了解 chunk(塊) 和 heap(堆)。
1、Chunk(塊)chunk 是一組線性相鄰的內(nèi)存地址在RAM 中的映射。進(jìn)程創(chuàng)建以后,它的地址空間包括1到3個(gè)chunk:
(1)stack/heap chunk:這里包括了進(jìn)程的主線程所要使用的stack 和 heap。所以這個(gè)chunk 通常是進(jìn)程所必須的。
(2)code chunk:這個(gè)chunk 只有當(dāng)進(jìn)程被加載到RAM時(shí)才出現(xiàn)。
(3)data chunk:只有當(dāng)進(jìn)程擁有靜態(tài)數(shù)據(jù)的時(shí)候才會(huì)有這個(gè)chunk。

當(dāng)然,程序可以還創(chuàng)建額外的chunk。 一個(gè)全局的chunk可以被其他進(jìn)程訪問(wèn),這樣就實(shí)現(xiàn)了大量?jī)?nèi)存的共享。RChunk 類(lèi)提供了對(duì)chunk的支持。TFindChunk 類(lèi)可以用來(lái)查找其他進(jìn)程創(chuàng)建的全局chunk。

2、Heap(堆)
heap 通常用于顯式的動(dòng)態(tài)內(nèi)存分配 。Symbian OS定義了C++中new操作符創(chuàng)建對(duì)象到當(dāng)前線程的heap中。Heap的功能可以是:
?監(jiān)控內(nèi)存泄漏:對(duì)于一個(gè)GUI程序來(lái)說(shuō),這個(gè)是經(jīng)常發(fā)生的。
?在同一進(jìn)程的線程間進(jìn)行共享。
?在單元一級(jí)上進(jìn)行訪問(wèn)和操作。
RHeap類(lèi)提供了對(duì)heap的支持。如果heap 是當(dāng)前線程的 heap,那么使用等價(jià)系統(tǒng)靜態(tài)方法API 的User 類(lèi) 將更加方便。這些系統(tǒng)靜態(tài)方法API 同樣也提供了宏來(lái)管理內(nèi)存,以防止內(nèi)存泄漏。

三、進(jìn)程和地址空間
Symbian OS 的程序可以包含若干進(jìn)程,每個(gè)進(jìn)程包含若干在概念上并發(fā)執(zhí)行的線程。每一個(gè)用戶進(jìn)程都有他自己私有的地址空間。一個(gè)用戶進(jìn)程不可以直接訪問(wèn)另外一個(gè)用戶進(jìn)程的地址空間。進(jìn)程包括若干線程,他們運(yùn)行在進(jìn)程的特權(quán)級(jí)。
Kernel 進(jìn)程是一個(gè)比較特殊的進(jìn)程,它的線程運(yùn)行在超級(jí)訪問(wèn)者級(jí)別,這個(gè)進(jìn)程通常包括兩個(gè)線程。
Kernel server 線程:是一個(gè)原始的進(jìn)程,在系統(tǒng)啟動(dòng)時(shí)就已經(jīng)存在。它可以在heap執(zhí)行核心函數(shù)請(qǐng)求的內(nèi)存分配或重新分配。
null 線程:當(dāng)系統(tǒng)中沒(méi)有其他可運(yùn)行的線程時(shí)這個(gè)線程就開(kāi)始運(yùn)行,null 線程使處理器處于空閑狀態(tài),減少耗電

線程的地址空間包括若干chunk,在剛創(chuàng)建的時(shí)候,進(jìn)程只有一個(gè)線程和1到3個(gè)chunk。如果進(jìn)程創(chuàng)建了新的線程,那么一個(gè)新的chunk將被創(chuàng)建被分配給這個(gè)線程。每一個(gè)chunk都包括一個(gè)了stack,如果線程沒(méi)有共享當(dāng)前heap,那么在chunk中也將包括heap。

四、Chunks(塊)
Chunk 把RAM映射到一個(gè)連續(xù)的虛擬地址。一個(gè)chunk中包括了一個(gè)保留區(qū)(reserved region)和和委托區(qū)(committed region)。保留區(qū)是一個(gè)連續(xù)的虛地址區(qū)域,它的大小可能是整個(gè)chunk的大小。在委托區(qū)中存放了真正映射到RAM的地址。chunk的大小是可以被動(dòng)態(tài)修改的,允許委托區(qū)也可以修改大小,他的范圍是從0一直到保留區(qū)大小,是處理器頁(yè)面大小的整數(shù)倍。這樣,就允許進(jìn)程獲得更多的內(nèi)存空間。通常,委托區(qū)起始地址位于保留區(qū)底部。另外還可以創(chuàng)建 double-ended chunk ,那么委托區(qū)將是保留區(qū)的任意連續(xù)子集,他的大小也是處理器頁(yè)面大小的整數(shù)倍,這種Chunk的委托區(qū)可以有兩個(gè)頂端和底端,并且它們的大小也是可變的。
在chunk創(chuàng)建時(shí)可以指定chunk的最大空間,保留區(qū)大小應(yīng)該小于這個(gè)最大值。.盡管這樣,如果保留區(qū)請(qǐng)求比當(dāng)前chunk更大的空間,那么chunk可以被重新分配空間,以允許保留區(qū)擴(kuò)大。保留區(qū)可以擴(kuò)大到撐滿整個(gè)chunk.。

Local chunks(本地 chunk)
如果一個(gè)chunk對(duì)于創(chuàng)建它的進(jìn)程是私有的,不允許被其他用戶進(jìn)程訪問(wèn),那么那么這個(gè)chunk就是本地chunk,本地chunk是沒(méi)有名字的。

Global chunks(全局chunk)
如果一個(gè)chunk可以被其他進(jìn)程訪問(wèn),那么這個(gè)chunk就是全局chunk。全局chunk是有名字的,這樣,進(jìn)程可以根據(jù)chunk的名字來(lái)訪問(wèn)他們。當(dāng)進(jìn)程打開(kāi)一個(gè)全局chunk的時(shí)候,他把chunk映射到自己的地址空間,這樣就可以對(duì)chunk進(jìn)行直接訪問(wèn)和數(shù)據(jù)共享了。如果已經(jīng)知道了chunk的名稱,那么使用 RChunk::OpenGlobal() 可以直接打開(kāi)chunk.。如果只知道了chunk的部分名字,那么可以使用帶 TFindChunk 型參數(shù)的 RChunk::Open()方法來(lái)打開(kāi)chunk.。

五、Heaps(堆)

Each thread has a chunk which contains that thread's program stack. For the main thread of a process, this chunk also contains the thread's heap. A program's request for memory is allocated from this heap. For example, a code fragment such as:

每一個(gè)線程都有一個(gè)包含了自身程序棧(program stack)的chunk。.對(duì)于進(jìn)程的主線程來(lái)說(shuō),這個(gè)chunk中同樣也包含了線程heap。程序?qū)τ趦?nèi)存的請(qǐng)求都是從這個(gè)heap的地址空間來(lái)分配的,例如有以下代碼:

CArrayFixFlat<...>* fixflat;
...
fixflat = new (ELeave) CArrayFixFlat<...>(3);

程序請(qǐng)求了heap中部分的內(nèi)存地址,并把地址返回給調(diào)用者。請(qǐng)求heap中的內(nèi)存必須是顯式的,同樣,釋放這些內(nèi)存時(shí)也必須進(jìn)行顯式調(diào)用。

Structure of a heap(heap 結(jié)構(gòu))
heap包括兩個(gè)單元列表。一個(gè)是已經(jīng)分配的內(nèi)存單元列表,一個(gè)是還未分配的內(nèi)存單元列表。兩個(gè)列表都在heap對(duì)象上。內(nèi)存單元由單元頭和單元體組成,單元體實(shí)際上就是一個(gè)內(nèi)存區(qū)。單元頭是在e32std.h 中定義的 RHeap::SCell 結(jié)構(gòu)體,他是RHeap類(lèi)的一部分。

如何共享heap
heap通常被同一個(gè)進(jìn)程的線程所共享當(dāng)一個(gè)線程創(chuàng)建時(shí):
?它可以和父線程使用同一個(gè)heap。
?父線程同時(shí)為新線程創(chuàng)建一個(gè)新的heap。
?新線程使用系統(tǒng)為它創(chuàng)建的heap。
這里,只有第一和第二中情況可以認(rèn)為是heap的共享。]]>
Symbian--Series60系列平臺(tái)基礎(chǔ)知識(shí)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2060&Page=1wangxinxin2010-12-3 15:41:3660系列平臺(tái)是一個(gè)智能電話軟件工具包,設(shè)備制造商可以通過(guò)授權(quán)在自己的智能電話硬件中使用這個(gè)平臺(tái)。設(shè)備制造商可以使用標(biāo)準(zhǔn)的60系列軟件,但一般情況下他們會(huì)提出需求來(lái)定制60系列軟件。60系列完全使用圖形化用戶界面,并且包括方方面面的無(wú)線應(yīng)用程序。
2. 60系列是基于何種技術(shù)建立的?
Symbian OS是有針對(duì)性的操作系統(tǒng),它是多種移動(dòng)設(shè)備的選擇,是構(gòu)建60系列平臺(tái)的底層系統(tǒng)。60系列使用Symbian OS 6.1版。
3. 用戶界面的主要特性有哪些?
60系列的用戶界面(User Interface ,UI) 為方便單手使用而特別設(shè)計(jì)。它具有一個(gè)大尺寸的顯示屏(176x208像素),有利于明晰的界面設(shè)計(jì);它還擁有一個(gè)直觀的鍵盤(pán)布局(一套功能鍵組合、一些專(zhuān)用鍵,以及一個(gè)五方向?qū)Ш芥I),使用戶能使用拇指來(lái)選擇各項(xiàng)功能。
4. 與60系列平臺(tái)一起供應(yīng)的應(yīng)用軟件有哪些?
60系列平臺(tái)上已經(jīng)有多種應(yīng)用軟件。其中重要的有:各種先進(jìn)的智能電話應(yīng)用、個(gè)人信息管理應(yīng)用(Personal Information Management ,PIM, 如電話簿、日程安排表、照相冊(cè)等)、信息同步(SyncML)應(yīng)用、消息應(yīng)用、瀏覽應(yīng)用、電子郵件應(yīng)用,以及能讓用戶通過(guò)個(gè)人電腦連接特性或無(wú)線空中下載方式向平臺(tái)添加或刪除應(yīng)用程序的安裝引擎等。
5. 瀏覽器能做些什么?
60系列平臺(tái)上使用的瀏覽器符合WAP 1.2.1標(biāo)準(zhǔn),并支持通用分組無(wú)線業(yè)務(wù)(General Packet Radio Service ,GPRS)連接。它具備增強(qiáng)的安全特性和WTAI (Wireless Telephony Application Interface,無(wú)線電話應(yīng)用接口),同時(shí)還支持WAP推送服務(wù)。60系列的大屏幕有助于表現(xiàn)深具吸引力的彩色內(nèi)容,并提供方便的瀏覽導(dǎo)航功能。
中文版本1.0 2003年1月
關(guān)于60系列平臺(tái)的一般常見(jiàn)問(wèn)題解答
6. 消息收發(fā)的功能選項(xiàng)有哪些(簡(jiǎn)介)?
60系列平臺(tái)既提供短消息服務(wù)(Short Messaging Service ,SMS),也提供多媒體消息服務(wù)(Multimedia Messaging Service ,MMS)。同時(shí)它還支持智能短消息(is Smart Messaging)和電子郵件(POP3/IMAP4)服務(wù)。所有這些服務(wù)特性一般情況下可以通過(guò)消息應(yīng)用來(lái)獲取。
7. 如何啟動(dòng)一項(xiàng)應(yīng)用?
對(duì)‘菜單(Menu)’鍵的短暫按擊將導(dǎo)出“應(yīng)用”窗口。如要啟動(dòng)某項(xiàng)應(yīng)用,可以導(dǎo)航到該應(yīng)用圖標(biāo)并選中該圖標(biāo)。
8. 如何使用應(yīng)用切換器?
對(duì)‘菜單(Menu)’鍵的長(zhǎng)按擊將導(dǎo)出應(yīng)用切換窗口,該窗口顯示當(dāng)前正在運(yùn)行的應(yīng)用的圖標(biāo)列表。用戶可以選擇一個(gè)圖標(biāo),設(shè)備就會(huì)切換到那個(gè)應(yīng)用。
9. 有哪些通信技術(shù)手段?
電話、多媒體消息(MMS)、短消息(SMS)、(無(wú)線應(yīng)用協(xié)議)WAP、電子郵件、紅外、傳真,及智能短消息等技術(shù)。
10. WAP推送能提供些什么?
WAP推送被用來(lái)向設(shè)備發(fā)送存在于某條消息中的鏈接。當(dāng)用戶收到一條WAP推送消息(與一條SMS相似)時(shí),他可以打開(kāi)這條消息并選擇裝載服務(wù)。結(jié)果是:用戶被連接到了某個(gè)WAP頁(yè)面。
11. MMS有何功能?
多媒體消息(Multimedia Messaging Service,MMS)在概念上類(lèi)似于短消息服務(wù)(SMS),它同樣使用“存儲(chǔ)轉(zhuǎn)發(fā)”服務(wù)模式,但其通過(guò)數(shù)據(jù)通道遞送的內(nèi)容卻豐富得多
中文版本1.0 2003年1月
關(guān)于60系列平臺(tái)的一般常見(jiàn)問(wèn)題解答(如圖片和音頻剪輯等)。SMS主要在移動(dòng)終端之間傳送消息,而MMS卻允許各種Web應(yīng)用和移動(dòng)設(shè)備進(jìn)行通信,它也支持互聯(lián)網(wǎng)和移動(dòng)終端之間的雙向通信。MMS還可用于各種高級(jí)服務(wù)器應(yīng)用,以便向移動(dòng)終端推送豐富的內(nèi)容。
12. 有那些開(kāi)發(fā)技術(shù)?
Java? -如果需要開(kāi)發(fā)跨平臺(tái)、可下載的應(yīng)用,那么J2ME?/MIDP技術(shù)是理想的選擇。
C++ - 用于開(kāi)發(fā)各種Symbian OS應(yīng)用,這類(lèi)應(yīng)用往往需要全面的API調(diào)用(調(diào)用所有的智能電話特性或其它各類(lèi)高性能的應(yīng)用程序)。
用于內(nèi)容瀏覽的各類(lèi)瀏覽應(yīng)用(WAP使用WML或更新版本的XHTML/CSS)
消息技術(shù)– SMS、MMS以及使用IMAP4/POP3協(xié)議的電子郵件技術(shù)。
13. 有哪些開(kāi)發(fā)工具?
Series 60 SDK for Symbian OS.
Series 60 SDK for Java? MIDP.
Series 60 SDK for MMS.
14. 什么是Java? MIDP?
Java移動(dòng)信息設(shè)備描述(Java Mobile Information Device Profile,MIDP)建立于Java 2 Micro Edition (J2ME?)核心平臺(tái)之上,并使用有限連接設(shè)備配置(Limited Device Configuration ,CLDC)。它擁有一套經(jīng)過(guò)縮減的API,用于諸如移動(dòng)電話這樣的小型設(shè)備。
15. 用何種集成開(kāi)發(fā)環(huán)境(IDE)來(lái)進(jìn)行Java開(kāi)發(fā)?
“60系列Java MIDP SDK”工具針對(duì)Java開(kāi)發(fā),其中包括一個(gè)60系列模擬器。可以方便地將該模擬器與Borland JBuilder 6.0?、Borland JBuilder MobileSet 2.0? 及Sun Forte for Java 3.0?/Sun ONE Studio 4等進(jìn)行集成。
中文版本1.0 2003年1月
關(guān)于60系列平臺(tái)的一般常見(jiàn)問(wèn)題解答
16. 60系列MMS模擬器有什么作用?
60系列MMS模擬器幫助用戶在基于PC的圖形化環(huán)境中創(chuàng)建各種消息以測(cè)試MMS的方方面面特性。
17. C++開(kāi)發(fā)伙伴可以得到什么支持?
通過(guò)C++為60系列平臺(tái)創(chuàng)建各種應(yīng)用的開(kāi)發(fā)伙伴可以利用Symbian OS 6.1應(yīng)用編程接口(API),60系列用戶界面庫(kù)和眾多的應(yīng)用引擎(如照相冊(cè)等)。
各種Symbian OS API提供了對(duì)大多數(shù)技術(shù)的支持,這些技術(shù)包括:藍(lán)牙、圖形、紅外、多媒體、消息、網(wǎng)絡(luò),及電話技術(shù)等。
60系列軟件開(kāi)發(fā)工具包(Series 60 Software Development Kit ,SDK)包括:60系列應(yīng)用編程接口、用于測(cè)試目的的60系列模擬器、各種范例應(yīng)用程序、文檔及一個(gè)應(yīng)用向?qū)Аi_(kāi)發(fā)環(huán)境是微軟的Visual C++ 6.0。
18. 開(kāi)發(fā)伙伴如何向設(shè)備裝載Symbian OS (C++)應(yīng)用?
各種Symbian應(yīng)用必須被打包并以安裝文件(.sis)的形式發(fā)送。可以通過(guò)PC連接(藍(lán)牙,IrDA紅外等)或一個(gè)WAP瀏覽器將這些應(yīng)用下載到某個(gè)60系列設(shè)備。
19. 在這個(gè)平臺(tái)上開(kāi)發(fā)的業(yè)務(wù)模式是什么?
在這個(gè)標(biāo)準(zhǔn)多多的行業(yè)中,60系列平臺(tái)就屏幕尺寸、輸入方式、應(yīng)用編程接口和用戶界面庫(kù)提出了標(biāo)準(zhǔn)化規(guī)范。60系列平臺(tái)廣泛整合了各種支持技術(shù)和開(kāi)發(fā)選項(xiàng),從而具備了為應(yīng)用設(shè)計(jì)者和開(kāi)發(fā)者開(kāi)發(fā)可移植的,創(chuàng)新的應(yīng)用所需的所有特性。
20. 設(shè)備定制功能有哪些?
比起傳統(tǒng)的移動(dòng)電話來(lái),60系列提供了更廣泛的定制能力。除了圖標(biāo)、標(biāo)記、墻紙和鈴音的定制,用戶還可以通過(guò)諸如下載新應(yīng)用、改變菜單網(wǎng)格中的應(yīng)用順序,以及定義60系列電話處于待機(jī)狀態(tài)時(shí)的功能鍵特性等手段對(duì)其手機(jī)進(jìn)行定制。
中文版本1.0 2003年1月
關(guān)于60系列平臺(tái)的一般常見(jiàn)問(wèn)題解答60系列平臺(tái)還向60系列的被授權(quán)方提供了極其靈活的定制能力。由于60系列源代碼開(kāi)放的本質(zhì),移動(dòng)電話制造商可以生產(chǎn)這樣的設(shè)備:它與60系列完全兼容,同時(shí)又具備自己獨(dú)特的風(fēng)格和外觀。
21. 60系列平臺(tái)的硬件需求是什么?
需要下列的輸入硬件:兩個(gè)功能鍵、五方向?qū)Ш芥I、12鍵組成的數(shù)字鍵盤(pán),一些指示鍵(“發(fā)送”鍵、“結(jié)束”鍵、“清除”鍵、“ABC”鍵(對(duì)應(yīng)文本編輯選項(xiàng)的彈出菜單))以及“菜單”鍵(用于啟動(dòng)各種應(yīng)用程序)。
屏幕必須具備176x208像素分辨率,并最少支持256色。
建議設(shè)備使用32位ARM處理器。
ROM大小不低于16MB,而RAM大小不低于8MB。

愛(ài)上大S,夸夸岳母Symbian
 用了一段時(shí)間的大S后,發(fā)現(xiàn)自己越來(lái)越愛(ài)上她了,為了將來(lái)的幸福,特意去研究了一下Symbian(岳母大人 ;-DD),不敢獨(dú)享,特報(bào)告如下:
  在說(shuō)Symbian之前,先說(shuō)說(shuō)她的前身EPOC(Electronic Piece of Cheese/使用電子產(chǎn)品時(shí)可以像吃乳酪一樣簡(jiǎn)單,未婚之前的名字 ;-DD),在演進(jìn)到第五版后正式更名為Symbian。EPOC首次在中國(guó)亮相是在2000年Ericsson的R380sc身上,由于其超前的規(guī)格和功能(那時(shí)就支持Wap和手寫(xiě)),當(dāng)時(shí)曾經(jīng)引發(fā)了國(guó)內(nèi)愛(ài)機(jī)迷的深度關(guān)切(區(qū)區(qū)不才,也混入其中),直道現(xiàn)在R380sc都還在愛(ài)機(jī)迷的收藏范圍。其實(shí)在這之前歐洲就有了不少EPOC的產(chǎn)品,只是在中國(guó)不被關(guān)注而已,如Psion(國(guó)內(nèi)很少資料的公司,Symbian 的 EPOC 最早由 Psion 開(kāi)發(fā),現(xiàn)在仍是Symbian的主要股東之一)就出過(guò)好幾款專(zhuān)用設(shè)備(應(yīng)該算手持電腦類(lèi)吧),那個(gè)時(shí)候EPOC已經(jīng)開(kāi)始冠上了Symbian EPOC的名字了,而在手機(jī)極度發(fā)達(dá)和追求新功能的日本,也是從99年開(kāi)始就對(duì)EPOC表示了強(qiáng)烈的興趣。
  但是由于第一個(gè)嘗試將Symbian EPOC用在手機(jī)上的Ericsson市場(chǎng)操作能力和R380sc(包括其CeBIT 2000上推出的Communicator Platform樣機(jī)后流產(chǎn)和MC218手機(jī)套件的不得志)批量生產(chǎn)一度后推,等他上市的時(shí)候,暫時(shí)失去了應(yīng)有的光環(huán),然后她那天下一統(tǒng)的思路(手機(jī)+PDA)還是得到了業(yè)內(nèi)的一致認(rèn)可。加上Psion從進(jìn)軍職能手機(jī)市場(chǎng)開(kāi)始,就把Symbian EPOC定性為開(kāi)放源碼的平臺(tái)(這點(diǎn)跟Linux一樣),但是他收取使用廠商的授權(quán)費(fèi)用,而且各個(gè)廠商都可以根據(jù)要求提出修改意見(jiàn),正是這樣,才使得EPOC趨于完美,吸引了Ericsson、Nokia、Motorola、philphs、Matsushita(松下子公司) 等公司建立了Symbian聯(lián)盟(目前手機(jī)屆5個(gè)老大都是該聯(lián)盟的成員),一同攜手將Symbian電話推出市場(chǎng),出現(xiàn)了現(xiàn)在Symbian到處開(kāi)花的局面。 現(xiàn)在獲得Symbian系統(tǒng)授權(quán)的廠商有愛(ài)立信、建伍、摩托羅拉、諾基亞、松下、Psion、三洋、西門(mén)子、三星和索尼等。
  得益于Symbian的開(kāi)源和開(kāi)放,Symbian甚至獲得了IT巨頭IBM和Sun的關(guān)注,所以在第5版開(kāi)始就率先在手機(jī)上實(shí)現(xiàn)了Java虛擬機(jī),為Symbian再次注入了強(qiáng)心劑!使得在其上的開(kāi)發(fā)投入獲得了進(jìn)一步的保證(移植能力),接下來(lái)與PC巨頭IBM合作(2000年2月)無(wú)線企業(yè)應(yīng)用,使得2000年成為Symbian初露鋒芒,成為CeBIT 2000的一大亮點(diǎn)。各個(gè)廠商更是磨拳擦掌,躍躍欲試,當(dāng)年就定下了Symbian今后的三大發(fā)展方向:分別用于智能手機(jī)、筆式輸入通訊器和鍵盤(pán)輸入通訊器。三種產(chǎn)品的開(kāi)發(fā)代號(hào)分別為Pearl(珍珠),Quartz(石英)和Crystal(水晶)。每種系列都采用Symbian核心平臺(tái)80%的代碼。不同系列之間的區(qū)別主要在于用戶接口(例如:筆式或鍵盤(pán)式輸入)和屏幕大小。
  下面我們來(lái)看看Symbian到底有什么長(zhǎng)處,值得大家為此去付出。Psion在進(jìn)軍智能手機(jī)之前是PDA的研發(fā)公司,所以至今Symbian還有著PDA的特點(diǎn),加上前面提到的三個(gè)發(fā)展方向,在使用80%核心代碼的情況下各自發(fā)展,所以在很多技術(shù)上面是都有著人有我優(yōu),人無(wú)我優(yōu)的特點(diǎn),必將成為2.5G和3G當(dāng)之無(wú)愧的主流,主要優(yōu)勢(shì)總結(jié)如下:
    * 開(kāi)放和開(kāi)源,這點(diǎn)于Linux有著異曲同工的妙處,從目前Linux的技術(shù)發(fā)展就能看到;
    * 逐步完善的C++ API編程支持,使得整個(gè)系統(tǒng)的開(kāi)發(fā)完全建立在C++高效和高能上;
    * 非常健全的核心-強(qiáng)大的對(duì)象導(dǎo)向系統(tǒng)、企業(yè)用標(biāo)準(zhǔn)通信傳輸協(xié)議以及完美的sun java語(yǔ)言;
    * 設(shè)備間靈活的移植能力,除了Java應(yīng)用本身的移植能力以外,基于C++的程序大部分也能在設(shè)備間公用;
    * 同其他同等硬件條件的系統(tǒng)來(lái)比,具有不管是低階的多工和高階的使用界面來(lái)看都具有快速的數(shù)據(jù)存取能力,
    * 經(jīng)濟(jì)地使用電池,低電源和斷點(diǎn)的保護(hù)能力強(qiáng);
    * 在小型的裝置上擁有強(qiáng)大支持網(wǎng)絡(luò)、通信、無(wú)線連接等開(kāi)放和兼容能力;
    * 底層支持國(guó)際統(tǒng)一文字編碼Unicode。
  說(shuō)完優(yōu)點(diǎn),再來(lái)說(shuō)說(shuō)缺點(diǎn)吧: Symbian只做操作系統(tǒng),不提供用戶界面的做法讓手機(jī)廠商頭痛,一般情況下手機(jī)廠商目前只能搭配著接受Nokia的Series系列界面,而Nokia的野心、在陣營(yíng)中的霸氣(正準(zhǔn)備買(mǎi)下郁郁不得志的Psion擁有之股份 )過(guò)早暴露使得其他手機(jī)廠商心猿意馬,比如西門(mén)子開(kāi)始使用M$的平臺(tái)、Moto開(kāi)始用Linux、而三星干脆所以平臺(tái)全上(CE、Palm、Linux),而Sony Ericsson干脆自己做起UIQ界面(基于Quartz),使得陣營(yíng)不穩(wěn)定,影響了消費(fèi)者的信心。
  最后,作為補(bǔ)充,針對(duì)很多N迷一直把Symbian硬說(shuō)為N的產(chǎn)品,下面引用Nokia網(wǎng)站的原文,看看他對(duì)Symbian的解釋?zhuān)?br/>  “Symbian的EPOC技術(shù)為諸如通信器和智能電話的無(wú)線信息設(shè)備的OEM廠商提供全套解決方案。Symbian為愛(ài)立信、Matsushita、摩托羅拉、諾基亞和Psion公司所有,致力于推廣用于無(wú)線信息設(shè)備與無(wú)線網(wǎng)絡(luò)、內(nèi)容服務(wù)、信息處理的交互式運(yùn)作和企業(yè)整體解決方案的標(biāo)準(zhǔn)。總部設(shè)在倫敦,并在日本東京和Kanazawa、瑞典Ronneby、英國(guó)劍橋和美國(guó)舊金山灣地區(qū)設(shè)有辦事處。它的股份為愛(ài)立信、Mitrushita、摩托羅拉、諾基亞和Psion公司所持有。公司網(wǎng)址:www.symbian.com
  “Symbian和EPOCS標(biāo)志是Symbian公司的商標(biāo)貨注冊(cè)商標(biāo)。所有其他商標(biāo)和注冊(cè)商標(biāo)是其各自所有者的法律財(cái)產(chǎn)。”
----原文引自:http://www.nokia.com.cn/news/news990526.html
Java知識(shí)問(wèn)答
什么是 Java 虛擬機(jī)?
JJava 虛擬機(jī)是一個(gè)解釋程序,它可以解釋執(zhí)行網(wǎng)上下載的符合 Java 二進(jìn)制標(biāo)準(zhǔn)的應(yīng)用程序, Sun 公司把 Java 虛擬機(jī)分成三個(gè)檔次,企業(yè)版用于服務(wù)器( J2EE ),標(biāo)準(zhǔn)版用于臺(tái)式機(jī) (J2SE) ,微型版用于嵌入式設(shè)備 (J2ME) 。其中,微型版中的 K-Java 虛擬機(jī)主要用于手機(jī)和 PDA 。
什么是 Java 2 平臺(tái)微型版( J2ME ) ?
Java 2 平臺(tái)微型版( J2ME )是 Java 2 平臺(tái)的一種,這個(gè)程序的目標(biāo)平臺(tái)是消費(fèi)電子和嵌入式設(shè)備。 J2ME 技術(shù)包括一個(gè)虛擬機(jī)和一組適合消費(fèi)和嵌入式電子設(shè)備的運(yùn)行環(huán)境的經(jīng)過(guò)剪裁的 API 。 J2ME 目前提供了兩套配置( Configuration ),即 CLDC 和 CDC 。其中 CLDC 用于手機(jī),與 MIDP 配合使用。
什么是 J2ME 的配置( Configuration ) ?
J2ME 技術(shù)有兩個(gè)設(shè)計(jì)重點(diǎn),應(yīng)用程序以及如何將這個(gè)應(yīng)用程序放在一個(gè)使用環(huán)境中。不同的應(yīng)用程序和不同的使用環(huán)境對(duì)虛擬機(jī)和底層 API 有不同的要求。目前有兩種配置( Configuration ),一種適合那些能夠給予 Java 應(yīng)用程序運(yùn)行 128 - 512K 內(nèi)存的設(shè)備,簡(jiǎn)稱 CLDC ( Connected Limited Device Configuration ),另一種適合那些能夠給予 Java 應(yīng)用程序運(yùn)行 512K 以上的設(shè)備 (Connected Device Configuration) 。配置( Configuration )具有蘊(yùn)含關(guān)系,即在比較苛刻的配置( Configuration )上運(yùn)行的應(yīng)用程序可以在比較寬松的配置( Configuration )上運(yùn)行,反過(guò)來(lái)不行。
目前有兩個(gè)標(biāo)準(zhǔn) CLDC 1.0 ( JSR 30 )和 CLDC 1.1(JSR 139) , CLDC 1.1 兼容 CLDC 1.0 。
什么是 Profile?
Profile 是一個(gè)運(yùn)行環(huán)境規(guī)格說(shuō)明書(shū),詳細(xì)定義 Java 應(yīng)用程序接口( API ),這些 API 與所定義的配置( Configuration )相適應(yīng),這些 API 在為一種特定的設(shè)備提供完備運(yùn)行環(huán)境時(shí)是必須的。 Profile 既指定 API ,也要基于特定的配置( Configuration )。所謂一個(gè) Profile 必須是完備的是指:按照規(guī)格說(shuō)明書(shū)編寫(xiě)的應(yīng)用程序在指定的運(yùn)行環(huán)境中運(yùn)行時(shí)不需要任何其他 Java 類(lèi)。制作 Profile 的過(guò)程可以被認(rèn)為是從一個(gè)比較大的 API 列表中挑選出一組 API, 從而形成完備運(yùn)行環(huán)境的過(guò)程。通過(guò)設(shè)計(jì)和集成 Profile 總是可以滿足不同設(shè)備的需求。
什么是 MIDP ?
MIDP(Mobile Information Device Profile) 是移動(dòng)信息設(shè)備專(zhuān)用的 Profile 。它基于 CLDC ,是今天各種移動(dòng)信息設(shè)備(尤其是手機(jī))的 Java 運(yùn)行環(huán)境。 MIDP 提供了移動(dòng)應(yīng)用所需的核心應(yīng)用功能,包括:用戶接口,網(wǎng)絡(luò)連接、本地?cái)?shù)據(jù)存儲(chǔ)以及應(yīng)用程序的生命期管理,是一個(gè)打包的標(biāo)準(zhǔn) Java 運(yùn)行環(huán)境 API 集合。
MIDP 有兩個(gè)標(biāo)準(zhǔn),一個(gè)是 1.0(JSR37) ,這個(gè)標(biāo)準(zhǔn)雖然發(fā)布時(shí)間比較長(zhǎng)了,但是仍然是主流,比較新的標(biāo)準(zhǔn)是 2.0(JSR118) ,這個(gè)標(biāo)準(zhǔn)主要是解決安全機(jī)制標(biāo)準(zhǔn)化問(wèn)題(把 http 變成了 https ,增加了 SSL 安全協(xié)議層),另外增加了一部分多媒體功能以及游戲的鍵盤(pán)支持等。
MIDP 2.0和MIDP 1.0之間的區(qū)別是什么?
&#8226; 增強(qiáng)用戶接口
GUI 中的彈出 ChoiceGroup 的當(dāng)前選擇有了視覺(jué)提示。
GUI 中的 Item 有了它自己的命令集。
GUI 中的 Alert Screen 有了抽象命令( Abstract Command )。
布局( Layout )功能更靈活了。
&#8226; 媒體支持

]]>
開(kāi)發(fā)者談諾基亞Symbian裁員http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2059&Page=1wangxinxin2010-12-3 15:36:21g b!@#R Pc3u   新CEO上任前諾基亞原本的計(jì)劃
^t[/qGug(l^%T   作為移動(dòng)市場(chǎng)的老大,諾基亞本來(lái)一直有自己平穩(wěn)發(fā)展的計(jì)劃,但在最近幾年iPhone和Android等手機(jī)的創(chuàng)新攻勢(shì)下,諾基亞的手機(jī)顯得毫無(wú)新意,特別在用戶體驗(yàn)和應(yīng)用軟件方面落后于人,盡管幾次調(diào)整戰(zhàn)略,諾基亞仍然在市場(chǎng)上節(jié)節(jié)敗退甚至有些混亂。這次改革的目標(biāo)包括:統(tǒng)一和化簡(jiǎn)產(chǎn)品線,集中資源在重點(diǎn)項(xiàng)目上,快速應(yīng)對(duì)市場(chǎng)變化;重視開(kāi)發(fā)者,統(tǒng)一開(kāi)發(fā)工具,提供最好的兼容性的同時(shí)提供快速開(kāi)發(fā)的能力,發(fā)揮目前所有的長(zhǎng)處;強(qiáng)調(diào)用戶體驗(yàn)和移動(dòng)軟件市場(chǎng)等等,并希望能在2011年上半年就能看到改進(jìn)的效果。下面我們通過(guò)對(duì)比改革前后的產(chǎn)品策略來(lái)看這個(gè)變革可以給用戶和開(kāi)發(fā)者帶來(lái)什么:
\b3q;S {l/v s)D   在埃洛普上任之前,諾基亞原本的計(jì)劃是: Symbian平臺(tái)由高端市場(chǎng)逐漸走向中低端,MeeGo由商務(wù)終端起步逐漸替代Symbian占領(lǐng)高端手機(jī)市場(chǎng)。高端市場(chǎng)的高利潤(rùn)率是大公司所必爭(zhēng)的,而低端市場(chǎng)卻是諾基亞目前盈利大戶,目前也被中國(guó)的山寨機(jī)廠逐漸蠶食,還有Android也要爭(zhēng)奪中低端智能市場(chǎng)。諾基亞本來(lái)的計(jì)劃是用Symbian與MTK和Android競(jìng)爭(zhēng)中低端市場(chǎng),用開(kāi)源的方式吸引更多開(kāi)發(fā)商參與,但隨著三星和索愛(ài)的退出前景并不明朗。MeeGo本設(shè)想用來(lái)與iPhone競(jìng)爭(zhēng),但市場(chǎng)等不及MeeGo的成熟,倒是Symbian+Qt的組合卻逐漸讓市場(chǎng)接受。這次的一個(gè)變化就是重視Symbian+Qt為基礎(chǔ)的手機(jī)平臺(tái),繼續(xù)發(fā)揮這方面的優(yōu)勢(shì),甚至可能重現(xiàn)N系列高端機(jī),當(dāng)然也不會(huì)放棄印度中國(guó)等低端市場(chǎng),通過(guò)在系統(tǒng)里整合Qt來(lái)降低硬件門(mén)檻。
(~Mg,f n8T1Grz#zx   促使新CEO上任后變革的因素和影響
yI4c }nE2Tp-u   采用Symbian^3系統(tǒng)的N8幾經(jīng)拖延后終于上市,全面使用Qt的Symbian^4也在研發(fā)當(dāng)中。盡管諾基亞一直試圖推廣Qt和Ovi store,但跟進(jìn)的開(kāi)發(fā)者卻遠(yuǎn)遠(yuǎn)不如iphone和android,應(yīng)用軟件仍然很缺乏。原因之一是對(duì)兼容性的擔(dān)憂: 諾基亞的基本硬件平臺(tái)大概是1-2年換一代,硬件與操作系統(tǒng)捆綁開(kāi)發(fā),N8作為新一代平臺(tái)是與Symbian^3一起設(shè)計(jì)的,而Symbian^4則使用下一代硬件平臺(tái)作為載體。由 于N8的發(fā)布計(jì)劃拖延了半年之久,使得用戶擔(dān)憂買(mǎi)了N8系列(C7 E7等)到了明年就過(guò)時(shí),無(wú)法體驗(yàn)全新的Symbian^4界面。為Symbian^3寫(xiě)的應(yīng)用程序可能不能在Symbian^4上運(yùn)行,而以前以Avkon為基礎(chǔ)的S60程序也講不能在Symbian^4上運(yùn)行,進(jìn)一步打擊了傳統(tǒng)Symbian開(kāi)發(fā)者的積極性。如果按諾基亞本來(lái)的計(jì)劃,通過(guò)幾年的時(shí)間由Avkon逐漸過(guò)渡到純Qt,但因?yàn)镾ymbian^3和Symbian^4在市場(chǎng)壓力下銜接過(guò)快,市場(chǎng)無(wú)法接受。"W'V ~1ZF Dxiw
  而新的計(jì)劃則使得不同的諾基亞硬件平臺(tái)使用同一個(gè)操作系統(tǒng),取消Symbian^4原本的計(jì)劃,將Symbian^3和4合并為統(tǒng)一的操作系統(tǒng)平臺(tái),繼續(xù)支持Avkon的同時(shí)強(qiáng)化Qt應(yīng)用。已有的手機(jī)可以不斷享受到新的操作系統(tǒng)和系統(tǒng)軟件的升級(jí)。與以往“售出不管”的手機(jī)軟件服務(wù)模式不同,現(xiàn)在的N8等用戶可以不斷收到新的操作系統(tǒng)升級(jí),體 驗(yàn)最新的用戶界面和系統(tǒng)軟件。而當(dāng)下一代硬件平臺(tái)推出時(shí)N8等用戶能夠使用同樣的界面和類(lèi)似的功能(當(dāng)然除了硬件性能和功能上的區(qū)別)。下一代諾基亞的用戶和現(xiàn)在N8用戶一樣,可以使用同樣的Avkon和Qt應(yīng)用程序,Ovi store的軟件基本都可以所有手機(jī)上運(yùn)行。其實(shí)在諾基亞內(nèi)部早做過(guò)測(cè)試,將Symbian^4放N8上絕大多數(shù)功能都可以用,理論上來(lái)說(shuō)合并兩個(gè)系統(tǒng)的工作并不困難。fW{1r?
  Qt在UI界面及開(kāi)發(fā)難度上的降低X F5rZa?k8s
  以后對(duì)于Symbian C++開(kāi)發(fā)者來(lái)說(shuō),他們已有的Avkon為基礎(chǔ)的S60 Symbian C++應(yīng)用程序?qū)⑷匀荒茉谖磥?lái)的Symbian平臺(tái)上運(yùn)行,只是新的開(kāi)發(fā)工具逐漸只對(duì)Qt支持,讓Symbian的開(kāi)發(fā)者逐漸過(guò)渡到Qt上 —— Qt設(shè)計(jì)科學(xué),使用簡(jiǎn)單,相信多數(shù)Symbian開(kāi)發(fā)者都不會(huì)感到困難。
I;}"G2r CC/U`-EQ   而對(duì)于Qt開(kāi)發(fā)來(lái)說(shuō),諾基亞本來(lái)有Orbit (Symbian^4), Direct UI (MeeGo)以及Qt本來(lái)的UI Framework三種不同的界面系統(tǒng)。Qt本來(lái)的思想是為不同的平臺(tái)提供統(tǒng)一編程接口,目前的這種設(shè)計(jì)違背了Qt了宗旨,也提高了Qt的開(kāi)發(fā)難度。新的計(jì)劃是統(tǒng)一界面系統(tǒng),即使用Qt本身的界面系統(tǒng),這是對(duì)Symbian和Meego系統(tǒng)帶來(lái)的最大的改變,這將大大簡(jiǎn)化Qt的學(xué)習(xí)和開(kāi)發(fā)難度。為了使用不同平臺(tái)的界面開(kāi)發(fā),將推廣使用Qt Quick,這是一種基于QML腳本的開(kāi)發(fā)方法,Qt開(kāi)發(fā)者可以用C++實(shí)現(xiàn)與界面無(wú)關(guān)的邏輯,用QML實(shí)現(xiàn)界面,這樣不但界面設(shè)計(jì)可由不懂編程的平面美工直接制作,而且移植到新的平臺(tái)時(shí)無(wú)需修改程序,只許修改QML界面腳本。這些變化都大大減少了應(yīng)用程序的開(kāi)發(fā)周期。
Y[NBIw V+g   諾基亞不會(huì)放棄Symbian手機(jī)開(kāi)發(fā)X c:ij CQN YGfY
  在硬件方面,多媒體高端機(jī)N8在市場(chǎng)初步獲得市場(chǎng)接受,得出的結(jié)論就是手機(jī)未必要追求高性能,多媒體等功能更符合大部分用戶的需求。因此諾基亞將繼續(xù)在附加功能方面繼續(xù)改進(jìn)。其實(shí)作為行業(yè)老大,諾基亞有不少超前的技術(shù),從諾基亞劍橋?qū)嶒?yàn)室的納米概念機(jī)的演示錄像就可以看出。但如何把技術(shù)轉(zhuǎn)化為受用戶廣泛接受的應(yīng)用卻是個(gè)問(wèn)題。
g!Xg;\4`#ID9L)Xn   值得注意的是這次諾基亞宣布的改革并未受到Symbian基金會(huì)的影響,無(wú)論Symbian基金會(huì)將來(lái)會(huì)如何,諾基亞都將會(huì)繼續(xù)延續(xù)Symbian手機(jī)的開(kāi)發(fā),只是Symbian逐漸保存在操作系統(tǒng)的內(nèi)核,對(duì)于用戶和開(kāi)發(fā)者來(lái)說(shuō)將只看到Qt。可能許多讀者不理解為何諾基亞不放棄Symbian內(nèi)核,拋開(kāi)市場(chǎng)等非技術(shù)因素來(lái)看,目前Linux內(nèi)核的系統(tǒng)例如android效率并不如Symbian高,Linux內(nèi)核的手機(jī)通常都要高性能處理器和較大內(nèi)存,代價(jià)是待機(jī)時(shí)間短或體積過(guò)大,而Symbian系統(tǒng)從出世那天就是為節(jié)省功耗和內(nèi)存而設(shè)計(jì)的,使得Symbian手機(jī)一直有輕巧而待機(jī)長(zhǎng)久的名譽(yù)。而Symbian系統(tǒng)難以開(kāi)發(fā)調(diào)試的缺點(diǎn)現(xiàn)在可以用Qt彌補(bǔ)。
{a#mji|6t   為了達(dá)到這些目標(biāo),諾基亞不得不進(jìn)行內(nèi)部重組,特別是大規(guī)模裁員。在全球計(jì)劃裁掉1800名員工,其中Symbian相關(guān)部門(mén)裁減1200人,可以說(shuō)是重頭。但這并不意味著諾基亞放棄Symbian系統(tǒng)。諾基亞這種大型跨國(guó)公司傳統(tǒng)上都采用全球開(kāi)發(fā)覆蓋的方式,在不同的國(guó)家有相似甚至相同的開(kāi)發(fā)部門(mén)。這種模式在當(dāng)前的經(jīng)濟(jì)環(huán)境下是一種浪費(fèi),各大跨國(guó)公司都有逐漸把研發(fā)主力遷到印度中國(guó)等發(fā)展中國(guó)家,以提高效率降低花費(fèi)。因此我們可以看到歐洲的研發(fā)部門(mén)大幅裁減的同時(shí)中印的開(kāi)發(fā)部門(mén)卻很少裁員,甚至還在進(jìn)行招聘。當(dāng)然也有一些技術(shù)相關(guān)因素,例如圖形界面方面Avkon、Orbit等相關(guān)部門(mén)肯定會(huì)遭到裁減。為了提高開(kāi)發(fā)效率降低成本,這次裁員是必須的。其實(shí)由于歐洲各國(guó)的法律都比較保護(hù)勞工權(quán)益,完整的裁員計(jì)劃并未推出,目前這些國(guó)家都處于咨詢階段,正式減員還要有數(shù)個(gè)月的過(guò)程。9j;bA(@+Ls
  最后我對(duì)用戶和開(kāi)發(fā)者各給一句建議:對(duì)于諾基亞目前和未來(lái)的用戶,不必?fù)?dān)心購(gòu)買(mǎi)的Symbian手機(jī)會(huì)迅速淘汰,諾基亞將繼續(xù)支持Symbian手機(jī)并且提供系統(tǒng)升級(jí),ovi商店的軟件也將越來(lái)越豐富; 對(duì)于Symbian開(kāi)發(fā)者,雖然不必?fù)?dān)心現(xiàn)有的Symbian知識(shí)變得無(wú)用,但也應(yīng)該盡快學(xué)習(xí)Qt技術(shù),才能進(jìn)行低成本快速開(kāi)發(fā),發(fā)揮出新手機(jī)的全部性能和功能。]]>
Symbian系統(tǒng)會(huì)不會(huì)就此退出智能手機(jī)市場(chǎng)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2058&Page=1wangxinxin2010-12-3 15:33:38近日,諾基亞宣布,MeeGo將成為N系列智能手機(jī)的默認(rèn)操作系統(tǒng),而對(duì)Symbian系統(tǒng)來(lái)說(shuō),也是禍不單行,Symbian前首席技術(shù)官查爾斯`戴維斯近日又宣布將離開(kāi)諾基亞公司,加盟加盟導(dǎo)航設(shè)備廠商TomTom。種種事件加在一起,無(wú)不說(shuō)明Symbian系統(tǒng)正淪為一個(gè)邊緣產(chǎn)品。但在接下來(lái)的時(shí)間里,Symbian會(huì)不會(huì)就此退出手機(jī)市場(chǎng)呢?

  戰(zhàn)敗者的命運(yùn)

  如果我們把時(shí)間翻回到一年前,Symbian在當(dāng)時(shí)還是當(dāng)然的王者。IDC數(shù)據(jù)顯示,2009年上半年,在全球智能手機(jī)市場(chǎng)中,諾基亞主導(dǎo)的Symbian占據(jù)46.4%份額。接下來(lái),才是RIM黑莓19.9%,蘋(píng)果11.7%,以及微軟WindowsMobile的11%。從這個(gè)數(shù)字我們不難看出,在2009年上半年,黑莓、蘋(píng)果以及WindowsMobile加起來(lái)的市場(chǎng)份額,才將將抗得住Symbian。

  但在接下來(lái)的時(shí)間里,Symbian遇到了強(qiáng)度空前的挑戰(zhàn),其中最強(qiáng)勁的兩個(gè)對(duì)手,是蘋(píng)果iPhone谷歌Android

  雖然經(jīng)過(guò)了一系列的互訴侵權(quán)官司,iPhone的市場(chǎng)份額變得越來(lái)越大。到iPhone4發(fā)布時(shí),已經(jīng)沒(méi)有任何一款手機(jī)產(chǎn)品能夠跟蘋(píng)果iPhone4一樣受到了如此多人的高度關(guān)注。不論是預(yù)訂首日因大量用戶的訂購(gòu)而導(dǎo)致的系統(tǒng)癱瘓,還是發(fā)售首日各地的搶購(gòu)一空,都說(shuō)明了它空前的人氣。

  而從技術(shù)角度來(lái)看,iPhone4正面的3.5英寸屏幕雖然在時(shí)下來(lái)看已經(jīng)比較常見(jiàn),但因?yàn)椴捎昧薎PS屏幕材質(zhì)以及高達(dá)960×640像素的分辨率,讓它的顯示效果已經(jīng)處于目前手機(jī)行業(yè)的頂級(jí)水平。除此之外,與前幾代產(chǎn)品相比,iPhone4極具顛覆性的外觀設(shè)計(jì)和僅為9.3毫米的機(jī)身厚度,更是讓它的外觀更具吸引力。不僅如此,全新的iOS4操作系統(tǒng)更是讓它的操控體驗(yàn)和拓展性有了不小的提高。

  而在iPhone4之前,Android超越目前幾乎所有其它智能系統(tǒng),成為最受矚目的焦點(diǎn)。我們甚至可以說(shuō),正是Android智能系統(tǒng)的崛起使得諾基亞市場(chǎng)份額開(kāi)始下滑。

  可以說(shuō),有了iPhoneOS和Android,Symbian的噩夢(mèng)才剛剛開(kāi)始。但如果說(shuō)此時(shí)的Symbian就此退出,確實(shí)還為時(shí)尚早。

  禍起蕭墻

  面對(duì)iPhoneOS和Android的圍攻,Symbian在一開(kāi)始確實(shí)選擇了反擊,其中一條重要的措施,就是將Symbian開(kāi)源。如果此時(shí)Symbian的所有者諾基亞公司選擇進(jìn)行頑強(qiáng)抵抗,那么我們可以預(yù)見(jiàn)事情的結(jié)果:就算Symbian的市場(chǎng)份額進(jìn)一步下滑,但瘦死的駱駝比馬大,Symbian依然可以獨(dú)據(jù)一方,并且有翻盤(pán)的機(jī)會(huì)。但此時(shí)偏偏有了MeeGo。

  有了諾基亞和英特爾的支持,MeeGo的發(fā)展完全可以用一日千里來(lái)形容。MeeGo雖然誕生于今年二月份,但它繼承了Linux的底蘊(yùn)。3月,英特爾向開(kāi)發(fā)人員發(fā)布了第一個(gè)版本的MeeGo操作系統(tǒng)開(kāi)發(fā)版,其中一個(gè)版本用于配置英特爾Atom處理器的上網(wǎng)本,另一個(gè)版本用于諾基亞的N900智能手機(jī)。到了4月的IDF2010時(shí),MeeGo講座會(huì)場(chǎng)人潮攢動(dòng),在每場(chǎng)講座的問(wèn)答環(huán)節(jié),現(xiàn)場(chǎng)Linux開(kāi)發(fā)人員的提問(wèn)都是相當(dāng)有水準(zhǔn),很多技術(shù)人員都是參與Linux多年的項(xiàng)目牛人和編程高手。5月份,MeeGo1.0正式版發(fā)布并提供下載

  至此,Symbian這個(gè)在外戰(zhàn)中不斷失利的系統(tǒng),在“內(nèi)戰(zhàn)”的競(jìng)爭(zhēng)中被淘汰,已是不可避免的事情了。事實(shí)際上,當(dāng)Symbian3發(fā)布時(shí),Symbian的危機(jī)已達(dá)到了高潮。因?yàn)殡m然Symbian3被評(píng)價(jià)為一個(gè)不錯(cuò)的系統(tǒng),但除了一款X10,搭載Symbian3的新機(jī)型卻遲遲不見(jiàn)發(fā)布。

  此外,還有一個(gè)因素不容互視。這就是手機(jī)已經(jīng)越來(lái)越像一臺(tái)小型隨身電腦,而非只是單一功能的手機(jī)。客戶不僅用手機(jī)來(lái)打電話或發(fā)短信,同時(shí)也會(huì)收發(fā)e-mail、瀏覽網(wǎng)頁(yè),玩游戲等。他們希望從程序商店挑選新軟件,而不只是廠商所供應(yīng)的一點(diǎn)點(diǎn)程序。

  在這一點(diǎn)上,Android與iOS雖然用在手機(jī),但都還是跟個(gè)人電腦有那么一絲連結(jié),不像Symbian是完全從扎根于手機(jī)。從這個(gè)角度考慮,Symbian的落敗是正常的。而MeeGo在這一點(diǎn)時(shí),卻完全具備與Android與iOS對(duì)抗的資本。

但另一方面,Symbian完全退出智能手機(jī)還為時(shí)尚早。根據(jù)最近公布的《第二季移動(dòng)開(kāi)發(fā)者調(diào)查》,在被問(wèn)及對(duì)蘋(píng)果的iOS、Google的Android、Palm的WebOS、微軟的Phone7、諾基亞的Symbian/Meego,以及RIM的BlackBerry的意見(jiàn)時(shí)。高達(dá)90%的受訪者對(duì)開(kāi)發(fā)iPhone應(yīng)用程序躍躍欲試,另有81%對(duì)開(kāi)發(fā)Android手機(jī)軟件興趣濃厚。34%的受訪者對(duì)BlackBerry有興趣,27%屬意WindowsPhone,受Symbian和WebOS吸引的開(kāi)發(fā)者目前居少數(shù)。

  但一個(gè)不可忽視的數(shù)字是,還是有15%的開(kāi)發(fā)者選擇了Symbian,而只有11%的開(kāi)發(fā)者選擇了MeeGo。也許是因?yàn)檫@樣的擔(dān)心,諾基亞宣布,Symbian系統(tǒng)仍將用于諾基亞、三星、索尼愛(ài)立信的低端手機(jī)

]]>
Symbian知識(shí)百寶箱+Symbian常見(jiàn)問(wèn)題集錦http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2057&Page=1wangxinxin2010-12-3 15:23:44Symbian由摩托羅拉、西門(mén)子、諾基亞等幾家大型移動(dòng)通訊設(shè)備商共同出資組建的一個(gè)合資公司,專(zhuān)門(mén)研發(fā)手機(jī)操作系統(tǒng)。而Symbian操作系統(tǒng)的前身是EPOC,而EPOC是ElectronicPiece ofCheese取第一個(gè)字母而來(lái)的,其原意為使用電子產(chǎn)品時(shí)可以像吃乳酪一樣簡(jiǎn)單,這就是它在設(shè)計(jì)時(shí)所堅(jiān)持的理念。

拿到Symbian機(jī)器后,如果你不熟悉NOKIA的S60系統(tǒng),最好趁充電的時(shí)候仔細(xì)瀏覽一下說(shuō)明書(shū)內(nèi)容。港行機(jī)器為英文說(shuō)明書(shū),可到http://www.nokia.com.cn/下載相應(yīng)手機(jī)型號(hào)的說(shuō)明書(shū)查看,說(shuō)明書(shū)為PDF格式,可使用ADOBE READER或Foxit Reader Pro等閱讀器瀏覽。


了解Symbian的第一步--->
NOKIA品牌的由來(lái),發(fā)展歷程!

NOKIA品牌的由來(lái)

NOKIA 是芬蘭語(yǔ), 其實(shí), 諾基亞這個(gè)名字的由來(lái)并不復(fù)雜. 諾基亞(Nokia)指的是生活在芬蘭的一種長(zhǎng)著黑色長(zhǎng)毛與利爪的野獸, 這種野獸主要生活在芬蘭境內(nèi)一條河的兩岸, 因此, 人們就以這個(gè)怪獸的名字來(lái)命名了這條河, 稱之為諾基亞河(River Nokia). 1865年, 當(dāng)弗雷德里克·依德斯塔姆(Fredrik Idestam)準(zhǔn)備開(kāi)始創(chuàng)業(yè)的時(shí)候, 選擇了在諾基亞河的岸邊設(shè)立它的公司, 并以這條河的名字來(lái)命名了它的公司, 叫做(Nokia AB). 從此, 隨著公司的發(fā)展壯大, 諾基亞這個(gè)稱呼也傳遍了全世界, 成了家喻戶曉的名字.

諾基亞成立137年的過(guò)程,正是一部芬蘭現(xiàn)代史的縮影,從社會(huì)主義到資本主義,從出口木材到出口手機(jī)。這家百年老店傳奇的轉(zhuǎn)型經(jīng)歷,連同樣老字號(hào)的奇異電器(最初做燈泡,現(xiàn)在做飛機(jī)引擎)都瞠乎其后。
不同世代的芬蘭人,都可以和諾基亞產(chǎn)生連結(jié)。60歲以上的,認(rèn)為諾基亞是賣(mài)木材和電纜的公司;40歲以上的,認(rèn)為諾基亞是賣(mài)雨鞋和衛(wèi)生紙的公司,20歲以上的,認(rèn)為諾基亞是賣(mài)手機(jī)的公司。
沒(méi)錯(cuò),這些都是諾基亞,或曾經(jīng)是諾基亞。Nokia這5個(gè)字母合起來(lái),不僅是芬蘭家喻戶曉的名字,更是全世界熟知的商標(biāo)。「Nokia在1990年代初期做海外營(yíng)銷(xiāo)時(shí),很多人還以為這是日本公司,」諾基亞總部公關(guān)經(jīng)理普奇娜(Tuula Putkinen)笑著說(shuō)。
到今天,諾基亞的知名度,已經(jīng)遠(yuǎn)超過(guò)任何一家日本公司。美國(guó)知名市調(diào)公司Interbrand今年公布的全球「100大品牌」調(diào)查中,諾基亞(第6名)是前10名中唯二的非美國(guó)企業(yè)(另一家是奔馳汽車(chē)),也是唯一一家連續(xù)兩年都進(jìn)前10名的非美國(guó)企業(yè),品牌價(jià)值高達(dá)300億美金,比麥當(dāng)勞、豐田汽車(chē)、花旗銀行和新力都更知名。

每個(gè)人都和諾基亞脫離不了關(guān)系
在芬蘭,隨便一個(gè)當(dāng)?shù)厝耍寄苜┵┒勊ㄋ┡c諾基亞的關(guān)系。他可能在諾基亞工作,或他的親戚、同學(xué)、朋友在諾基亞工作,再不然,他本身是諾基亞的死忠消費(fèi)者。從1865年賣(mài)木材起家的公司,能夠達(dá)到這樣的成績(jī),是絕無(wú)僅有的,而芬蘭幾乎傾全國(guó)之力,來(lái)牽成這家企業(yè)走上國(guó)際舞臺(tái)。
諾基亞也不負(fù)眾望。多年來(lái)一直是芬蘭第一大企業(yè),諾基亞一家公司的出口值,占芬蘭全國(guó)出口的25%,而在赫爾辛基證交所,諾基亞一家公司的市值,等于其它所有上市公司總和。這些數(shù)據(jù)說(shuō)明一件事:諾基亞就是芬蘭。
1967年,諾基亞木材、芬蘭橡膠和芬蘭電纜這三家公司合并,讓諾基亞脫胎換骨,擁有發(fā)展電子業(yè)的基礎(chǔ),而1992年接任執(zhí)行長(zhǎng)的歐里拉(Jorma Ollila),則是率領(lǐng)這家百年老店從芬蘭走上世界、稱霸無(wú)線通訊市場(chǎng)的靈魂人物。
這位被視為未來(lái)芬蘭總統(tǒng)熱門(mén)人選的企業(yè)領(lǐng)袖,在上任之初,面對(duì)的其實(shí)是一個(gè)千瘡百孔、幾近破產(chǎn)的老公司。1992年,正是前蘇聯(lián)解體,芬蘭失去最大市場(chǎng),經(jīng)濟(jì)失速下墜的時(shí)候,擁有電線電纜、衛(wèi)生紙、膠鞋、電視機(jī)、個(gè)人計(jì)算機(jī)、手機(jī)和通訊設(shè)備等龐雜事業(yè)的諾基亞,所受的沖擊更大,公司一度因財(cái)務(wù)困難考慮出售,可能的買(mǎi)主包含瑞典的對(duì)手易利信,但易利信沒(méi)有興趣。

讓手機(jī)可以輕松放在口袋里
當(dāng)時(shí),除了手機(jī)和通訊設(shè)備有豐厚獲利,諾基亞的其它事業(yè)不是大賠就僅是小賺,歐里拉的任務(wù)是扮演劊子手,把不該存在的事業(yè)砍掉,而他也稱職做好,就像威爾許(Jack Welch)在1980年接任奇異電器執(zhí)行長(zhǎng)頭四年一樣。
「1980到1990年代初期,諾基亞很慘,個(gè)人計(jì)算機(jī)賠得一塌糊涂(被亞洲的臺(tái)、日、韓連手擊倒),其它事業(yè)也不好,整個(gè)公司感覺(jué)沒(méi)有前途,」赫爾辛基科技大學(xué)通訊軟件與多媒體實(shí)驗(yàn)室主任卡立(Hannu H. Kari)回憶,他當(dāng)時(shí)就在諾基亞個(gè)人計(jì)算機(jī)事業(yè)部服務(wù)。卡立分析,聚焦無(wú)線通訊業(yè),并率先在1992年推出第一套GSM系統(tǒng),是諾基亞反敗為勝的關(guān)鍵。
這正是芬蘭的寫(xiě)照。失去蘇聯(lián)這個(gè)最大市場(chǎng)(占芬蘭13出口值)后,芬蘭注定成為西方資本主義的一員,接受更嚴(yán)格的市場(chǎng)經(jīng)濟(jì)考驗(yàn),資源配置和產(chǎn)業(yè)重心都須重新調(diào)整。
歐里拉對(duì)諾基亞做出的最大貢獻(xiàn)有兩個(gè)。第一,他體認(rèn)品牌是向消費(fèi)者溝通的最重要元素,諾基亞要從芬蘭走向國(guó)際,一定要由強(qiáng)大的品牌帶頭。從1992年開(kāi)始,諾基亞每年都投資數(shù)億美金在營(yíng)銷(xiāo)和廣告上,持續(xù)不輟。第二,他把手機(jī)事業(yè)重新定調(diào),從功能性訴求轉(zhuǎn)為風(fēng)格訴求,意味著手機(jī)由厚重龐大走向輕巧有型,「可以輕松放在口袋里。」
1997年,諾基亞以一系列「Connecting People」(科技始終來(lái)自人性)廣告,在全球密集推出,各種不同年齡消費(fèi)者愉快講手機(jī)的畫(huà)面,跳脫以往手機(jī)強(qiáng)調(diào)功能的窠臼,打動(dòng)了世界各地的消費(fèi)者:手機(jī)不再只是你父親用的工具,每個(gè)人都該有一支。來(lái)年,諾基亞隨即超越摩托羅拉,登上手機(jī)市場(chǎng)冠軍,到今年占有率更攀升到38%。
「諾基亞剛推出紅色手機(jī)時(shí),大家都在笑,但現(xiàn)在大家都在學(xué),」卡立觀察,「諾基亞現(xiàn)在賣(mài)的不只是技術(shù),還有形象,買(mǎi)諾基亞手機(jī)就像買(mǎi)當(dāng)年IBM的PC。」
很難想象,52歲、外型嚴(yán)肅、年輕時(shí)是狂熱左派分子的歐里拉,玩起資本主義的游戲比西方世界還強(qiáng)悍。歐里拉在大學(xué)時(shí)是學(xué)生領(lǐng)袖,曾組友好訪問(wèn)團(tuán)到莫斯科交流,對(duì)社會(huì)主義非常憧憬,在嬉皮盛行的1970年代,也曾是激進(jìn)的異議分子之一。

仍有社會(huì)主義的影子
曾到諾基亞總部訪問(wèn)的政大科管所教授溫肇東觀察,像歐里拉這一輩40到50歲的芬蘭人,成長(zhǎng)過(guò)程經(jīng)歷社會(huì)非常大的變遷,游走在社會(huì)主義和資本主義間,年輕時(shí)即有多樣的國(guó)際經(jīng)驗(yàn),見(jiàn)識(shí)和應(yīng)變能力突出,將公司轉(zhuǎn)型成頂級(jí)企業(yè)自然毫不手軟。
歐里拉能率軍打資本主義的戰(zhàn),但回過(guò)頭,在諾基亞仍可見(jiàn)許多社會(huì)主義的影子。諾基亞內(nèi)部的階級(jí)并不明顯,工作能力不是以職銜來(lái)評(píng)斷,而是來(lái)自同事的認(rèn)可,「直屬主管是誰(shuí)沒(méi)有分那么清楚,」普奇娜說(shuō)。
在諾基亞,經(jīng)常有頭銜高的主管被調(diào)去接一個(gè)職銜較低的工作,這并不是有意降級(jí),而是借重他的長(zhǎng)才和知識(shí)來(lái)進(jìn)行新的工作。也因此,工作輪調(diào)在諾基亞是很平常的事,經(jīng)常兩年換一項(xiàng)職務(wù),「很難明確地說(shuō)你的工作執(zhí)掌是什么,常常在變,名片經(jīng)常要重印。」卡立補(bǔ)充,「勇于承擔(dān)責(zé)任,工作就交到你手上,這就是芬蘭人。」

最值得你工作的企業(yè)
對(duì)工作的保障更是明顯。去年以來(lái),全球電信業(yè)大衰退,光是美國(guó)就合計(jì)裁掉50萬(wàn)名員工,企業(yè)宣布數(shù)萬(wàn)人的裁員消息已不是新聞。諾基亞也受到影響,股價(jià)跌掉一半,今年?duì)I收又衰退,但仍咬牙撐下來(lái),僅裁員1000人,是同業(yè)中最低的數(shù)字。
此外,諾基亞總部還提供三溫暖、健身房和醫(yī)療咨詢服務(wù),如果員工有需要,公司還幫忙預(yù)約看診,費(fèi)用由公司支付。種種貼心的措施,使得諾基亞獲選今年《財(cái)星》雜志「最值得你工作的企業(yè)」(best companies to work for)之一。
接下來(lái),諾基亞面對(duì)的挑戰(zhàn)林林總總,有手機(jī)市場(chǎng)成長(zhǎng)率趨緩,軟件巨人微軟要強(qiáng)行介入開(kāi)發(fā)手機(jī)用的平臺(tái)軟件,后起之秀三星(Samsung)在亞洲市場(chǎng)表現(xiàn)優(yōu)異……等,一如芬蘭在行動(dòng)通訊社會(huì)的領(lǐng)先地位,遭到日本和韓國(guó)的強(qiáng)大威脅。去年下半年以來(lái),諾基亞在三頻、GPRS和彩色屏幕等多款新手機(jī)的上市時(shí)間,都落后競(jìng)爭(zhēng)對(duì)手,一場(chǎng)辛苦的王位衛(wèi)冕戰(zhàn),正從芬蘭開(kāi)始發(fā)動(dòng)。
去年夏天,歐里拉和5位一線主管開(kāi)始密集協(xié)商,討論重建280億美金營(yíng)業(yè)額的諾基亞,并在接下來(lái)的策略規(guī)畫(huà)中,將諾基亞手機(jī)部門(mén)拆成9大事業(yè)群,從高階到入門(mén)機(jī)型,從GSM到CDMA規(guī)格,從配件到提供內(nèi)容服務(wù)等,今年5月1日起,正式向所有手機(jī)同業(yè)全面宣戰(zhàn),預(yù)約諾基亞下一個(gè)10年大業(yè)。
歐里拉加上諾基亞加上芬蘭,原本代表左派分子加上百年老店加上極地小國(guó),是個(gè)突兀的組合,現(xiàn)在卻成了優(yōu)秀CEO加上世界品牌加上國(guó)家競(jìng)爭(zhēng)力首強(qiáng),變成了夢(mèng)幻組合。這種離奇的結(jié)果,對(duì)發(fā)明耶誕老人、習(xí)慣收到神秘禮物的芬蘭人來(lái)說(shuō),卻是再熟悉不過(guò)的情節(jié):只要你有夢(mèng),它終將實(shí)現(xiàn),即使是過(guò)了137 年]]>
Nokia和Symbian:忘了Android吧,重點(diǎn)在Qthttp://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2056&Page=1wangxinxin2010-12-3 15:18:31不過(guò),情況可能更復(fù)雜一些。Nokia正在擁抱一個(gè)叫Qt的軟件開(kāi)發(fā)平臺(tái),它可以讓開(kāi)發(fā)者將自己的程序移植到市面上任何主要操作系統(tǒng)上。現(xiàn)在,Nokia已經(jīng)發(fā)布了Qt,因此開(kāi)發(fā)人員可以用它為L(zhǎng)inux, Mac OS X, Windows, Windows CE, 嵌入式Linux和S60進(jìn)行開(kāi)發(fā)。

我們被告之Nokia會(huì)在不久的將來(lái)讓Qt兼容Android。

Nokia也許真的不會(huì)直接開(kāi)發(fā)基于Android平臺(tái)的設(shè)備,但對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),Nokia會(huì)讓他們?cè)贏ndroid上的開(kāi)發(fā)工作更加簡(jiǎn)單。因?yàn)镼t支持多數(shù)主流平臺(tái),開(kāi)發(fā)人員可以用Qt進(jìn)行開(kāi)發(fā),然后移植到諸如Symbian, Android甚至iPhone平臺(tái)上。

諾基亞雄心勃勃的“跨平臺(tái)”開(kāi)發(fā)策略由以下的動(dòng)作可窺見(jiàn)一斑。

去年一月份,Nokia斥資1.53億美元購(gòu)買(mǎi)了Trolltech公司,Qt的創(chuàng)建者。基于Qt的流行程序包括了Skype, Google Earth和Last.fm在線音樂(lè)播放軟件。今年一月,Nokia讓Qt支持LGPL 2.1授權(quán),將它推向開(kāi)源。這實(shí)質(zhì)上讓開(kāi)發(fā)人員得以免費(fèi)使用它。但任有一些不開(kāi)源的Qt授權(quán)。 (譯注:LGPL授權(quán)的限制強(qiáng)度處于GPL和BSD之間,也為Mozilla和OpenOffice等程序所采用)

(還有一個(gè)東西叫Hybrid Qt,開(kāi)發(fā)人員可以通過(guò)它開(kāi)發(fā)同時(shí)支持瀏覽器和本地程序功能的程序,調(diào)用Common Services API和為Webkit瀏覽器進(jìn)行優(yōu)化的QTCore庫(kù)。不過(guò),這方面沒(méi)多少和Android相關(guān)的消息,但Nokia下了很大力氣讓它支持Symbian S60, S40, Maemo和各種桌面操作系統(tǒng)。)

關(guān)于Nokia是不是考慮拋棄現(xiàn)有的Symbian操作系統(tǒng)的猜測(cè)很多。但Nokia說(shuō)衛(wèi)報(bào)報(bào)道的Nokia將在9月份的NWC大會(huì)(Nokia World Conference)上推出Android系統(tǒng)觸屏手機(jī)的謠言毫無(wú)根據(jù)。

Nokia的確正面臨著極大壓力,必須得做點(diǎn)什么。它仍占有大約40%的手機(jī)市場(chǎng),但它在智能手機(jī)市場(chǎng)所占份額正在下滑。iPhone賣(mài)得火熱,不過(guò)它不開(kāi)源。Google Android也賣(mài)的不錯(cuò),有多款產(chǎn)品將在未來(lái)幾個(gè)月內(nèi)進(jìn)軍市場(chǎng)。因?yàn)锳ndroid開(kāi)源,這就允許其它手機(jī)制造商,包括Nokia,也可以推出Android系統(tǒng)手機(jī)。

當(dāng)Nokia擁抱Android的故事出現(xiàn)時(shí),我們接觸了Symbian基金會(huì)主席Lee Williams。他不想對(duì)Nokia是否正在研發(fā)Android手機(jī)作出評(píng)論,而讓Nokia作出回應(yīng),但他說(shuō)了Symbian也將擁抱Qt。他說(shuō)這將在2010年成為Symbian平臺(tái)的關(guān)鍵部分,讓Symbian提供一個(gè)超越競(jìng)爭(zhēng)對(duì)手的操作系統(tǒng)(而且免費(fèi),完全開(kāi)放)。他說(shuō)Qt會(huì)在近期支持Android。下面是他的郵件中的一段(我們認(rèn)為的重點(diǎn)用粗體標(biāo)出):

整個(gè)Symbian平臺(tái)的下一代UI都將采用新的Direct UI,并保留全世界最廣泛應(yīng)用的Focused UI,支持多種屏幕分辨率和硬件規(guī)格,包括手勢(shì)操作和新的傳感器架構(gòu),采用一整套開(kāi)放標(biāo)準(zhǔn)和行業(yè)事實(shí)標(biāo)準(zhǔn),包括融合了Webkit的新QT內(nèi)核,沒(méi)錯(cuò),還有強(qiáng)大的硬件圖形加速能力……Qt針對(duì)便攜產(chǎn)品,將應(yīng)用在很多平臺(tái)上,開(kāi)發(fā)人員無(wú)疑會(huì)很樂(lè)于看到Qt應(yīng)用在Android、 iPhone、Windows Mobile……

此外,我們?cè)谝辉路萸∏刹稍L到了諾基亞Qt軟件部門(mén)的技術(shù)主管Benoit Schillings,以下是部分采訪內(nèi)容:

VB: 讓開(kāi)發(fā)人員使用Qt對(duì)諾基亞有什么好處?

Benoit:好處在于創(chuàng)造和發(fā)明——用Qt的開(kāi)發(fā)人員越多,就會(huì)有越多的實(shí)用軟件和服務(wù)可以容易地移植到諾基亞的手持設(shè)備上。

VB: 讓我們來(lái)看看這一舉動(dòng)背后諾基亞的策略。諾基亞有了Trolltech Qt, Maemo和Symbian。Qt對(duì)于Maemo和Symbian的關(guān)系有什么樣的影響?

Benoit: Qt是跨平臺(tái)架構(gòu),開(kāi)發(fā)人員在做Maemo或Symbian頂層開(kāi)發(fā)的時(shí)候可以使用同一套API,從而簡(jiǎn)化開(kāi)發(fā)任務(wù),減少對(duì)多平臺(tái)細(xì)節(jié)了解的需要。當(dāng)然,Qt也能很好地支持PC或其它設(shè)備的軟件編寫(xiě),這也是個(gè)優(yōu)勢(shì)。

VB: 為Qt增加更自由的LGPL v2.1授權(quán),目的是不是針對(duì)桌面領(lǐng)域?

Benoit: PC市場(chǎng)和嵌入式設(shè)備的區(qū)別正變得模糊。我們的確認(rèn)為新的授權(quán)能夠讓Qt應(yīng)用在所有的平臺(tái)上。

VB: 你最近花很多時(shí)間整合Qt和Symbian(S60)操作系統(tǒng),Qt對(duì)S60來(lái)說(shuō)有多重要?

Benoit: Qt是開(kāi)發(fā)社區(qū)中知名的編程架構(gòu),讓它運(yùn)行在Symbian上,就能為Qt社區(qū)開(kāi)啟一扇門(mén),讓他們的工作能夠面向更大量的設(shè)備。對(duì)Symbian來(lái)說(shuō),這也是軟件編寫(xiě)的另一個(gè)途徑,和PC、嵌入式世界的編程更加一致。

]]>
諾基亞正式放棄Symbian系統(tǒng),今年開(kāi)始停止后續(xù)開(kāi)發(fā)(http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2055&Page=1wangxinxin2010-12-3 15:12:50  Symbian總部位于英國(guó),諾基亞曾持有其48%股份,其余股份由索愛(ài)、三星等主流手機(jī)制造商持有。諾基亞去年6月宣布,將出資2.64億歐元(約合4.1億美元)收購(gòu)Symbian其余52%股份,然后再專(zhuān)門(mén)為此建立一個(gè)開(kāi)源基金會(huì),使Symbian成為一款可免費(fèi)使用的開(kāi)源手機(jī)操作系統(tǒng),從而同谷歌Android等平臺(tái)爭(zhēng)搶市場(chǎng)。
  消息人士周二表示:“Symbian平臺(tái)已嚴(yán)重老化,而無(wú)法同其他性能更為先進(jìn)的平臺(tái)展開(kāi)市場(chǎng)競(jìng)爭(zhēng)。如此一來(lái),諾基亞已決定放棄Symbian,并改為大力推廣Maemo平臺(tái)。”諾基亞此前開(kāi)發(fā)了Maemo平臺(tái),并計(jì)劃將其主要用于諾基亞的上網(wǎng)設(shè)備當(dāng)中。
  對(duì)于諾基亞放棄Symbian、改推Maemo平臺(tái)的說(shuō)法,諾基亞還沒(méi)有作出正式回應(yīng)。該公司一位發(fā)言人表示,不會(huì)對(duì)外界傳聞加以評(píng)論。
  明智之舉
  美國(guó)科技博客網(wǎng)站TechCrunch認(rèn)為,如果諾基亞將重心從Symbian轉(zhuǎn)向Maemo平臺(tái)的說(shuō)法屬實(shí),應(yīng)該說(shuō)是明智之舉。雖然諾基亞已為收購(gòu)Symbian其余股權(quán)付出了2.64億歐元,但好在Symbian的具體推廣工作還沒(méi)有實(shí)施開(kāi)來(lái),否則諾基亞今后將蒙受更多經(jīng)濟(jì)損失。
  TechCrunch指出,在全球智能手機(jī)業(yè)務(wù)領(lǐng)域,蘋(píng)果、RIM和谷歌Android已嚴(yán)重威脅到諾基亞的市場(chǎng)地位。而要成功擊退這些競(jìng)爭(zhēng)對(duì)手發(fā)起的挑戰(zhàn),諾基亞就必須考慮推出一款性能更為先進(jìn)的手機(jī)平臺(tái)。
  《金融時(shí)報(bào)》德文版援引消息人士的表述稱,由于Symbian的編程代碼已經(jīng)落后,因此已嚴(yán)重影響到該手機(jī)操作系統(tǒng)的整體性能表現(xiàn)。Symbian前身為Psion公司于上個(gè)世紀(jì)90年代開(kāi)發(fā)的Epoc OS平臺(tái)。另一方面,Symbian共有2000萬(wàn)行代碼,其代碼數(shù)量快接近微軟Windows XP操作系統(tǒng),因此已顯得非臃腫。
  業(yè)界人士指出,正是因?yàn)镾ymbian代碼老化、體積臃腫,導(dǎo)致該平臺(tái)無(wú)法以更簡(jiǎn)單方式處理復(fù)雜手機(jī)任務(wù)。這也部分解釋了為何在觸摸屏技術(shù)使用上,諾基亞用了較長(zhǎng)時(shí)間才解決該問(wèn)題。另一方面,雖然諾基亞已解決了觸摸屏技術(shù),但其性能表現(xiàn)仍無(wú)法同iPhone、Android的類(lèi)似功能相比。
  值得注意的是,諾基亞同美國(guó)芯片巨頭英特爾今年5月宣布,兩家公司將聯(lián)合開(kāi)發(fā)一款名為oFono的手機(jī)操作系統(tǒng)。雙方合作的主要內(nèi)容是:oFono將同時(shí)兼容諾基亞的Maemo平臺(tái)和英特爾的Moblin平臺(tái),然后再向谷歌Android等平臺(tái)發(fā)起挑戰(zhàn)。 ]]>
S60+VC6 for Symbian OS編程環(huán)境搭建的一點(diǎn)經(jīng)驗(yàn)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2054&Page=1wangxinxin2010-12-3 14:59:42搞了好長(zhǎng)時(shí)間,在網(wǎng)上痛苦的求救了幾天,終于算是把S60+VC6的編程環(huán)境搭好了,可以跑控制臺(tái)程序和有圖形界面的手機(jī)程序,但是制作sis還沒(méi)有試過(guò)。

第一步是準(zhǔn)備幾個(gè)軟件:visual studio VC++6.0(最好是打上sp6補(bǔ)丁的);ActivePerl,我用的是5.8.7,版本高一點(diǎn)低一點(diǎn)應(yīng)該問(wèn)題不大;jdk1.5,這個(gè)要求也不高,似乎1.4也行;serise60 SDK for Symbian OShttp://forum.nokia.com),我用的是2.0版本。關(guān)于最后一個(gè)S60 SDK一定要注意版本,下載之前要看清楚描述,一定是要for VC6的而不是for .net的,這一點(diǎn)甚至是nokia官方網(wǎng)站都有點(diǎn)不負(fù)責(zé)任,比如說(shuō).netvc6都可以用,但其實(shí)就只是for .net的。。。(無(wú)語(yǔ))

安裝順序只要是按照我上面說(shuō)的順序,理論上就沒(méi)有問(wèn)題,當(dāng)然還需要注意的一點(diǎn)就是這四個(gè)軟件最好安裝在同一個(gè)盤(pán)符里。個(gè)人意見(jiàn):C盤(pán)最好了。

如果你已經(jīng)按照上面的順序安裝好了這四個(gè)軟件,那么你已經(jīng)成功了一半,因?yàn)槲蚁嘈胖皇钦胰@些開(kāi)發(fā)工具就夠費(fèi)時(shí)間的了(比如論壇注冊(cè)激活等等),這時(shí)只要將C:\Symbian\7.0s\Series60_v20\Series60Tools\applicationwizard下的avkonappwiz_v20.awxavkonappwiz_v20.hlp兩個(gè)文件拷貝到C:\VC6\Common\MSDev98\Template下就可以在VC6的環(huán)境下創(chuàng)建s60的工程了(在工程一欄里可以看見(jiàn)),聰明的讀者應(yīng)該一眼可以看出上面所寫(xiě)的路徑是我自己機(jī)器上的路徑,因人而異。

VC6開(kāi)發(fā)S60工程的時(shí)候如果有一個(gè)專(zhuān)門(mén)的工具欄會(huì)方便很多,其實(shí)只要將C:\Symbian\7.0s\Series60_v20\Series60Tools\epoctoolbar下的epoctools.dll文件拷貝到C:\VC6\Common\MSDev98\AddIns下面,然后打開(kāi)VC6,在View->Customize中選擇Add-ins and Macro Files標(biāo)簽,將EPOC toolbar Add-in選中就可以了!

做好這些以后,相信你已經(jīng)迫不及待創(chuàng)建一個(gè)S60的工程了吧,放心去做吧,按照默認(rèn)的配置直接點(diǎn)擊Finish就可以了,大功告成!

等等。。。報(bào)錯(cuò)了,說(shuō)什么the specified project could not be inserted into the current workspace。檢查一下環(huán)境變量吧,環(huán)境變量的問(wèn)題似乎也是網(wǎng)上討論最多的問(wèn)題之一,廢話不多說(shuō),我把我覺(jué)得重要的列一下吧:(讀者根據(jù)自己的安裝情況適當(dāng)調(diào)整,很簡(jiǎn)單的)

classpath :c:\Java\jdk1.5.0_04\lib

EPOCROOT(全部大寫(xiě)) :\Symbian\7.0s\Series60_v20\(注意不寫(xiě)盤(pán)符最后以‘\’結(jié)束)

JAVA_HOME :c:\Java\jdk1.5.0_04(這個(gè)好像不是很要緊)

Path:

C:\Program Files\Common Files\SYMBIAN\Tools ;

C:\VC6\VC98\Bin;

C:\Perl\bin\;

%SystemRoot%\system32;

%SystemRoot%;

%SystemRoot%\System32\Wbem;

C:\Java\jdk1.5.0_04\bin;

關(guān)于Path這個(gè)環(huán)境變量有很多是在軟件安裝(比如安裝perl)的時(shí)候就自動(dòng)配置好了,但是如果讀者在裝好之后發(fā)現(xiàn)有問(wèn)題,最好還是關(guān)注一下這個(gè)變量是否正確了:)

這時(shí)用打開(kāi)cmd模式敲epoc回車(chē),看看有什么提示,要是直接就彈出一個(gè)手機(jī)模擬器,就表示沒(méi)有問(wèn)題。如果說(shuō)缺少什么.dll就有點(diǎn)麻煩,我遇到的情況是缺少mspdb60.dll,無(wú)奈只好到網(wǎng)上下載了一個(gè),扔在了C:\WINDOWS\system32目錄下就好了。(這里提供一個(gè)網(wǎng)站http://www.dll-files.com)。

這個(gè)時(shí)候確實(shí)應(yīng)該可以成功的創(chuàng)建一個(gè)s60的工程了,(別問(wèn)我commenframework.h怎么寫(xiě),到Examples\basics\commenframework下面去找!),嘗試這去點(diǎn)擊一下工具欄里提供的按鈕,編譯,寫(xiě)一個(gè)控制臺(tái)程序(注意.mmp文件的修改,是app還是exe),再寫(xiě)一個(gè)有UI的程序(注意選擇程序時(shí)選擇C:\Symbian\7.0s\Series60_v20\Epoc32\release\wins\udeb\epoc.exe要么怎么讓你之前用cmd模式嘗試運(yùn)行epoc呢)。

多了就不多說(shuō)了,如果運(yùn)行期間還是提示缺少什么.dll的話,個(gè)人意見(jiàn)首先看看C:\Symbian\7.0s\Series60_v20\Epoc32\release\wins\udeb里面有沒(méi)有(一般情況是有的)。

]]>
S60+VC6 for Symbian OS編程環(huán)境搭建的一點(diǎn)經(jīng)驗(yàn)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2053&Page=1wangxinxin2010-12-3 14:56:16搞了好長(zhǎng)時(shí)間,在網(wǎng)上痛苦的求救了幾天,終于算是把S60+VC6的編程環(huán)境搭好了,可以跑控制臺(tái)程序和有圖形界面的手機(jī)程序,但是制作sis還沒(méi)有試過(guò)。

第一步是準(zhǔn)備幾個(gè)軟件:visual studio VC++6.0(最好是打上sp6補(bǔ)丁的);ActivePerl,我用的是5.8.7,版本高一點(diǎn)低一點(diǎn)應(yīng)該問(wèn)題不大;jdk1.5,這個(gè)要求也不高,似乎1.4也行;serise60 SDK for Symbian OShttp://forum.nokia.com),我用的是2.0版本。關(guān)于最后一個(gè)S60 SDK一定要注意版本,下載之前要看清楚描述,一定是要for VC6的而不是for .net的,這一點(diǎn)甚至是nokia官方網(wǎng)站都有點(diǎn)不負(fù)責(zé)任,比如說(shuō).netvc6都可以用,但其實(shí)就只是for .net的。。。(無(wú)語(yǔ))

安裝順序只要是按照我上面說(shuō)的順序,理論上就沒(méi)有問(wèn)題,當(dāng)然還需要注意的一點(diǎn)就是這四個(gè)軟件最好安裝在同一個(gè)盤(pán)符里。個(gè)人意見(jiàn):C盤(pán)最好了。

如果你已經(jīng)按照上面的順序安裝好了這四個(gè)軟件,那么你已經(jīng)成功了一半,因?yàn)槲蚁嘈胖皇钦胰@些開(kāi)發(fā)工具就夠費(fèi)時(shí)間的了(比如論壇注冊(cè)激活等等),這時(shí)只要將C:\Symbian\7.0s\Series60_v20\Series60Tools\applicationwizard下的avkonappwiz_v20.awxavkonappwiz_v20.hlp兩個(gè)文件拷貝到C:\VC6\Common\MSDev98\Template下就可以在VC6的環(huán)境下創(chuàng)建s60的工程了(在工程一欄里可以看見(jiàn)),聰明的讀者應(yīng)該一眼可以看出上面所寫(xiě)的路徑是我自己機(jī)器上的路徑,因人而異。

VC6開(kāi)發(fā)S60工程的時(shí)候如果有一個(gè)專(zhuān)門(mén)的工具欄會(huì)方便很多,其實(shí)只要將C:\Symbian\7.0s\Series60_v20\Series60Tools\epoctoolbar下的epoctools.dll文件拷貝到C:\VC6\Common\MSDev98\AddIns下面,然后打開(kāi)VC6,在View->Customize中選擇Add-ins and Macro Files標(biāo)簽,將EPOC toolbar Add-in選中就可以了!

做好這些以后,相信你已經(jīng)迫不及待創(chuàng)建一個(gè)S60的工程了吧,放心去做吧,按照默認(rèn)的配置直接點(diǎn)擊Finish就可以了,大功告成!

等等。。。報(bào)錯(cuò)了,說(shuō)什么the specified project could not be inserted into the current workspace。檢查一下環(huán)境變量吧,環(huán)境變量的問(wèn)題似乎也是網(wǎng)上討論最多的問(wèn)題之一,廢話不多說(shuō),我把我覺(jué)得重要的列一下吧:(讀者根據(jù)自己的安裝情況適當(dāng)調(diào)整,很簡(jiǎn)單的)

classpath :c:\Java\jdk1.5.0_04\lib

EPOCROOT(全部大寫(xiě)) :\Symbian\7.0s\Series60_v20\(注意不寫(xiě)盤(pán)符最后以‘\’結(jié)束)

JAVA_HOME :c:\Java\jdk1.5.0_04(這個(gè)好像不是很要緊)

Path:

C:\Program Files\Common Files\SYMBIAN\Tools ;

C:\VC6\VC98\Bin;

C:\Perl\bin\;

%SystemRoot%\system32;

%SystemRoot%;

%SystemRoot%\System32\Wbem;

C:\Java\jdk1.5.0_04\bin;

關(guān)于Path這個(gè)環(huán)境變量有很多是在軟件安裝(比如安裝perl)的時(shí)候就自動(dòng)配置好了,但是如果讀者在裝好之后發(fā)現(xiàn)有問(wèn)題,最好還是關(guān)注一下這個(gè)變量是否正確了:)

這時(shí)用打開(kāi)cmd模式敲epoc回車(chē),看看有什么提示,要是直接就彈出一個(gè)手機(jī)模擬器,就表示沒(méi)有問(wèn)題。如果說(shuō)缺少什么.dll就有點(diǎn)麻煩,我遇到的情況是缺少mspdb60.dll,無(wú)奈只好到網(wǎng)上下載了一個(gè),扔在了C:\WINDOWS\system32目錄下就好了。(這里提供一個(gè)網(wǎng)站http://www.dll-files.com)。

這個(gè)時(shí)候確實(shí)應(yīng)該可以成功的創(chuàng)建一個(gè)s60的工程了,(別問(wèn)我commenframework.h怎么寫(xiě),到Examples\basics\commenframework下面去找!),嘗試這去點(diǎn)擊一下工具欄里提供的按鈕,編譯,寫(xiě)一個(gè)控制臺(tái)程序(注意.mmp文件的修改,是app還是exe),再寫(xiě)一個(gè)有UI的程序(注意選擇程序時(shí)選擇C:\Symbian\7.0s\Series60_v20\Epoc32\release\wins\udeb\epoc.exe要么怎么讓你之前用cmd模式嘗試運(yùn)行epoc呢)。

多了就不多說(shuō)了,如果運(yùn)行期間還是提示缺少什么.dll的話,個(gè)人意見(jiàn)首先看看C:\Symbian\7.0s\Series60_v20\Epoc32\release\wins\udeb里面有沒(méi)有(一般情況是有的)。

]]>
symbian開(kāi)發(fā)介紹http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2052&Page=1wangxinxin2010-12-3 14:50:05  symbian上內(nèi)存不夠多 ,并且cpu速度慢,所以開(kāi)發(fā)的話需要考慮到節(jié)省內(nèi)存的原則 另外就是分配內(nèi)存失敗時(shí)的處理 在這點(diǎn)pc基本上不用考慮 因?yàn)橛姓鎸?shí)內(nèi)存加上虛擬內(nèi)存 夠用的
  symbian操作系統(tǒng)可能運(yùn)行好幾個(gè)月 但是你的程序隨時(shí)可能因?yàn)楫惓6顺?退出時(shí)釋放程序使用的內(nèi)存及其它相關(guān)資源就相當(dāng)重要
  
界面開(kāi)發(fā)最簡(jiǎn)單的方法是使用c++ 把相關(guān)的圖形操作使用類(lèi)來(lái)封裝,所以symbian的sdk以c++ 類(lèi)庫(kù)形式提供 如果你還是使用c 那還是趕緊學(xué)習(xí)c++

由于symbian運(yùn)行的環(huán)境有限,所以為了提高性能減少資源使用 symbian對(duì)標(biāo)準(zhǔn)c++進(jìn)行了一定的修改,其中最明顯的是去掉了異常處理機(jī)制

另一個(gè)就是對(duì)模板進(jìn)行了簡(jiǎn)化 當(dāng)然模板方面在語(yǔ)言開(kāi)發(fā)中不會(huì)有不同 只是修改了它的實(shí)現(xiàn) 這個(gè)可以不用管 只是像c++中的模板一樣使用好了

symbian在語(yǔ)言級(jí)不支持異常,但是以庫(kù)與宏的形式來(lái)提供對(duì)導(dǎo)常的支持
throw 對(duì)應(yīng)于 User::Leave或是leave相關(guān)函數(shù)
try{}catch(...){}對(duì)于于TRAP和TRAPD宏 TRAPD宏與TRAP只是增加了變量定義過(guò)程 這兩個(gè)沒(méi)有區(qū)別

另外 由于資源有限,所以有些程序可能因?yàn)椴徽5氖褂觅Y源而死掉 或是因?yàn)橘Y源使用完而無(wú)法正常執(zhí)行
這時(shí) 雖然可以自己增加錯(cuò)誤處理過(guò)程 但是這樣的過(guò)程太多了 如內(nèi)存分配 每次分配完 都要檢查是不是成功 沒(méi)有成功就釋放資源程序退出 這樣代碼量就很大 而在實(shí)時(shí)系統(tǒng)中 需要的是代碼少而精
所以 symbian提供了cleanupstack(清除堆棧)機(jī)制
當(dāng)你申請(qǐng)了資源后 把它Push到cleanupstack中 那后面如果某個(gè)申請(qǐng)失敗了 可以直接調(diào)用User::Leave退出程序 操作系統(tǒng)會(huì)自動(dòng)幫你釋放你申請(qǐng)的資源 這樣代碼量就減少
如果已經(jīng)成功的使用完資源了 需要自己釋放 那就調(diào)用PopAndDestroy手動(dòng)釋放它
  
為了保證程序退出時(shí)用戶申請(qǐng)的資源全部釋放(主要是內(nèi)存) 所以symbian同時(shí)提供了heap marking機(jī)制,程序開(kāi)始時(shí)標(biāo)記當(dāng)前堆信息 退出時(shí)檢查并釋放沒(méi)有釋放的堆
  
  總之就是symbian開(kāi)發(fā)中需要自己處理下面的事情:
   trap harness,cleanup stack,leave,heap marking


其實(shí)跟c++比起來(lái) symbian對(duì)釋放資源的操作通過(guò)cleanupstack進(jìn)行了支持
只是需要自己手動(dòng)的把資源放到cleanupstack中
這樣可以認(rèn)為是c++的手動(dòng)管理資源與java的自動(dòng)資源管理的一個(gè)折中
第一個(gè)控制臺(tái)下的hello world程序
很多語(yǔ)言都是從hello world 開(kāi)始 學(xué)習(xí)symbian也不例外 下面從一個(gè)簡(jiǎn)單的hello world程序開(kāi)始 介紹symbian的特點(diǎn)
CODE
//hellotext.cpp
#include
#include
LOCAL_D CConsoleBase* gConsole;
//  Real main function
void MainL()
{
TBuf    helloWorld(_L("hello"));
helloWorld.Append(_L("World"));
gConsole->Printf(helloWorld);
// 可以把上面三句改成gConsole->Printf(_L"hello world");
}
//  Console harness
void ConsoleMainL()
{
gConsole    = Console::NewL(_L("Hello Text"),
         TSize(KConsFullScreen,KConsFullScreen));
CleanupStack::PushL(gConsole);
MainL();
User::After(5000000);
CleanupStack::PopAndDestroy(gConsole);
}
GLDEF_C TInt    E32Main()
{
__UHEAP_MARK;
CTrapCleanup* cleanupStack  = CTrapCleanup::New();
TRAPD(error,ConsoleMainL());
__ASSERT_ALWAYS(!error,User::Panic(_L("SCMP"),error));
delete cleanupStack;
__UHEAP_MARKEND;
return 0;
}


編譯與運(yùn)行
symbian的編譯要求比較奇怪
它需要一個(gè)bld.inf文件與一個(gè)mmp文件
bld.inf聲明build的相關(guān)信息 通常只包括這次build會(huì)引用到的mmp文件
.mmp文件保存工程與makefile相關(guān)的信息 用于具體的build過(guò)程 它也叫makmakefile project ,也就是創(chuàng)建makefile的文件
bld.inf的文件名是固定的
.mmp文件的文件名則根據(jù)不同的工程而起不同的名字
下面是hellotext工程中這兩個(gè)文件的內(nèi)容
CODE
//  BLD.INF
PRJ_MMPFILES
hellotext.mmp
CODE
//  hellotext.mmp
TARGET      HelloText.exe
TARGETTYPE  exe
SOURCEPATH  .
UID         0
SOURCE      hellotext.cpp
USERINCLUDE .
SYSTEMINCLUDE   \epoc32\include
LIBRARY     euser.lib
把上面兩個(gè)文件保存到與hellotext.cpp相同的目錄下
編譯過(guò)程:
1 打開(kāi)一個(gè)dos窗口
2 cd 到hellotext.cpp所在目錄
3 運(yùn)行下面命令
bldmake bldfiles
abld build wins udeb
運(yùn)行完后 你就可以到
epoc/release/wins/udeb目錄下查找hellotext.exe文件
//  BLD.INF
PRJ_MMPFILES
hellotext.mmp
bld.inf只是聲明這個(gè)build需要調(diào)用hellotext.mmp模塊

CODE
// hellotext.mmp
TARGET HelloText.exe 生成的應(yīng)用程序名是hellotext.exe
TARGETTYPE exe 生成的應(yīng)用程序類(lèi)型是exe類(lèi)型,在symbian上可運(yùn)行的程序類(lèi)型有exe與app,另外還支持生成其它類(lèi)型文件,如dll
SOURCEPATH . 在哪里查找源文件 這里指示是在當(dāng)前目錄下
UID 0 對(duì)exe程序不需要指定,這里寫(xiě)0
SOURCE hellotext.cpp 生成應(yīng)用程序需要的源文件,這里是hellotext.cpp 可以有多個(gè)source 一直照這樣的格式寫(xiě)就可以
USERINCLUDE . 用戶自定義的頭文件在哪里查找 這里是當(dāng)前目錄
SYSTEMINCLUDE \epoc32\include 系統(tǒng)頭文件在哪里查找 一般都是這個(gè)值
LIBRARY euser.lib 需要鏈接的庫(kù) 這是euser.lib

symbian的開(kāi)發(fā)環(huán)境是使用perl開(kāi)發(fā)的
所以需要有一個(gè)確定的文件名聲明工程內(nèi)容 這就是bld.inf
bldmake編譯時(shí)先讀bld.inf 看需要哪個(gè)文件指導(dǎo)編譯過(guò)程
然后對(duì)mmp文件進(jìn)行轉(zhuǎn)換,生成makefile及其它相關(guān)的編譯規(guī)則文件 同時(shí)在當(dāng)前目錄下生成abld.bat文件
后面就是使用abld進(jìn)行具體編譯
bld.inf意義就是 build info.編譯信息
mmp文件就是 makmake file
bldmake 就是build make info


bldmake bldfiles 創(chuàng)建build files
abld build wins udeb 創(chuàng)建win simulator unicode debug 版本

另外可能用的其它兩個(gè)命令是
bldmake clean 清除生成的build file,這在改變mmp文件后應(yīng)該做
abld reallyclean 清除生成的目標(biāo)文件(.o) 這在改變?cè)次募䞍?nèi)容后使用


symbian 模擬器樣子
在命令行下輸入epoc得到
如果沒(méi)錢(qián)買(mǎi)智能手機(jī) 如p910 那可以拿這個(gè)來(lái)體會(huì)一下效果



剛才編譯好的程序的運(yùn)行
運(yùn)行epoc/release/wins/udeb/hellotext.exe 看到
沒(méi)有抓圖工具 無(wú)法上傳
代碼說(shuō)明
因?yàn)槭謾C(jī)上沒(méi)有dos或是xterm窗口,所以需要聲明一個(gè)console類(lèi),
打開(kāi)一個(gè)控制臺(tái)窗口
LOCAL_D CConsoleBase* gConsole;
//  Real main function
void MainL()
{
控制臺(tái)打印
gConsole->Printf(_L"hello world");
}
//  Console harness
void ConsoleMainL()
{
NewL類(lèi)似標(biāo)準(zhǔn)c中的new 由于symbian中沒(méi)有異常,
使用leave trapd代替標(biāo)準(zhǔn)c++中throw catch,
所以如果函數(shù)可能會(huì)leave的話 函數(shù)名后會(huì)加上一個(gè)L   
gConsole    = Console::NewL(_L("Hello Text"),
         TSize(KConsFullScreen,KConsFullScreen));
symbian中為了避免資源瀉漏 使用cleanupstack把需要釋放的內(nèi)容放到cleanupstack中,
當(dāng)程序非法退出時(shí) symbian操作系統(tǒng)會(huì)自動(dòng)通過(guò)cleanupstack來(lái)對(duì)資源進(jìn)行釋放
保證資源的釋放放是重要的
因?yàn)閟ymbian可用的資源并不多 內(nèi)存現(xiàn)在最多也就16M
而它可能一直運(yùn)行好幾個(gè)月(想看如果你不常關(guān)機(jī)的話)
CleanupStack::PushL(gConsole);
調(diào)用自己的函數(shù)
MainL();
停止5秒 讓你看到屏幕顯示
User::After(5000000);
手動(dòng)釋放剛才申請(qǐng)的資源
CleanupStack::PopAndDestroy(gConsole);
}
symbian中exe程序的入口定義如下GLDEF_C TInt    E32Main
而不是標(biāo)準(zhǔn)C中的的main
可以認(rèn)為symbian自己定義了main函數(shù),
然后在里面進(jìn)行自己的初始化
初始化完后再調(diào)用E32main
(在psos下開(kāi)發(fā)時(shí)也是這樣 psos的入口函數(shù)是root 在其它實(shí)時(shí)系統(tǒng)開(kāi)發(fā)與普通系統(tǒng)不同
因?yàn)榭赡苄枰厥獾某跏蓟?)
GLDEF_C TInt    E32Main()
{
__UHEAP_MARK;定義堆保護(hù) 保證程序退出時(shí)會(huì)釋放資源
創(chuàng)建清除堆棧類(lèi)
CTrapCleanup* cleanupStack  = CTrapCleanup::New();
TRAPD(error,ConsoleMainL());  這個(gè)相當(dāng)于標(biāo)準(zhǔn)c++中的catch(...)
__ASSERT_ALWAYS(!error,User::Panic(_L("SCMP"),error));
delete cleanupStack;
__UHEAP_MARKEND; 堆保護(hù)完成 在這里釋放掉所有內(nèi)存
return 0;
}
結(jié)合上面的代碼看symbian提供的機(jī)制
Leave , trap,cleanupstack ,heapmarking 都存在了

這是一個(gè)典型的symbian程序都會(huì)使用到的功能


函數(shù)是不是會(huì)Leave 這個(gè)在symbian中是以函數(shù)名的形式提供
函數(shù)名后面是L的表示它會(huì)Leave 函數(shù)名后面是LC的表示它會(huì)Leave,并且已經(jīng)把指針push到cleanupstack中了

leave的情況:
是不是任何情況都會(huì)Leave呢
當(dāng)然不是 只有資源申請(qǐng)失敗或是操作失敗時(shí)時(shí)會(huì)Leave 在系統(tǒng)庫(kù)提供的函數(shù)是這樣的

一般它也會(huì)提供不Leave的相同功能的函數(shù)
如Defined in TDesC8: 看TDesc8的類(lèi)說(shuō)明
Alloc(), AllocL(), AllocLC(), Compare(), CompareC(), CompareF(), Find(), Find(), FindC(), FindC(), FindF(), FindF(), Left(), Length(), Locate(), LocateF(), LocateReverse(), LocateReverseF(), Match(), MatchC(), MatchF(), Mid(), Mid(), Ptr(), Right(), Size(), operator!=(), operator<(), operator<=(), operator==(), operator>(), operator>=(), operator[]()

這里提供了Alloc()和AllocL()
看它們的說(shuō)明
Alloc()
HBufC8* Alloc() const;
Description
Creates a new 8 bit heap descriptor and initialises it with a copy of this descriptor's data.

Return value
HBufC8* A pointer to the new 8 bit heap descriptor, if creation is successful. NULL, if creation of the descriptor fails.

]]>
解析Symbian UIQ的文件系統(tǒng)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2051&Page=1wangxinxin2010-12-3 14:09:34
以下內(nèi)容含腳本,或可能導(dǎo)致頁(yè)面不正常的代碼
說(shuō)明:上面顯示的是代碼內(nèi)容。您可以先檢查過(guò)代碼沒(méi)問(wèn)題,或修改之后再運(yùn)行.
]]>
文本數(shù)據(jù)及二進(jìn)制數(shù)據(jù)的描述符介紹http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2050&Page=1wangxinxin2010-12-3 14:07:05

文本數(shù)據(jù)及二進(jìn)制數(shù)據(jù)的描述符介紹


Symbian OS: 文本數(shù)據(jù)及二進(jìn)制數(shù)據(jù)的描述符介紹| 5
1. 簡(jiǎn)介
描述符(Descriptors )是Symbian OS 的基本組成部分,它提供了對(duì)字符串進(jìn)行操作的一些
規(guī)則,同時(shí)也用作二進(jìn)制數(shù)據(jù)的容器(containers )。描述符在許多函數(shù)原型中使用,因
此,理解如何有效地使用描述符是非常重要的。
本文討論了各種描述符,范圍從基本知識(shí)到高級(jí)功能。讀者至少應(yīng)該熟悉一些基本的
Symbian OS 概念;可以參閱《Symbian 開(kāi)發(fā)伙伴庫(kù)》[SYM70]中的《基本編程規(guī)范》一
節(jié)。
第二章幫助讀者理解使用傳統(tǒng)C 字符串和Symbian 描述符時(shí)遇到的一些內(nèi)存問(wèn)題。第三章
通過(guò)類(lèi)型的層次結(jié)構(gòu)、各類(lèi)型的特點(diǎn)、字符串操作方法、字符轉(zhuǎn)換,以及一些調(diào)試問(wèn)題等對(duì)
各種描述符進(jìn)行了簡(jiǎn)要解釋。第四章給出了一些與描述符有關(guān)的APIs。第五章講述了如何用
描述符替換各種C 字符串,以便讓熟悉C 語(yǔ)言的程序員們能快速找到相應(yīng)的規(guī)則。
版本1.0 | 2004 年5 月28 日

Symbian OS: 文本數(shù)據(jù)及二進(jìn)制數(shù)據(jù)的描述符介紹| 6
2. 變量聲明與內(nèi)存
在本章中,程序員們可以了解到字符串聲明與內(nèi)存的關(guān)系(此信息一般也適用于變量聲
明)。各種資源受限的手持設(shè)備其內(nèi)存問(wèn)題和資源管理問(wèn)題至關(guān)重要。理解Symbian OS 編
程的一些基本原則對(duì)于設(shè)計(jì)出具有良好性能的軟件及其重要。
2.1 節(jié)講述了邏輯內(nèi)存區(qū)。2.2 節(jié)討論了C 字符串聲明的修正,其目的是將讀者引導(dǎo)到
Symbian 字符串聲明及其與內(nèi)存之間的關(guān)系等課題。
許多有關(guān)內(nèi)存的問(wèn)題可參閱《針對(duì)移動(dòng)電話的Symbian OS C++ 》[SOSC]一書(shū)。還可參閱
《Symbian 開(kāi)發(fā)伙伴庫(kù)》[SYM70]一文;讀者可以閱讀有關(guān)進(jìn)程、線程,以及內(nèi)存管理等方
面的課題。
2.1 變量與內(nèi)存
聲明變量時(shí),會(huì)在內(nèi)存中的某個(gè)地方保留其內(nèi)部數(shù)據(jù)機(jī)構(gòu)。根據(jù)這種聲明的具體情況,數(shù)據(jù)
被儲(chǔ)存到下列內(nèi)存類(lèi)型之一:
. 二進(jìn)制程序。編譯器對(duì)各個(gè)源程序進(jìn)行編譯,而連接器將他們連接起來(lái)。其結(jié)果
就被稱為二進(jìn)制程序。當(dāng)聲明靜態(tài)變量和常變量時(shí),其數(shù)據(jù)被包括在變量中并成
為二進(jìn)制程序的一部分。必須在程序代碼中對(duì)這類(lèi)變量進(jìn)行初始化。因?yàn)樗鼈兌?br/>是常量,在程序運(yùn)行過(guò)程中并不能改動(dòng)這些數(shù)據(jù),所以也將它們作為該二進(jìn)制程
序的一部分傳遞。
既可以直接從ROM 運(yùn)行程序,也可以將其加載到只讀RAM 中,并從那里運(yùn)
行。這兩種內(nèi)存中的變量都受到保護(hù),不會(huì)被某些不適當(dāng)?shù)拇a所修改。這就是
諸如文字這類(lèi)常量靜態(tài)數(shù)據(jù)被儲(chǔ)存在二進(jìn)制程序中的原因。
為二進(jìn)制程序所聲明的變量都存在于該程序的整個(gè)生命周期之中。它們不需要程
序員進(jìn)行任何內(nèi)存管理;當(dāng)程序結(jié)束時(shí),為該二進(jìn)制程序所分配的RAM 被操作
系統(tǒng)所釋放。而如果是ROM,就不必為二進(jìn)制程序作任何事情。
. 全局?jǐn)?shù)據(jù)。如果某個(gè)變量被聲明成靜態(tài)的,但并不是常量,它就被認(rèn)為是全局?jǐn)?shù)
據(jù)。在Symbian OS 中,只有可執(zhí)行的.exe 才具有全局?jǐn)?shù)據(jù)。如果為.dll 聲
明了全局?jǐn)?shù)據(jù),那么當(dāng)針對(duì)ARM 平臺(tái)編譯時(shí),編譯過(guò)程就會(huì)報(bào)錯(cuò)停止。
當(dāng).exe 被作為一個(gè)進(jìn)程而啟動(dòng)并具有全局?jǐn)?shù)據(jù)時(shí),會(huì)為全局?jǐn)?shù)據(jù)保留一個(gè)自己
的內(nèi)存區(qū)域。由于使用全局?jǐn)?shù)據(jù)通常并非好設(shè)計(jì),而且由于許多應(yīng)用都是.dll
可執(zhí)行程序,對(duì)全局?jǐn)?shù)據(jù)的使用不在本文中講解。
. 棧。Symbian OS 中的每個(gè)線程都有其自己的棧。自動(dòng)化變量被分配到該棧中。
當(dāng)調(diào)用某個(gè)方法時(shí),其參數(shù)也被分配到這個(gè)棧中。因?yàn)闂3叽绾苡邢蓿▽?duì)于
Symbian OS 更是如此),只有一小部分的數(shù)據(jù)可以被分配到這個(gè)棧中。在函數(shù)
調(diào)用中,必須使用對(duì)象的指針或引用,以降低將這些對(duì)象副本分配到棧中的需
求。
由于規(guī)定了棧中變量的生命周期,所以當(dāng)該程序塊結(jié)束時(shí),該程序塊中全部已被
聲明的自動(dòng)化變量都會(huì)被自動(dòng)刪除。如果該變量是一個(gè)類(lèi),它有一個(gè)析構(gòu)函數(shù),
那么在將該對(duì)象移出棧之前就會(huì)先調(diào)用這個(gè)析構(gòu)函數(shù)。
. 堆。Symbian OS 中的每個(gè)線程都有一個(gè)堆。這是一個(gè)內(nèi)存區(qū)域,其中放置所有
被動(dòng)態(tài)分配的對(duì)象。用對(duì)象C++ 的關(guān)鍵字new 將各個(gè)對(duì)象分配到這個(gè)堆中

]]>
讓您知道什么是Series操作系統(tǒng)的手機(jī)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2049&Page=1wangxinxin2010-12-3 14:05:48技術(shù)討論之提升6120c運(yùn)行內(nèi)存http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2048&Page=1wangxinxin2010-12-3 14:03:08小6的CPU很強(qiáng)大,能比美N系列機(jī)型,給了我們很大的發(fā)揮空間
但是緊緊20M左右的運(yùn)行內(nèi)存,真是有點(diǎn)捉襟見(jiàn)肘
特別是破解后運(yùn)行N-GAGE平臺(tái)游戲,幾乎打開(kāi)不了別的軟件
唯一的方法就是提高運(yùn)行內(nèi)存了
到處查找了一下,最多方法就是用軟件整理內(nèi)存,或者刪除一些不常用的系統(tǒng)進(jìn)程
但是騰出來(lái)的一點(diǎn)點(diǎn)空間又怎么足夠我們使用呢?

我們首先了解一下6120c的硬件配置吧(摘錄自諾基亞官網(wǎng)):
CPU:Single CPU
CPU Type: ARM 11
CPU Clock Rate: 369 MHz
Memory:Max User Storage: 35 MB
NAND Memory: 128 MB
SDRAM Memory: 64 MB
~20 MB Free Executable RAM Memory
Memory Card: Micro SD
Max Memory Card Size: 2 GB
Memory Card Feature: Hot Swap
Unlimited Heap size
Unlimited Jar size


從Memory中我們可以看出SDRAM有64M
這64M就有系統(tǒng)從邏輯上分成了2部分
通俗地說(shuō)就是分成了C盤(pán)和運(yùn)行內(nèi)存
其中C盤(pán)有35M是保留給用戶使用的,用于安裝軟件等
我們的內(nèi)存卡都是上G的
除非必要,否則程序都裝載卡上
系統(tǒng)提供的35M貯存平常起不到多大作用
關(guān)鍵就在這里
如果我們可以在系統(tǒng)啟動(dòng)之處干預(yù)其SDRAM Memory的分配情況
也就是把Max User Storage適當(dāng)?shù)卣{(diào)小
讓運(yùn)行內(nèi)存獲得更多的分配
那就能達(dá)到目的了

而處于Symbian系統(tǒng)編程入門(mén)階段的在下
通過(guò)普通的編程絕對(duì)不能達(dá)到目的
在塞班這里臥虎藏龍,懇請(qǐng)熟悉Symbian系統(tǒng)內(nèi)核的高人指點(diǎn)迷津
請(qǐng)各位參與討論,把自己的智慧發(fā)揮出來(lái)吧


P.S:本人對(duì)Symbian系統(tǒng)理解尚淺,若想法有誤,請(qǐng)狠狠指出,多謝多謝!


后記:
圖片點(diǎn)擊可在新窗口打開(kāi)查看 本來(lái)想法確實(shí)有誤
首先SDRAM需要通過(guò)不斷刷新維持?jǐn)?shù)據(jù)
斷電后數(shù)據(jù)會(huì)丟失
所以不可能是C盤(pán)的存儲(chǔ)器

以上是諾基亞開(kāi)發(fā)者論壇里手機(jī)終端規(guī)范的數(shù)據(jù)
出錯(cuò)可能性很小
關(guān)鍵是本人理解錯(cuò)誤
不過(guò)有點(diǎn)搞不明白
用軟件測(cè)試6120c顯示
內(nèi)存大小為48.6M
是不是SDRAM的64M
真不知道剩下的用到了哪里去
]]>
Symbian 平臺(tái)技術(shù)開(kāi)發(fā)技巧匯總http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2047&Page=1wangxinxin2010-12-3 13:55:44
  結(jié)合RApaLsSession和TApaTaskList應(yīng)該可以做到.

  RApaLsSession:

  GetAppIcon()

  GetAppInfo()

  TApaTaskList:

  FindApp()

  問(wèn)題二、從收件箱讀取彩信圖片

  mmslist實(shí)現(xiàn)了首先以listbox列表的形式列出了收件箱中的所有彩信,選擇某一條彩信后可以顯示出它的發(fā)送端號(hào)碼和彩信的文本信息;現(xiàn)在我想讓它顯示發(fā)送端號(hào)碼和彩信圖片(假設(shè)我的彩信都是圖片格式);請(qǐng)教兩位應(yīng)該怎么才能實(shí)現(xiàn)讀彩信圖片并顯示的功能。

  下面是讀彩信文本信息的代碼,你們參考一下:

  void CMmslController::GetMessageL( const TDesC& aItem,

  TDes& aMessageText ) const

  {

  //Read the message Uid from aItem

  TUint32 id = 0;

  TLex lexer( aItem );

  lexer.SkipSpace();

  TChar ch( lexer.Get() );

  while ( ( ch != ‘\t’ ) && ( ch != 0 ) ) // Finding end of 1.st line

  {

  ch = lexer.Get();

  }

  lexer.SkipSpace();

  lexer.Val( id, EHex );

  if( iCurEntries->Find( id ) == KErrNotFound )

  {

  return;

  }

  CMsvEntry* msvEntry = iSession->GetEntryL( id );

  CleanupStack::PushL( msvEntry );

  const TMsvEntry& msgEntry = msvEntry->Entry();

  CBaseMtm* clientMtm = iMtmReg->NewMtmL( msgEntry.iMtm );

  CleanupStack::PushL( clientMtm );

  clientMtm->SwitchCurrentEntryL( msvEntry->EntryId() );

  // An instance of the TDesOverflow derived class used to suppress

  // the panic that would be generated if buffer length was exceeded

  // in calls to AppendFormat

  TOverrideOverFlow noOflo;

  // Text is located in iDescription field.

  aMessageText.AppendFormat( msgEntry.iDescription, &noOflo );

  //aMessageText.AppendFormat( msgEntry.iDetails );

  CleanupStack::PopAndDestroy( 2 ); // clientMtm, msvEntry

  }

  問(wèn)題三、如何讓程序在安裝后自動(dòng)運(yùn)行

  如何讓一個(gè)程序(或是一個(gè)server)在安裝后自動(dòng)運(yùn)行于手機(jī)中,這是非常容易的,只需在你的PKG文件中,在包含你的app或exe文件的那行末尾加上“FR,RI”。

  “FR”表示“File Run”,而“RI”則表示“Run during Installation”。請(qǐng)注意,務(wù)必要先開(kāi)始rsc,aif,mbm文件的安裝,然后才能是APP等(也就是在pkg文件的末尾進(jìn)行app的安裝)

  舉例:

  “\Symbian.1\Series60\Epoc32\release\thumb\urel\MyApp.rsc” -

  “!:\system\apps\MyApp\MyApp.rsc”

  “\Symbian.1\Series60\Epoc32\release\thumb\urel\MyApp_caption.rsc” -

  “!:\system\apps\MyApp\MyApp_caption.rsc”

  “\Symbian.1\Series60\Epoc32\release\thumb\urel\MyApp.aif” -

  “!:\system\apps\MyApp\MyApp.aif”

  “\Symbian.1\Series60\Epoc32\release\thumb\urel\MyApp.app” -

  “!:\system\apps\MyApp\MyApp.app”,FR,RI

  問(wèn)題四、全面了解文件類(lèi)型和從屬關(guān)系

  下圖顯示了在一個(gè)典型的Symbian程序中各文件的從屬關(guān)系。

  

  .hrh文件中包含所有要在.rss、.h和.cpp中使用的枚舉類(lèi)型。它們主要使用在應(yīng)用程序的菜單、工具欄等地方,下面展示了一個(gè)典型的例子:

  //MyApp.hrh

  //

  enum{

  EMyAppCmdOpenFile = 0×6000,

  EMyAppCmdEdit,

  };

  按照慣例這些命令I(lǐng)D值的范圍應(yīng)該從0×6000開(kāi)始向上。

  .rss文件中是資源文件,這些文件包括所有靜態(tài)字符串、按鈕、菜單和列表等的定義,都使用在應(yīng)用程序UI中。此外,Nokia Series 60向?qū)н可能生成一個(gè).loc文件,這個(gè)文件同.rss文件很相似但只用于描述你程序中的靜態(tài)字符串,利用它你可以很容易的將程序變成多語(yǔ)言版本。

  .rsg是生成的資源文件。它們是在編譯時(shí)刻由資源編譯器產(chǎn)生的,.cpp文件將包含它們以便處理資源。

  .mbm是symbian位圖文件,它里面可以存儲(chǔ)幾個(gè)位圖。

  .mbg是在創(chuàng)建.mbm時(shí)生成的。這些文件一般包含在那些使用位圖的RSS文件中,一個(gè)mbg文件包括在.mbm中各位圖的ID。

  問(wèn)題五、如何在網(wǎng)絡(luò)通訊中正確顯示中文

  1。經(jīng)過(guò)對(duì)照GB2312/GBK編碼表,在程序中定義_LIT8(KTest, “中文測(cè)試”);是GB2312/GBK編碼

  2。直接從輸入框取出的字符串,經(jīng)過(guò)按照byte分析并比較中文和unicode對(duì)照表,發(fā)現(xiàn)是UTF-16LE(Sixteen-bit UCS Transformation Format, little-endian byte order)編碼

  3,中文對(duì)服務(wù)器的傳輸建議統(tǒng)一處理成UTF8編碼進(jìn)行,從對(duì)話框獲得的也一樣處理,服務(wù)器需要對(duì)應(yīng)識(shí)別過(guò)來(lái)的字符串并做處理。

  問(wèn)題六、如何動(dòng)態(tài)更改CEikLabel 的text

  CEikLabel* iLabelStatus;

  …..

  iLabelStatus = new (ELeave) CEikLabel;

  iLabelStatus->SetContainerWindowL( *this );

  iLabelStatus->SetTextL( this->iStatusStr );

  ….

  //動(dòng)態(tài)在這里更改

  iLabelStatus->SetTextL(iStatusStr);

  iLabelStatus->DrawNow();

  如果初始化時(shí)就無(wú)法顯示,請(qǐng)對(duì)照helloworld代碼檢查自己label是否設(shè)置正確;如果是進(jìn)度進(jìn)行中無(wú)法顯示,請(qǐng)檢查CActive是否正確執(zhí)行,單步DrawNow是否被正確調(diào)用。

  問(wèn)題七、在listbox中怎么處理所選項(xiàng)的事件

  觸發(fā)事件并不是很復(fù)雜的事情,

  TKeyResponse CXXContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)

  {

  TInt code = aKeyEvent.iCode;

  switch(code)

  {

  // is navigator button pressed導(dǎo)航按鈕被按下時(shí)

  case EKeyOK:

  {

  // pass the key press event to view,

  // then view will pass it to ui class’s handler

  iXXView->ProcessListEvent(iListBox->CurrentItemIndex()) ;

  }

  return (EKeyWasConsumed);

  case EKeyLeftArrow :

  case EKeyRightArrow :

  return (EKeyWasConsumed);

  default:

  // Let Listbox take care of its key handling

  return iListBox->OfferKeyEventL(aKeyEvent, aType) ;

  }

  }

  這個(gè)iXXView的ProcessListEvent()函數(shù)就是傳入當(dāng)前用戶選擇的那個(gè)list item的index。

  問(wèn)題八、pkg文件中指定多個(gè)操作系統(tǒng)版本

  pkg file定義了安裝文件(sis)的內(nèi)容,它包括應(yīng)用程序的UID,一個(gè)支持的語(yǔ)言列表,目標(biāo)產(chǎn)品的UID和打包在sis的一組文件:

  ; MyGame.pkg

  ; Specifies an installation file for MyGame ///////為MyGame文件制定一個(gè)安裝文件

  ;Languages

  &EN

  ;Header

  #,(0×1000ABCD),1,0,0

  ; Required line for Series 60 devices. Defines the target product

  ; UID.

  (0×101F6F88), 0, 0, 0,

  “\epoc32\release\thumb\urel\MyGame.app”-“!:\system\apps\MyGame\MyGame.app”

  “\epoc32\release\thumb\urel\MyGame.rsc”-“!:\system\apps\MyGame\MyGame.rsc”

  “\epoc32\release\thumb\urel\MyGame.mbm”-“!:\system\apps\MyGame\MyGame.mbm”

  “\epoc32\release\thumb\urel\MyGame.aif”-“!:\system\apps\MyGame\MyGame.aif”

  “..\MyGame\MyGameSample.wav”-“!:\system\apps\MyGame\MyGameSample.wav”

  Product UID定義了應(yīng)用程序的目標(biāo)環(huán)境,大部分的s60版本是向下兼容的。

  參見(jiàn)下表:

  Nokia 7650 0×101F6F87

  Nokia 3650 0×101F7962

  Nokia 9210/9290 0×10005E33

  Nokia N-gage 0×101F8A64

  Siemens SX1 0×101F9071

  Series 60 Platform v0.9 0×101F6F88

  Series 60 Platform v1.0 0×101F795F

  Series 60 Platform v1.1 0×101F8201

  Series 60 Platform v1.2 0×101F8202

  Series 60 Platform v2.0 0×101F7960

  如果程序需要依據(jù)各不同的平臺(tái)來(lái)進(jìn)行安裝,那就可以使用條件語(yǔ)句塊來(lái)處理,這時(shí)pkg里的語(yǔ)句如下:

  ;

  ; Files to install

  ;

  IF MachineUID=0×101fb3dd

  ; Nokia 6600 specific files

  “..\MyFiles\FileFor6600.dat”-“!:\system\apps\MyGame\MyData.dat”

  ELSEIF MachineUID=0×101f466a

  ; Nokia 3650 specific files

  “..\MyFiles\FileFor3650.dat”-“!:\system\apps\MyGame\MyData.dat”

  ELSE

  ; Files for other devices

  “..\MyFiles\FileForOthers.dat”-“!:\system\apps\MyGame\MyData.dat”

  ENDIF

  就可以生成一個(gè)支持多平臺(tái)的安裝文件,除了機(jī)器UID外,還有很多屬性,如內(nèi)存和CPU的標(biāo)識(shí):

  注意,機(jī)器UID和Product UID是不同的,見(jiàn)下:

  Nokia 7650 0×101F4FC3

  Nokia 3650 0×101F466A

  Nokia 6600 0×101FB3DD

  Nokia 9210/9290 0×10005E33

  Nokia N-Gage 0×101F8C19

  Win32 Emulator 0×10005F62

  可以使用如下的代碼來(lái)找出該設(shè)備的機(jī)器UID:

  #include //and link with hal.lib

  TInt machineUid = 0;

  HAL::Get(HALData::EmachineUid, machineUid);

  問(wèn)題九、如何按字節(jié)讀取文件

  1.RFile::Read()

  TInt Read(TDes8& aDes,TInt aLength) const;

]]>
如何使用新版HooKlogger查找內(nèi)存泄露http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2046&Page=1wangxinxin2010-12-3 13:54:40
我才學(xué)塞班1個(gè)多星期吧,對(duì)其理解還不是很透徹,不過(guò)現(xiàn)在已經(jīng)會(huì)使用HOOKLOGGER來(lái)找內(nèi)存泄露了,這個(gè)工具還是蠻準(zhǔn)的,由于官方最新版的安裝方法和老版本的稍微有些區(qū)別了,所以導(dǎo)致很多人都安裝失敗,我也是看了鬼人王大哥的帖子后才知道有這個(gè)軟件的,不過(guò)鬼人王大哥的帖子的安裝方法貌似已經(jīng)過(guò)時(shí)了,反正我安了后模擬器再也啟動(dòng)不了了,導(dǎo)致GHOST了1次,還好備份了。
首先建議大家設(shè)置好環(huán)境后一定要GHOST備份呀,要是模擬器啟動(dòng)不了了那就麻煩了,費(fèi)時(shí)費(fèi)力啊。

這個(gè)方法適用于第3版SDK,貌似新的HOOK工具不能用于低于2版FP3之前的版本,不保證該帖子的時(shí)效性,具體還得看hooklogger官網(wǎng)(我是直接學(xué)的3版,對(duì)2版一點(diǎn)也不懂)。
首先去官網(wǎng)下載安裝包(如果能從人王大哥那要來(lái)老版本的話,可以用他的方法來(lái)安裝,不過(guò)新版本不用設(shè)置環(huán)境變量,不用重啟如果沒(méi)記錯(cuò)的話,就1條命令搞定):
1. 開(kāi)始-運(yùn)行 CMD,在控制臺(tái)下邊輸入:SetupHooks  S60_3rd_MR:com.nokia.s60

如上圖所示,因?yàn)槲乙呀?jīng)安裝好了,所以提示我有個(gè)目標(biāo)存在。
SetupHooks是命令,空格后是我3版的版本號(hào)吧,也就是在控制臺(tái)下輸入devices后可以看到的,也可能你們和我的不一樣,我們老師推薦弄MR的。
輸入完命令按完回車(chē)后,會(huì)有提示,提示很簡(jiǎn)單看看就能知道成功與否。

2.好了,安完后就可以使用它方便快捷的來(lái)找內(nèi)存泄露了,先運(yùn)行l(wèi)og,再運(yùn)行模擬器哦,先說(shuō)下我的環(huán)境:3版SDK,IDE安了VS2005和CARBIDE,不過(guò)主要用2005開(kāi)發(fā)
打開(kāi)hooklogger后標(biāo)題會(huì)顯示沒(méi)有和模擬器連接,如下圖:

接著我們啟動(dòng)模擬器吧(我估計(jì)是安裝某個(gè)環(huán)節(jié)出了點(diǎn)問(wèn)題,反正一啟動(dòng)就提示leave了(出現(xiàn)時(shí)會(huì)自動(dòng)進(jìn)入debug模式,選continue就行),不過(guò)無(wú)視它吧,狂點(diǎn)運(yùn)行肯定可以啟動(dòng)模擬器)
啟動(dòng)成功后進(jìn)入我們的目標(biāo)工程,運(yùn)行一遍直到內(nèi)存泄露為止,接著模擬器界面出現(xiàn)提示說(shuō)內(nèi)存泄露在內(nèi)存的某個(gè)位置,如下圖:

接著我們切換到log的界面吧,找到Threads(最后1個(gè))這個(gè)標(biāo)簽,把下拉條拉到最底部,我們能看到我們工程的這個(gè)線程,如下圖:

這個(gè)是我的工程名,一時(shí)心急,名字敲錯(cuò)了,嘿嘿,這個(gè)一般也是在線程的最底部的位置,接著右鍵單擊,選擇如圖:

接著log會(huì)自己跳轉(zhuǎn)到Heap標(biāo)簽下,里面顯示了內(nèi)存地址,如圖:

對(duì)比一下模擬器報(bào)錯(cuò)的地址很輕易就找到了位置,我們雙擊一下,自動(dòng)進(jìn)去一個(gè)窗口,里面顯示了1堆代碼,一般里面列出的第1個(gè)函數(shù)就是內(nèi)存泄露的位置,如圖(該點(diǎn)是從人王大哥那學(xué)到的):

接著我們雙擊進(jìn)入這個(gè)函數(shù),也會(huì)自動(dòng)蹦出1個(gè)對(duì)話框窗體,里面高亮部分就是我們出現(xiàn)泄露的地方,如圖:

接著我們就可以去代碼里找了,注意不一定出現(xiàn)泄露的地方就是在該句代碼附近,而只是表明,這個(gè)泄露跟這句代碼是有關(guān)系的,果然我這new了1個(gè)空間,很可能是我沒(méi)有釋放導(dǎo)致泄露的,那就去釋放的地方看看吧。

先解釋一下我這個(gè)有意的泄露吧,我這定義了1個(gè)局部指針,但不是在這個(gè)類(lèi)里析構(gòu)把它放掉的,我定義了1個(gè)rpointerarray數(shù)組保存這些指針,而這些指針都是保存在我自定義的1個(gè)9宮格類(lèi)里,所以自然我們要去我9宮格類(lèi)的析構(gòu)里看看到底問(wèn)題出在哪,如圖:

果然,我的數(shù)組只reset了沒(méi)有把new在堆上的數(shù)據(jù)給釋放,所以導(dǎo)致泄露了,只要把注掉的那句代碼替換reset就OK了。
接著我們重新build一下工程吧,這個(gè)時(shí)候可能會(huì)報(bào)錯(cuò),沒(méi)事,轉(zhuǎn)到log界面,這時(shí)它會(huì)碰出1個(gè)詢問(wèn)框,大概就是左邊是個(gè)relloc按鈕右邊是個(gè)release按鈕,我選擇了左邊的按鈕,接著build一切OK。
END。
由于本人接觸計(jì)算機(jī)時(shí)間有限,這也是在技術(shù)論壇上的第1個(gè)帖子,我是今年7月才第1次接觸C語(yǔ)言的,現(xiàn)在塞班也才學(xué)1個(gè)多星期,肯定會(huì)有所紕漏,希望大家指正,在次再次感謝人王大哥的帖子,如果有人轉(zhuǎn)載希望表名出自devdiv
]]>
Symbian 平臺(tái)安全性的測(cè)試與認(rèn)證(1)http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=46&ID=2045&Page=1wangxinxin2010-12-3 13:25:21概要與描述- G; p% f8 l/ U4 G* }. w2 E: D
中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字- e2 T' T5 @! m" b. [# d7 y
2.1 對(duì)Symbian平臺(tái)安全模型的論證
- B: s7 U# F5 L* v  z概要與描述移動(dòng)設(shè)備所具有的能力日益增長(zhǎng),因此,用戶在使用移動(dòng)設(shè)備處理大量的重要信息時(shí),移動(dòng)資源所擁有資源的重要性亦不斷增長(zhǎng)。然而,對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),雖然他們和普通的計(jì)算機(jī)并不一樣,但令用戶發(fā)現(xiàn)他們的電話易用、可靠、安全和值得信任仍是我們的目標(biāo)。從這個(gè)目標(biāo)出發(fā),我們向大家介紹Symbian 平臺(tái)安全模型。這個(gè)模型的目的不是令用戶關(guān)掉他們的手機(jī),而是想讓用戶和以前一樣,將其作為一個(gè)簡(jiǎn)便的,值得信任的工具來(lái)使用。將這個(gè)設(shè)想應(yīng)用在廣大用戶群所擁有的只能設(shè)備上,是完全可能的。同時(shí),這個(gè)目標(biāo)亦會(huì)為應(yīng)用程序帶來(lái)大批的用戶。 2.2 Symbian 平臺(tái)安全模型實(shí)踐概要與描述; \2 f' e9 X' [, Z$ S) S
Symbian安全模型主要使用以下三種模型:
4 N- o; b; F- ~) Q5 m& E5 b概要與描述1.基于可信計(jì)算。中國(guó)移動(dòng)論壇# w+ }% ^8 K- Q0 X- P  C% c( F
2.?dāng)?shù)據(jù)牢籠
5 g4 X, H5 B* b, C3.功能 2.2.1 基于可信計(jì)算中國(guó)移動(dòng)論壇" ~2 U1 o% \! k; E) g) e4 H2 Q
基于可信計(jì)算是一種關(guān)于強(qiáng)制使用功能和數(shù)據(jù)囚籠模式軟件的集成方式。其包括核心,文件系統(tǒng)和軟件安裝程序。對(duì)于平臺(tái)安全模型來(lái)說(shuō),這是操作系統(tǒng)的控制部分。關(guān)鍵字 keyword- {2 s/ }2 Y+ j
2.2.2 數(shù)據(jù)牢籠
; d2 H/ ]- e1 H中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字數(shù)據(jù)牢籠意味著用戶只能訪問(wèn)文件系統(tǒng)的部分區(qū)域。在實(shí)際應(yīng)用中,用戶可以訪問(wèn)他們自己的目錄與標(biāo)記設(shè)定為開(kāi)放的目錄。這意味著,舉個(gè)例子,一個(gè)應(yīng)用程序不能訪問(wèn)其它應(yīng)用程序的私有目錄與數(shù)據(jù)。 其獲取限定方法如下:' c4 j7 z  ?% T3 c* Q
\資源
& z, z6 `7 q4 P應(yīng)用程序圖標(biāo)的位置,位圖等等。僅在應(yīng)用程序安裝時(shí)允許寫(xiě)操作。所有人都可以對(duì)文件夾執(zhí)行讀操作。概要與描述2 ^# B0 k& f$ l! J
\系統(tǒng)
8 y* g5 a7 e, i7 ^3 n2 a5 T" D/ g211.139.191.144:8001二進(jìn)制的位置,包括應(yīng)用程序安裝注冊(cè)與登陸證書(shū)。用戶僅在應(yīng)用程序安裝時(shí)擁有寫(xiě)權(quán)限。當(dāng)備份應(yīng)用程序時(shí)有讀權(quán)限。
5 ~* C! s. N  K% i6 z. O, O5 `\ 私有中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字: @# I6 ~  R* `- X2 ~8 c7 J; a
這是每個(gè)應(yīng)用程序的私有空間。用戶僅在應(yīng)用程序所在的目錄有讀權(quán)限與寫(xiě)權(quán)限。當(dāng)備份軟件時(shí),允許對(duì)該目錄進(jìn)行讀寫(xiě)。中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字# L: k0 }2 Z( S1 z% b
\其它1 I$ q( f6 g* F  r& Z  F' N0 t1 u
可以對(duì)其它所有的文件夾不受限制的訪問(wèn),例如,用戶的照片,音樂(lè)和文檔。 2.2.3 功能關(guān)鍵字 keyword# O: ^. O( r! E" R& i; ?% W
可以通過(guò)證明為一類(lèi)應(yīng)用程序接口授予功能訪問(wèn)權(quán)限。例如Symbian 認(rèn)證。功能可被分為4個(gè)部分。
( T* N1 |- Q* L; w( i概要與描述1.對(duì)所有開(kāi)放
- v/ F: X4 m2 J* Z中國(guó)移動(dòng)論壇· 在目錄下的應(yīng)用程序接口擁有所有的基本屬性,例如,大部分的單主角游戲。中國(guó)移動(dòng)論壇# A( y5 ]) C# Q! s; a7 O0 W3 s5 }2 M
· 一般來(lái)說(shuō),約60%的應(yīng)用程序接口可以自由使用而不需要定義特別的容量需求。概要與描述8 g: }1 m( [# |' d# @
2.在安裝時(shí)授予用戶中國(guó)移動(dòng)論壇) `2 B) {9 K8 O8 f
· 一些功能可以在用戶進(jìn)行安裝時(shí)進(jìn)行授權(quán)。關(guān)鍵字 keyword5 s; C+ C+ R/ r9 T# P: J7 y) k
· 應(yīng)用程序設(shè)定為默認(rèn)獲得,直到應(yīng)用程序從設(shè)備上移除。
( a9 U5 o' W4 W9 |  W211.139.191.144:8001· 在某些缺省設(shè)備上選項(xiàng)將不被激活。因此用戶不得不單獨(dú)激活那些安裝階段授權(quán)的功能。211.139.191.144:8001% [& O8 V' e" p( k
Symbian 平臺(tái)安全性的測(cè)試與認(rèn)證關(guān)鍵字 keyword9 l/ S/ A/ W/ e6 P

# I; F, d6 Q5 g, Z1 y4 U3.通過(guò)Symbian認(rèn)證授權(quán)
# }/ t/ q# e* v2 m概要與描述· 當(dāng)通過(guò)Symbian認(rèn)證授權(quán)后,一些功能將可用。0 n4 P# ?" R) Q$ O% ]" j+ m, b
· 某些敏感功能需要在使用時(shí)進(jìn)行驗(yàn)證。也可能需要通過(guò)測(cè)試。中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字; j. y% G. H/ W
· 大多數(shù)敏感功能要求開(kāi)發(fā)商填寫(xiě)功能需求表與平臺(tái)制造商同意表,還需要通過(guò)一些包括額外平臺(tái)開(kāi)發(fā)商所定義規(guī)范的測(cè)試。關(guān)于S60的規(guī)范可以在www.forum.nokia.com/testing的Nokia Test Criteria for Symbian C++ Applications文檔中找到。
6 i* [; a; r3 T4 @2 O關(guān)鍵字 keyword4.通過(guò)制造商進(jìn)行授權(quán)
" u; w7 _/ v; U# j  _中國(guó)移動(dòng)論壇· 功能需求表包括TCB與DRM功能。其由設(shè)備制造商提供并由一個(gè)法律協(xié)議規(guī)范。6 }( |7 e! L7 i  s" s- ?; z% i3 C  M4 o
· 由于強(qiáng)烈的商業(yè)原因,通常需要獲得這些功能211.139.191.144:8001' v' |% x+ ~; j. G( v
2.3 應(yīng)用程序認(rèn)證
+ O. Q3 T; J' W& s' E: c0 GS60第三版介紹了應(yīng)用程序托管認(rèn)證。這意味著如果沒(méi)有使用認(rèn)證,應(yīng)用程序?qū)o(wú)法安裝。一般來(lái)說(shuō)有以下兩種認(rèn)證:
/ b2 x1 A# X8 {. x1 f. I* d1 x2 C中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字1.使用任意私有標(biāo)簽(私鑰)獲得唯一認(rèn)證并且確保SIS文件的完整性。使用makekeys程序可獲得私鑰,而利用運(yùn)行signsis程序則可完成應(yīng)用程序認(rèn)證過(guò)程。以上兩種應(yīng)用程序均可由SDK獲得。; X8 i" ?$ A0 w) N) C  i
2.使用特殊私有密鑰注冊(cè)從而獲得證書(shū)——認(rèn)證應(yīng)用程序從而使設(shè)備上的可信根證書(shū)認(rèn)證應(yīng)用程序。中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字/ s& _) _( o+ V, K! k' h
在部署過(guò)程期間,為了將應(yīng)用程序安裝到設(shè)備上,開(kāi)發(fā)商應(yīng)該使用第一種 認(rèn)證。后一種認(rèn)證方法可以通過(guò)Symbian注冊(cè)來(lái)獲得相關(guān)功能。中國(guó)移動(dòng)論壇, t; y  L" R. ~! c( ]+ ?! M
2.4 分配功能
* Z9 u7 o4 F/ E+ a$ K211.139.191.144:8001應(yīng)用程序所需要的功能可以在程序設(shè)計(jì)階段定義下來(lái)。應(yīng)用程序定義文件包括一個(gè)MMP文件,其包含了應(yīng)用程序所擁有功能的相關(guān)信息。然而,車(chē)載用戶可以通過(guò)車(chē)載設(shè)備用戶界面在一個(gè)特殊區(qū)域獲得功能信息。
0 W' j- D# u9 F" P中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字在應(yīng)用程序安裝階段,設(shè)備將檢測(cè)應(yīng)用程序是否注冊(cè)或認(rèn)證。隨后其將檢測(cè)根證書(shū)用于確定設(shè)備是否被授予應(yīng)用程序所需求的相應(yīng)功能。如果沒(méi)有遇到問(wèn)題,安裝過(guò)程將繼續(xù)直至完成。概要與描述( z. M  E* t4 ]; g
表1顯示了功能是如何劃分的。211.139.191.144:8001, G8 O, c$ @, Q5 J" l" y8 G
非受限概要與描述6 @. k! g& m# e: S& u
安裝時(shí)用戶授權(quán)中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字# M, D3 B& w6 T$ q5 y9 Z
Symbian認(rèn)證中國(guó)移動(dòng)論壇# ?( U' G7 d* o6 ^; Q3 r* ~! X  ~
制造商核準(zhǔn)中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字: j* u6 H3 ?" z2 a& X5 G
用戶授予權(quán)限+定位
' W: h& {# c- \% G# L3 p  ]211.139.191.144:8001Symbian認(rèn)證功能+
/ U; F. c' r$ i* K中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字聲明:中國(guó)移動(dòng)論壇1 r/ [) {" k" E$ y9 P, X4 t
讀設(shè)備數(shù)據(jù)
: S% x- q9 C6 W. G9 R關(guān)鍵字 keyword寫(xiě)設(shè)備數(shù)據(jù)中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字" f( S1 R( _" M$ `1 W, Q! B
準(zhǔn)許在系統(tǒng)中中斷任何進(jìn)程或者轉(zhuǎn)換機(jī)器狀態(tài)(關(guān)掉設(shè)備)
- u/ d! s& o( l5 X9 m2 N& L  O概要與描述準(zhǔn)許訪問(wèn)提供外圍設(shè)備輸入信息的邏輯設(shè)備驅(qū)動(dòng)中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字5 K* r0 k: w8 Q$ a6 t! g
準(zhǔn)許服務(wù)器應(yīng)用可以用一個(gè)受保護(hù)的名字進(jìn)行注冊(cè)中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字  `( t5 J$ h# d
區(qū)分”normal”應(yīng)用和”trusted”應(yīng)用的UI中國(guó)移動(dòng)論壇+ }6 ?6 u  G( @- G
準(zhǔn)許生成或者捕獲鍵盤(pán)以及筆輸入事件
9 t0 V: d! R, L, @# e  k7 s. }3 ?# E60%的API
. i. Y4 b3 c/ `/ {211.139.191.144:8001讀用戶信息
! I: E( a3 u( y5 v+ _1 ~中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字寫(xiě)用戶信息關(guān)鍵字 keyword) x+ \1 f6 H" H( j
網(wǎng)絡(luò)服務(wù)
, {# p8 q9 ]6 t概要與描述本地服務(wù)
* S3 M, {" e' w/ A! D211.139.191.144:8001用戶環(huán)境關(guān)鍵字 keyword! x/ ?4 o+ F2 O* ?, Z8 }
注意:實(shí)施可能在兩臺(tái)設(shè)備間完成
$ e7 g0 K" i3 X中國(guó)移動(dòng)論壇功能需求格式及核準(zhǔn)平臺(tái)
+ j- j3 u5 L3 O) v% r  l關(guān)鍵字 keyword功能需求表與功能商鑒定:
/ o8 D; k& m# J( v 概要與描述+ b# F- T- A! R. ]7 @: M2 n7 |8 m
準(zhǔn)許進(jìn)行硬盤(pán)管理操作,例如格式化驅(qū)動(dòng)器關(guān)鍵字 keyword5 G  R9 R6 x$ g) D" G# ^7 o$ _2 ~
所有文件操作
1 {/ F. a7 f8 m& S概要與描述準(zhǔn)許訪問(wèn)通信設(shè)備驅(qū)動(dòng)
+ I2 w' }; E* k關(guān)鍵字 keyword準(zhǔn)許對(duì)所有多媒體設(shè)備驅(qū)動(dòng)(聲音、攝像頭等)的訪問(wèn)
* A& a$ n' o* V$ J, [; _準(zhǔn)許修改或者訪問(wèn)網(wǎng)絡(luò)協(xié)議控制概要與描述! j! z' \9 N9 i# d8 F( ]" v: R3 f% N% w
表1 功能對(duì)比 表2為實(shí)踐環(huán)節(jié)的更多功能提供了信息
9 z' e7 s. {0 z* _% {功能
- T9 b/ U# @, {- {概要與描述說(shuō)明
: j' }# V' h" L+ c' E; L211.139.191.144:80011
) b9 N7 L, B2 Z關(guān)鍵字 keyword準(zhǔn)許修改或者訪問(wèn)網(wǎng)絡(luò)協(xié)議控制(NetworkServices)
" s# g7 `9 _: M3 ?' r8 Q/ R6 S211.139.191.144:8001例如撥號(hào)或發(fā)文本信息的功能中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字  p* H# G7 ?8 n" _2 F
2
* Q" a. s! y2 Z關(guān)鍵字 keyword本地服務(wù)(LocalServices)關(guān)鍵字 keyword0 y' l: q' n/ N. }3 W0 K- u( j: u
通過(guò)USB,紅外或點(diǎn)對(duì)點(diǎn)藍(lán)牙規(guī)范通信的能力
+ c' Q% e: k: i# e3關(guān)鍵字 keyword: f) D& p5 z1 b& P" Q! j
讀用戶數(shù)據(jù)(ReadUserData)
' [7 z! L3 l4 q# v; \: l+ ]關(guān)鍵字 keyword授予用戶讀信息的權(quán)限。當(dāng)授予該級(jí)規(guī)范與用戶數(shù)據(jù)時(shí),系統(tǒng)服務(wù)器與應(yīng)用程序引擎是非限的中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字$ F$ M* J) x5 L
4中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字" _/ X. Z! [9 k/ x
寫(xiě)用戶數(shù)據(jù)
+ T2 H& c9 G: q2 K" y0 \/ ?211.139.191.144:8001(WriteUserData)
2 n( p3 a8 G: u1 o+ J授予用戶數(shù)據(jù)寫(xiě)權(quán)限。同時(shí),當(dāng)授予該級(jí)規(guī)范與用戶數(shù)據(jù)時(shí),系統(tǒng)服務(wù)器與應(yīng)用程序引擎是非限的
# ~1 Y4 A. [) E. q6 j, _& J6 Y% p中國(guó)移動(dòng)論壇5
) ]8 E$ f2 B, l- W1 C中國(guó)移動(dòng)論壇準(zhǔn)許訪問(wèn)手機(jī)的位置信息(Location)
* I% E: e; l3 e/ K' u8 R" B中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)+附加字授予可獲得電話位置的權(quán)限中國(guó)移動(dòng)論壇5 ^8 R8 Z4 C* ]9 U0 j
6概要與描述. U. c* r9 f7 G# G, q3 N8 l  g+ V% V
]]>
主站蜘蛛池模板: 无码国产偷倩在线播放老年人 | 久久久91精品国产一区二区 | 国产成人精品福利站 | 永久免费观看国产裸体美女 | 国产20岁美女一级毛片 | 欧美性插b在线视频网站 | 美女把尿囗扒开让男人添 | 国产欧美精品一区二区 | 亚洲av无码精品无码麻豆 | 疯狂撞击丝袜人妻 | 精品视频一二三区 | 一级毛片特黄久久免费看 | 国产丝袜视频在线 | 欧美色aⅴ欧美综合色 | 国产成人激情视频 | 樱花影院电视剧免费 | 热久久国产欧美一区二区精品 | 亚洲码在线中文在线观看 | 亚洲国产日韩欧美一区二区三区 | 久久久久亚洲精品美女 | 狠狠色噜噜狠狠狠狠色综合久 | 亚洲综合色无码 | 国产精品爱久久久久久久小 | 波多野结衣不打码视频 | 国产熟女一区二区三区四区五区 | 天天干天天干天天干天天干天天干 | 精品欧美一区二区三区在线 | 国产亚洲精品久久久久久午夜 | 免费a在线观看 | 国产麻豆一精品一av一免费 | 国产欧美亚洲精品综合在线 | 亚洲精品二区国产综合野狼 | 秋霞a级毛片在线看 | 免费a片看黄网站www下载 | 亚洲国产网站 | 强行无套内谢大学生初次 | 日本一卡2卡3卡四卡精品网站 | 国产91热爆ts人妖在线 | 国产精品久久久久久人妻 | 国产精品自在线拍国产手青青机版 | 九色视频网 |