完美世界txt全集下载,完美世界辰东小说下载,古风君子以泽http://www.bjzhda.cnzh-cn曙海教育集團(tuán)論壇http://www.bjzhda.cnRss Generator By Dvbbs.Net[email protected]images/logo.gif曙海教育集團(tuán)論壇Symbian 深入討論 RConnectionMonitor并用此來統(tǒng)計流量http://www.brpp.cn/bbs/dispbbs.asp?BoardID=46&ID=2064&Page=1wangxinxin2010-12-3 16:02:56今天來聊聊關(guān)于如何使用RConnectionMonitor來統(tǒng)計流量。

RConnectionMonitor被SYMBIAN封裝的受不了。

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

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

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

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

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

我們先來看看RConnectionMonitor這個的基本用法。

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

er吧

//初始化

void CMonitorNetWork::ConstructL()

{

TInt err = iConnMon.ConnectL();

iConnMon.NotifyEventL(*this);

}

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

//比如新的連接,連接斷開時都會回調(diào)

void CMonitorNetWork::EventL( const CConnMonEventBase &aEvent )

{

case EConnMonCreateConnection:

{

TUint connectionId = eventCreate->ConnectionId();

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

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

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

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

//對就是這樣的。讓我們來分析一下這個API。

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

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

}

}

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

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

void CMonitorFlow::GetDownLinkData(TUint aConnectionId)

{

iState = EGet;

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

SetActive();

}

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

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

  Symbian開放式的操作系統(tǒng)中,有兩種類型,一類用于基于掌上電腦、帶手寫筆的智能手機(jī),代表產(chǎn)品有索尼愛立信的P80 2等,另一類則用于HPC手機(jī),代表產(chǎn)品有諾基亞9210等。由于該操作系統(tǒng)出產(chǎn)于由摩托羅拉、西門子、諾基亞等幾家大型移動通 訊設(shè)備商共同出資組建的一個合資公司,所以,它常用于上述廠商推出的相應(yīng)的手機(jī)上。例如我們熟悉的索尼愛立信的P802、P90 8、諾基亞7610、西門子SX1等所用的就是該操作系統(tǒng),當(dāng)然,還有夏普等廠商也推出過基于該操作系統(tǒng)的手機(jī)。   Y$ \1 I$ G9 x
Symbian按版本來分,繼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ò),無線文字,電子郵件,名片薄以及個人信息助理,同時還具有支持標(biāo)準(zhǔn)網(wǎng)絡(luò)頁面的瀏覽器,配合java 語言的支持,使得Symbian可以運行小型的應(yīng)用程序。不過這個版本采用的機(jī)型甚少,基本上與EPOC沒有太多的差別。

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

 2004年2月,Symbian在授權(quán)LG等公司的時候,發(fā)布了Symbian8 .0版本。該版本改善了實時系統(tǒng)性能,提高了原有操作系統(tǒng)的兼容能力。此外,Symbian OS 8.0的軟件工具改進(jìn)了遠(yuǎn)程接入控制系統(tǒng)功能,運用調(diào)節(jié)裝置消除手機(jī)用戶使用增值服務(wù)時會受到的干擾。這個系統(tǒng)包含了絕對現(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年二月,英國著名手機(jī)軟件制造商Symbian推出一款新的手機(jī)操作系統(tǒng)軟件OSv9.0,它支持更高像素數(shù)碼相機(jī) 與三維游戲動畫。該操作系統(tǒng)軟件對運行環(huán)境要求較高,目前運行在由英國芯片開發(fā)商ARM提供的快速處理器芯片,并且需要相關(guān)設(shè)計 與其它工具的支持來幫助手機(jī)生產(chǎn)商在開發(fā)其它版本時能夠節(jié)約時間和降低成本。該軟件可以處理200萬像素的數(shù)字圖片,甚至能夠向 無線耳機(jī)傳送立體聲音樂,更可喜的是,它不需要同步軟件就能夠從PC上導(dǎo)出MP3文件。
S60,是基于Symbian 操作系統(tǒng),它有一個非常健全的核心——強(qiáng)大的對象導(dǎo)向系統(tǒng)、企業(yè)用標(biāo)準(zhǔn)通信傳輸協(xié)議以及完美的Sun Java語言。同時,由于這個系統(tǒng)為第三方應(yīng)用程序開發(fā)商提供了一個開放、標(biāo)準(zhǔn)的開發(fā)平臺,支持kjava和C++的開發(fā)。NO KIA7650、NOKIA3650、NOKIA6600、NOKIA7610、N-Gage和西門子SX1都是使用s60系統(tǒng) 。我們舉個通俗的例子,s40仿佛是計算機(jī)操作系統(tǒng)中的Windows,它可以安裝各種應(yīng)用軟件,但是用戶卻不能對他綁定的ie 瀏覽器或核心界面進(jìn)行修改。s60仿佛是Linux,他不但支持各種應(yīng)用軟件,還支持用戶對操作系統(tǒng)自身進(jìn)行修改,加上許多特殊 有趣的功能。

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

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

Symbian 是真正的微核操作系統(tǒng),所謂“微核”,就是說操作系統(tǒng)
只有很小的一部分是運行在最高優(yōu)先級的,其他的功能都是以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, 以及無線協(xié)議
------------------------------------------------
內(nèi)核:euser.dll, ekern.exe, 服務(wù)控制(supervisor server),
HAL(設(shè)備抽象層)
------------------------------------------------
驅(qū)動程序?qū)樱喊ㄒ纛l驅(qū)動,顯示驅(qū)動,MMC驅(qū)動,鍵盤驅(qū)動,串并口驅(qū)動
,DSP驅(qū)動,時鐘控制器驅(qū)動等等

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

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

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

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

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

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

以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)存,作為一個有限的資源,必須小心細(xì)致地處理,特別是當(dāng)有錯誤或異常發(fā)生的時候。正是由于這樣的原因,在支持清理機(jī)制的API中,異常處理和內(nèi)存管理幾乎是綁在一起的。
Uikon核心框架使用這些支持清理機(jī)制的API來管理內(nèi)存,使GUI程序的基礎(chǔ)架構(gòu)具有良好的性能和表現(xiàn)。GUI程序還支持異常情況下內(nèi)存清理,以及調(diào)試模式下的內(nèi)存泄露檢測。

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

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

2、清理棧(Cleanup Stack)
當(dāng) leave 發(fā)生時,任何分配了資源的heap內(nèi)存,例如通過new()方法創(chuàng)建的對象,他們將被孤立,因為leave一旦發(fā)生已指向他們的指針就不存在了,這樣就導(dǎo)致了內(nèi)存泄漏。為了防止內(nèi)存泄漏發(fā)生,程序就有要記錄那些已經(jīng)被創(chuàng)建的對象,如果程序運行發(fā)生leave,那么系統(tǒng)可以自動找到并清理他們所占用的內(nèi)存。這些工作可以通過清理棧來完成。CleanupStack類是支持清理棧的一個類。GUI應(yīng)用程序擁有一個由應(yīng)用程序框架所提供的清理棧,其他的應(yīng)用程序必須用CTrapCleanup 類自己構(gòu)建一個清理棧。

3、通用清理項(General Cleanup Item)在默認(rèn)情況下,清理棧只處理那些 CBase-based 類(也就是它所處理的類必須是由 CBase類繼承下來的)和那些untyped 類型對象(用一個簡單的內(nèi)存釋放語句就可以釋放的對象)。通用清理項(General Cleanup Item)使其他類型的對象也可以放到清理棧中。TCleanupItem類是支持通用清理項的一個類。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  戰(zhàn)敗者的命運

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

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

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

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

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

  可以說,有了iPhoneOS和Android,Symbian的噩夢才剛剛開始。但如果說此時的Symbian就此退出,確實還為時尚早。

  禍起蕭墻

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

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

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

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

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

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

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

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

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


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

NOKIA品牌的由來

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

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

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

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

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

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

我們被告之Nokia會在不久的將來讓Qt兼容Android。

Nokia也許真的不會直接開發(fā)基于Android平臺的設(shè)備,但對于開發(fā)人員來說,Nokia會讓他們在Android上的開發(fā)工作更加簡單。因為Qt支持多數(shù)主流平臺,開發(fā)人員可以用Qt進(jìn)行開發(fā),然后移植到諸如Symbian, Android甚至iPhone平臺上。

諾基亞雄心勃勃的“跨平臺”開發(fā)策略由以下的動作可窺見一斑。

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

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

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

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

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

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

此外,我們在一月份恰巧采訪到了諾基亞Qt軟件部門的技術(shù)主管Benoit Schillings,以下是部分采訪內(nèi)容:

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

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

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

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

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

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

VB: 你最近花很多時間整合Qt和Symbian(S60)操作系統(tǒng),Qt對S60來說有多重要?

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

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

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

安裝順序只要是按照我上面說的順序,理論上就沒有問題,當(dāng)然還需要注意的一點就是這四個軟件最好安裝在同一個盤符里。個人意見:C盤最好了。

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

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

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

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

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

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

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

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這個環(huán)境變量有很多是在軟件安裝(比如安裝perl)的時候就自動配置好了,但是如果讀者在裝好之后發(fā)現(xiàn)有問題,最好還是關(guān)注一下這個變量是否正確了:)

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

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

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

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

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

安裝順序只要是按照我上面說的順序,理論上就沒有問題,當(dāng)然還需要注意的一點就是這四個軟件最好安裝在同一個盤符里。個人意見:C盤最好了。

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

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

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

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

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

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

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

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這個環(huán)境變量有很多是在軟件安裝(比如安裝perl)的時候就自動配置好了,但是如果讀者在裝好之后發(fā)現(xiàn)有問題,最好還是關(guān)注一下這個變量是否正確了:)

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

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

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

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

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

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

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

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


其實跟c++比起來 symbian對釋放資源的操作通過cleanupstack進(jìn)行了支持
只是需要自己手動的把資源放到cleanupstack中
這樣可以認(rèn)為是c++的手動管理資源與java的自動資源管理的一個折中
第一個控制臺下的hello world程序
很多語言都是從hello world 開始 學(xué)習(xí)symbian也不例外 下面從一個簡單的hello world程序開始 介紹symbian的特點
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;
}


編譯與運行
symbian的編譯要求比較奇怪
它需要一個bld.inf文件與一個mmp文件
bld.inf聲明build的相關(guān)信息 通常只包括這次build會引用到的mmp文件
.mmp文件保存工程與makefile相關(guān)的信息 用于具體的build過程 它也叫makmakefile project ,也就是創(chuàng)建makefile的文件
bld.inf的文件名是固定的
.mmp文件的文件名則根據(jù)不同的工程而起不同的名字
下面是hellotext工程中這兩個文件的內(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
把上面兩個文件保存到與hellotext.cpp相同的目錄下
編譯過程:
1 打開一個dos窗口
2 cd 到hellotext.cpp所在目錄
3 運行下面命令
bldmake bldfiles
abld build wins udeb
運行完后 你就可以到
epoc/release/wins/udeb目錄下查找hellotext.exe文件
//  BLD.INF
PRJ_MMPFILES
hellotext.mmp
bld.inf只是聲明這個build需要調(diào)用hellotext.mmp模塊

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

symbian的開發(fā)環(huán)境是使用perl開發(fā)的
所以需要有一個確定的文件名聲明工程內(nèi)容 這就是bld.inf
bldmake編譯時先讀bld.inf 看需要哪個文件指導(dǎo)編譯過程
然后對mmp文件進(jìn)行轉(zhuǎn)換,生成makefile及其它相關(guān)的編譯規(guī)則文件 同時在當(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 版本

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


symbian 模擬器樣子
在命令行下輸入epoc得到
如果沒錢買智能手機(jī) 如p910 那可以拿這個來體會一下效果



剛才編譯好的程序的運行
運行epoc/release/wins/udeb/hellotext.exe 看到
沒有抓圖工具 無法上傳
代碼說明
因為手機(jī)上沒有dos或是xterm窗口,所以需要聲明一個console類,
打開一個控制臺窗口
LOCAL_D CConsoleBase* gConsole;
//  Real main function
void MainL()
{
控制臺打印
gConsole->Printf(_L"hello world");
}
//  Console harness
void ConsoleMainL()
{
NewL類似標(biāo)準(zhǔn)c中的new 由于symbian中沒有異常,
使用leave trapd代替標(biāo)準(zhǔn)c++中throw catch,
所以如果函數(shù)可能會leave的話 函數(shù)名后會加上一個L   
gConsole    = Console::NewL(_L("Hello Text"),
         TSize(KConsFullScreen,KConsFullScreen));
symbian中為了避免資源瀉漏 使用cleanupstack把需要釋放的內(nèi)容放到cleanupstack中,
當(dāng)程序非法退出時 symbian操作系統(tǒng)會自動通過cleanupstack來對資源進(jìn)行釋放
保證資源的釋放放是重要的
因為symbian可用的資源并不多 內(nèi)存現(xiàn)在最多也就16M
而它可能一直運行好幾個月(想看如果你不常關(guān)機(jī)的話)
CleanupStack::PushL(gConsole);
調(diào)用自己的函數(shù)
MainL();
停止5秒 讓你看到屏幕顯示
User::After(5000000);
手動釋放剛才申請的資源
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下開發(fā)時也是這樣 psos的入口函數(shù)是root 在其它實時系統(tǒng)開發(fā)與普通系統(tǒng)不同
因為可能需要特殊的初始化 )
GLDEF_C TInt    E32Main()
{
__UHEAP_MARK;定義堆保護(hù) 保證程序退出時會釋放資源
創(chuàng)建清除堆棧類
CTrapCleanup* cleanupStack  = CTrapCleanup::New();
TRAPD(error,ConsoleMainL());  這個相當(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 都存在了

這是一個典型的symbian程序都會使用到的功能


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

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

一般它也會提供不Leave的相同功能的函數(shù)
如Defined in TDesC8: 看TDesc8的類說明
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()
看它們的說明
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.brpp.cn/bbs/dispbbs.asp?BoardID=46&ID=2051&Page=1wangxinxin2010-12-3 14:09:34
以下內(nèi)容含腳本,或可能導(dǎo)致頁面不正常的代碼
說明:上面顯示的是代碼內(nèi)容。您可以先檢查過代碼沒問題,或修改之后再運行.
]]>
文本數(shù)據(jù)及二進(jìn)制數(shù)據(jù)的描述符介紹http://www.brpp.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. 簡介
描述符(Descriptors )是Symbian OS 的基本組成部分,它提供了對字符串進(jìn)行操作的一些
規(guī)則,同時也用作二進(jìn)制數(shù)據(jù)的容器(containers )。描述符在許多函數(shù)原型中使用,因
此,理解如何有效地使用描述符是非常重要的。
本文討論了各種描述符,范圍從基本知識到高級功能。讀者至少應(yīng)該熟悉一些基本的
Symbian OS 概念;可以參閱《Symbian 開發(fā)伙伴庫》[SYM70]中的《基本編程規(guī)范》一
節(jié)。
第二章幫助讀者理解使用傳統(tǒng)C 字符串和Symbian 描述符時遇到的一些內(nèi)存問題。第三章
通過類型的層次結(jié)構(gòu)、各類型的特點、字符串操作方法、字符轉(zhuǎn)換,以及一些調(diào)試問題等對
各種描述符進(jìn)行了簡要解釋。第四章給出了一些與描述符有關(guān)的APIs。第五章講述了如何用
描述符替換各種C 字符串,以便讓熟悉C 語言的程序員們能快速找到相應(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)存問題和資源管理問題至關(guān)重要。理解Symbian OS 編
程的一些基本原則對于設(shè)計出具有良好性能的軟件及其重要。
2.1 節(jié)講述了邏輯內(nèi)存區(qū)。2.2 節(jié)討論了C 字符串聲明的修正,其目的是將讀者引導(dǎo)到
Symbian 字符串聲明及其與內(nèi)存之間的關(guān)系等課題。
許多有關(guān)內(nèi)存的問題可參閱《針對移動電話的Symbian OS C++ 》[SOSC]一書。還可參閱
《Symbian 開發(fā)伙伴庫》[SYM70]一文;讀者可以閱讀有關(guān)進(jìn)程、線程,以及內(nèi)存管理等方
面的課題。
2.1 變量與內(nèi)存
聲明變量時,會在內(nèi)存中的某個地方保留其內(nèi)部數(shù)據(jù)機(jī)構(gòu)。根據(jù)這種聲明的具體情況,數(shù)據(jù)
被儲存到下列內(nèi)存類型之一:
. 二進(jìn)制程序。編譯器對各個源程序進(jìn)行編譯,而連接器將他們連接起來。其結(jié)果
就被稱為二進(jìn)制程序。當(dāng)聲明靜態(tài)變量和常變量時,其數(shù)據(jù)被包括在變量中并成
為二進(jìn)制程序的一部分。必須在程序代碼中對這類變量進(jìn)行初始化。因為它們都
是常量,在程序運行過程中并不能改動這些數(shù)據(jù),所以也將它們作為該二進(jìn)制程
序的一部分傳遞。
既可以直接從ROM 運行程序,也可以將其加載到只讀RAM 中,并從那里運
行。這兩種內(nèi)存中的變量都受到保護(hù),不會被某些不適當(dāng)?shù)拇a所修改。這就是
諸如文字這類常量靜態(tài)數(shù)據(jù)被儲存在二進(jìn)制程序中的原因。
為二進(jìn)制程序所聲明的變量都存在于該程序的整個生命周期之中。它們不需要程
序員進(jìn)行任何內(nèi)存管理;當(dāng)程序結(jié)束時,為該二進(jìn)制程序所分配的RAM 被操作
系統(tǒng)所釋放。而如果是ROM,就不必為二進(jìn)制程序作任何事情。
. 全局?jǐn)?shù)據(jù)。如果某個變量被聲明成靜態(tài)的,但并不是常量,它就被認(rèn)為是全局?jǐn)?shù)
據(jù)。在Symbian OS 中,只有可執(zhí)行的.exe 才具有全局?jǐn)?shù)據(jù)。如果為.dll 聲
明了全局?jǐn)?shù)據(jù),那么當(dāng)針對ARM 平臺編譯時,編譯過程就會報錯停止。
當(dāng).exe 被作為一個進(jìn)程而啟動并具有全局?jǐn)?shù)據(jù)時,會為全局?jǐn)?shù)據(jù)保留一個自己
的內(nèi)存區(qū)域。由于使用全局?jǐn)?shù)據(jù)通常并非好設(shè)計,而且由于許多應(yīng)用都是.dll
可執(zhí)行程序,對全局?jǐn)?shù)據(jù)的使用不在本文中講解。
. 棧。Symbian OS 中的每個線程都有其自己的棧。自動化變量被分配到該棧中。
當(dāng)調(diào)用某個方法時,其參數(shù)也被分配到這個棧中。因為棧尺寸很有限(對于
Symbian OS 更是如此),只有一小部分的數(shù)據(jù)可以被分配到這個棧中。在函數(shù)
調(diào)用中,必須使用對象的指針或引用,以降低將這些對象副本分配到棧中的需
求。
由于規(guī)定了棧中變量的生命周期,所以當(dāng)該程序塊結(jié)束時,該程序塊中全部已被
聲明的自動化變量都會被自動刪除。如果該變量是一個類,它有一個析構(gòu)函數(shù),
那么在將該對象移出棧之前就會先調(diào)用這個析構(gòu)函數(shù)。
. 堆。Symbian OS 中的每個線程都有一個堆。這是一個內(nèi)存區(qū)域,其中放置所有
被動態(tài)分配的對象。用對象C++ 的關(guān)鍵字new 將各個對象分配到這個堆中

]]>
讓您知道什么是Series操作系統(tǒng)的手機(jī)http://www.brpp.cn/bbs/dispbbs.asp?BoardID=46&ID=2049&Page=1wangxinxin2010-12-3 14:05:48技術(shù)討論之提升6120c運行內(nèi)存http://www.brpp.cn/bbs/dispbbs.asp?BoardID=46&ID=2048&Page=1wangxinxin2010-12-3 14:03:08小6的CPU很強(qiáng)大,能比美N系列機(jī)型,給了我們很大的發(fā)揮空間
但是緊緊20M左右的運行內(nèi)存,真是有點捉襟見肘
特別是破解后運行N-GAGE平臺游戲,幾乎打開不了別的軟件
唯一的方法就是提高運行內(nèi)存了
到處查找了一下,最多方法就是用軟件整理內(nèi)存,或者刪除一些不常用的系統(tǒng)進(jì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部分
通俗地說就是分成了C盤和運行內(nèi)存
其中C盤有35M是保留給用戶使用的,用于安裝軟件等
我們的內(nèi)存卡都是上G的
除非必要,否則程序都裝載卡上
系統(tǒng)提供的35M貯存平常起不到多大作用
關(guān)鍵就在這里
如果我們可以在系統(tǒng)啟動之處干預(yù)其SDRAM Memory的分配情況
也就是把Max User Storage適當(dāng)?shù)卣{(diào)小
讓運行內(nèi)存獲得更多的分配
那就能達(dá)到目的了

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


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


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

以上是諾基亞開發(fā)者論壇里手機(jī)終端規(guī)范的數(shù)據(jù)
出錯可能性很小
關(guān)鍵是本人理解錯誤
不過有點搞不明白
用軟件測試6120c顯示
內(nèi)存大小為48.6M
是不是SDRAM的64M
真不知道剩下的用到了哪里去
]]>
Symbian 平臺技術(shù)開發(fā)技巧匯總http://www.brpp.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()

  問題二、從收件箱讀取彩信圖片

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

  }

  問題三、如何讓程序在安裝后自動運行

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

  “FR”表示“File Run”,而“RI”則表示“Run during Installation”。請注意,務(wù)必要先開始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

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

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

  

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

  //MyApp.hrh

  //

  enum{

  EMyAppCmdOpenFile = 0×6000,

  EMyAppCmdEdit,

  };

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

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

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

  .mbm是symbian位圖文件,它里面可以存儲幾個位圖。

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

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

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

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

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

  問題六、如何動態(tài)更改CEikLabel 的text

  CEikLabel* iLabelStatus;

  …..

  iLabelStatus = new (ELeave) CEikLabel;

  iLabelStatus->SetContainerWindowL( *this );

  iLabelStatus->SetTextL( this->iStatusStr );

  ….

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

  iLabelStatus->SetTextL(iStatusStr);

  iLabelStatus->DrawNow();

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

  問題七、在listbox中怎么處理所選項的事件

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

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

  {

  TInt code = aKeyEvent.iCode;

  switch(code)

  {

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

  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) ;

  }

  }

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

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

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

  ; MyGame.pkg

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

  ;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版本是向下兼容的。

  參見下表:

  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ù)各不同的平臺來進(jìn)行安裝,那就可以使用條件語句塊來處理,這時pkg里的語句如下:

  ;

  ; 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

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

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

  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

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

  #include //and link with hal.lib

  TInt machineUid = 0;

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

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

  1.RFile::Read()

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

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

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

如上圖所示,因為我已經(jīng)安裝好了,所以提示我有個目標(biāo)存在。
SetupHooks是命令,空格后是我3版的版本號吧,也就是在控制臺下輸入devices后可以看到的,也可能你們和我的不一樣,我們老師推薦弄MR的。
輸入完命令按完回車后,會有提示,提示很簡單看看就能知道成功與否。

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

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

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

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

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

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

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

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

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

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

# I; F, d6 Q5 g, Z1 y4 U3.通過Symbian認(rèn)證授權(quán)
# }/ t/ q# e* v2 m概要與描述· 當(dāng)通過Symbian認(rèn)證授權(quán)后,一些功能將可用。0 n4 P# ?" R) Q$ O% ]" j+ m, b
· 某些敏感功能需要在使用時進(jìn)行驗證。也可能需要通過測試。中國移動開發(fā)者社區(qū)+附加字; j. y% G. H/ W
· 大多數(shù)敏感功能要求開發(fā)商填寫功能需求表與平臺制造商同意表,還需要通過一些包括額外平臺開發(fā)商所定義規(guī)范的測試。關(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.通過制造商進(jìn)行授權(quán)
" u; w7 _/ v; U# j  _中國移動論壇· 功能需求表包括TCB與DRM功能。其由設(shè)備制造商提供并由一個法律協(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)證。這意味著如果沒有使用認(rèn)證,應(yīng)用程序?qū)o法安裝。一般來說有以下兩種認(rèn)證:
/ b2 x1 A# X8 {. x1 f. I* d1 x2 C中國移動開發(fā)者社區(qū)+附加字1.使用任意私有標(biāo)簽(私鑰)獲得唯一認(rèn)證并且確保SIS文件的完整性。使用makekeys程序可獲得私鑰,而利用運行signsis程序則可完成應(yīng)用程序認(rèn)證過程。以上兩種應(yīng)用程序均可由SDK獲得。; X8 i" ?$ A0 w) N) C  i
2.使用特殊私有密鑰注冊從而獲得證書——認(rèn)證應(yīng)用程序從而使設(shè)備上的可信根證書認(rèn)證應(yīng)用程序。中國移動開發(fā)者社區(qū)+附加字/ s& _) _( o+ V, K! k' h
在部署過程期間,為了將應(yīng)用程序安裝到設(shè)備上,開發(fā)商應(yīng)該使用第一種 認(rèn)證。后一種認(rèn)證方法可以通過Symbian注冊來獲得相關(guān)功能。中國移動論壇, t; y  L" R. ~! c( ]+ ?! M
2.4 分配功能
* Z9 u7 o4 F/ E+ a$ K211.139.191.144:8001應(yīng)用程序所需要的功能可以在程序設(shè)計階段定義下來。應(yīng)用程序定義文件包括一個MMP文件,其包含了應(yīng)用程序所擁有功能的相關(guān)信息。然而,車載用戶可以通過車載設(shè)備用戶界面在一個特殊區(qū)域獲得功能信息。
0 W' j- D# u9 F" P中國移動開發(fā)者社區(qū)+附加字在應(yīng)用程序安裝階段,設(shè)備將檢測應(yīng)用程序是否注冊或認(rèn)證。隨后其將檢測根證書用于確定設(shè)備是否被授予應(yīng)用程序所需求的相應(yīng)功能。如果沒有遇到問題,安裝過程將繼續(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
安裝時用戶授權(quán)中國移動開發(fā)者社區(qū)+附加字# M, D3 B& w6 T$ q5 y9 Z
Symbian認(rèn)證中國移動論壇# ?( U' G7 d* o6 ^; Q3 r* ~! X  ~
制造商核準(zhǔn)中國移動開發(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中國移動開發(fā)者社區(qū)+附加字聲明:中國移動論壇1 r/ [) {" k" E$ y9 P, X4 t
讀設(shè)備數(shù)據(jù)
: S% x- q9 C6 W. G9 R關(guān)鍵字 keyword寫設(shè)備數(shù)據(jù)中國移動開發(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)許訪問提供外圍設(shè)備輸入信息的邏輯設(shè)備驅(qū)動中國移動開發(fā)者社區(qū)+附加字5 K* r0 k: w8 Q$ a6 t! g
準(zhǔn)許服務(wù)器應(yīng)用可以用一個受保護(hù)的名字進(jìn)行注冊中國移動開發(fā)者社區(qū)+附加字  `( t5 J$ h# d
區(qū)分”normal”應(yīng)用和”trusted”應(yīng)用的UI中國移動論壇+ }6 ?6 u  G( @- G
準(zhǔ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 ~中國移動開發(fā)者社區(qū)+附加字寫用戶信息關(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è)備間完成
$ e7 g0 K" i3 X中國移動論壇功能需求格式及核準(zhǔn)平臺
+ 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)行硬盤管理操作,例如格式化驅(qū)動器關(guān)鍵字 keyword5 G  R9 R6 x$ g) D" G# ^7 o$ _2 ~
所有文件操作
1 {/ F. a7 f8 m& S概要與描述準(zhǔn)許訪問通信設(shè)備驅(qū)動
+ I2 w' }; E* k關(guān)鍵字 keyword準(zhǔn)許對所有多媒體設(shè)備驅(qū)動(聲音、攝像頭等)的訪問
* A& a$ n' o* V$ J, [; _準(zhǔn)許修改或者訪問網(wǎng)絡(luò)協(xié)議控制概要與描述! j! z' \9 N9 i# d8 F( ]" v: R3 f% N% w
表1 功能對比 表2為實踐環(huán)節(jié)的更多功能提供了信息
9 z' e7 s. {0 z* _% {功能
- T9 b/ U# @, {- {概要與描述說明
: j' }# V' h" L+ c' E; L211.139.191.144:80011
) b9 N7 L, B2 Z關(guān)鍵字 keyword準(zhǔn)許修改或者訪問網(wǎng)絡(luò)協(xié)議控制(NetworkServices)
" s# g7 `9 _: M3 ?' r8 Q/ R6 S211.139.191.144:8001例如撥號或發(fā)文本信息的功能中國移動開發(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
通過USB,紅外或點對點藍(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)授予該級規(guī)范與用戶數(shù)據(jù)時,系統(tǒng)服務(wù)器與應(yīng)用程序引擎是非限的中國移動開發(fā)者社區(qū)+附加字$ F$ M* J) x5 L
4中國移動開發(fā)者社區(qū)+附加字" _/ X. Z! [9 k/ x
寫用戶數(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ù)寫權(quán)限。同時,當(dāng)授予該級規(guī)范與用戶數(shù)據(jù)時,系統(tǒng)服務(wù)器與應(yīng)用程序引擎是非限的
# ~1 Y4 A. [) E. q6 j, _& J6 Y% p中國移動論壇5
) ]8 E$ f2 B, l- W1 C中國移動論壇準(zhǔn)許訪問手機(jī)的位置信息(Location)
* I% E: e; l3 e/ K' u8 R" B中國移動開發(fā)者社區(qū)+附加字授予可獲得電話位置的權(quán)限中國移動論壇5 ^8 R8 Z4 C* ]9 U0 j
6概要與描述. U. c* r9 f7 G# G, q3 N8 l  g+ V% V
]]>
主站蜘蛛池模板: 成年女美黄网站大全免费播放 | 国产美女久久久久久久久久久 | 免费中文字幕在线国语 | 欧美午夜a级限制福利片 | 亚洲国产成人综合精品2020 | 91天天射| 亚洲高清在线观看视频 | 1024在线播放 | 色综合图| 欧美一级特黄aaaaaa在线看首页 | 麻豆视频传媒入口 | 日本韩国中文字幕毛片 | 国产尤物在线播放 | 国产中文一区 | 亚洲天天网综合自拍图片专区 | 欧美亚洲一区二区三区 | 国产日韩一区在线精品欧美玲 | 亚洲精品色综合久久 | 欧美色片在线观看 | 欧美r级在线观看 | 黄色片 在线播放 | 热99re久久国超精品首页 | 曰批免费视频播放在线看片二 | 亚洲综合图片人成综合网 | 欧美成视频人免费淫片 | 亚洲精品久久久成人 | 国产视频黄色 | 国产午夜永久福利视频在线观看 | 一个人看的ww免费视频 | 国产不卡一卡2卡三卡4卡5卡在线 | xvideos亚洲入口地址 | 久久中文字幕制服丝袜美腿 | 亚洲精品一区二 | 韩日在线播放 | 国产精品久久久99 | 亚洲国产天堂久久综合网站 | 国产欧美中文字幕 | 国产福利视频一区二区 | 免费一级毛片在线播放 | 精品一区在线 | 欧美在线视频精品 |