久久久久久亚洲精品中文字幕,精品久久亚洲中文无码,中文字幕中韩乱码亚洲大片 http://www.bjzhda.cnzh-cn曙海教育集團論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團論壇Symbian 深入討論 RConnectionMonitor并用此來統計流量http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=46&ID=2064&Page=1wangxinxin2010-12-3 16:02:56今天來聊聊關于如何使用RConnectionMonitor來統計流量。

RConnectionMonitor被SYMBIAN封裝的受不了。

大家詳細看看OS 內核,把好好的一個API封裝的想自殺擬的。

因為這種變態的封裝使得我們好多參數都得不到,郁悶之極啊。

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

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

少費話了,看我們如何應用RConnectionMonitor這個來統計流量吧。

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

假定您已經習慣了Symbian的Observer模式。那么請先繼承MConnectionMonitorObserv

er吧

//初始化

void CMonitorNetWork::ConstructL()

{

TInt err = iConnMon.ConnectL();

iConnMon.NotifyEventL(*this);

}

//當發生所有事件時,都可以回調到這里

//比如新的連接,連接斷開時都會回調

void CMonitorNetWork::EventL( const CConnMonEventBase &aEvent )

{

case EConnMonCreateConnection:

{

TUint connectionId = eventCreate->ConnectionId();

//所有的新建的連接都會回調到這里

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

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

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

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

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

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

}

}

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

//當然不是,在測試中發現有時候得不到值。

void CMonitorFlow::GetDownLinkData(TUint aConnectionId)

{

iState = EGet;

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

SetActive();

}

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

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

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

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

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

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

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

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

1、操作系統是運行在ROM上的
2、系統是運行在電池驅動的設備上的
3、完全是面向對象的
4、基于組件的設計
5、被設計成確保用戶的數據不會丟失
6、簡單的UI系統

Symbian 是真正的微核操作系統,所謂“微核”,就是說操作系統
只有很小的一部分是運行在最高優先級的,其他的功能都是以Client-
Server的方式提供。下面是Symbian系統的內部結構圖:

應用層:Shell, OPL, 及其他應用程序
------------------------------------------------
系統層:Dialogs, Menu, Toolbar, Icons, Resources, JavaVM,
Grid, Rich Text, Edit Control, List Control, Application Framework,
Jave Class Libraries.
------------------------------------------------
服務層:Window Server, Process Server, Socket Server, Sound Server,
Wireless Server, Database Server, File Server, Alarm Server, Comms
Server, 以及無線協議
------------------------------------------------
內核:euser.dll, ekern.exe, 服務控制(supervisor server),
HAL(設備抽象層)
------------------------------------------------
驅動程序層:包括音頻驅動,顯示驅動,MMC驅動,鍵盤驅動,串并口驅動
,DSP驅動,時鐘控制器驅動等等

1.2 Symbian UI系統命名

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

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

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

Apparc是Application Architecture的縮寫。Application architecture定義了
Symbian應用程序的框架。主要是定義了CApaApplication, 以及CApaDocument
這兩個類,也就是d&v結構。然后還定義了程序啟動以及數據控制流等等。

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

以Series60為例:

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

===================================================
〖Symbian OS內存管理介紹〗

在Symbain OS中內存管理的主要任務是:如何為程序分配內存以及如何在程序的內部分配內存。
Symbian OS 程序最根本和基礎的東西就是內存,作為一個有限的資源,必須小心細致地處理,特別是當有錯誤或異常發生的時候。正是由于這樣的原因,在支持清理機制的API中,異常處理和內存管理幾乎是綁在一起的。
Uikon核心框架使用這些支持清理機制的API來管理內存,使GUI程序的基礎架構具有良好的性能和表現。GUI程序還支持異常情況下內存清理,以及調試模式下的內存泄露檢測。

一、Symbian OS的清理機制(cleanup)
清理機制是Symbain OS 程序對于程序異常處理的一種特有方式。當異常發生時,清理機制將清理錯誤的內存區域。Symbian OS的清理策略和它所有類的基類CBase類有著密切關系。要了解Symbian OS清理機制就必須清楚以下三個概念:異常處理(exception handling)、清理棧(cleanup stack)以及通用清理項(general cleanup item)。

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

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

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

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

當然,程序可以還創建額外的chunk。 一個全局的chunk可以被其他進程訪問,這樣就實現了大量內存的共享。RChunk 類提供了對chunk的支持。TFindChunk 類可以用來查找其他進程創建的全局chunk。

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

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

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

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

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

Global chunks(全局chunk)
如果一個chunk可以被其他進程訪問,那么這個chunk就是全局chunk。全局chunk是有名字的,這樣,進程可以根據chunk的名字來訪問他們。當進程打開一個全局chunk的時候,他把chunk映射到自己的地址空間,這樣就可以對chunk進行直接訪問和數據共享了。如果已經知道了chunk的名稱,那么使用 RChunk::OpenGlobal() 可以直接打開chunk.。如果只知道了chunk的部分名字,那么可以使用帶 TFindChunk 型參數的 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。.對于進程的主線程來說,這個chunk中同樣也包含了線程heap。程序對于內存的請求都是從這個heap的地址空間來分配的,例如有以下代碼:

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

程序請求了heap中部分的內存地址,并把地址返回給調用者。請求heap中的內存必須是顯式的,同樣,釋放這些內存時也必須進行顯式調用。

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

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

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

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

  戰敗者的命運

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

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

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

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

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

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

  禍起蕭墻

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

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

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

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

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

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

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

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

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


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

NOKIA品牌的由來

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

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

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

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

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

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

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

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

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

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

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

關于Nokia是不是考慮拋棄現有的Symbian操作系統的猜測很多。但Nokia說衛報報道的Nokia將在9月份的NWC大會(Nokia World Conference)上推出Android系統觸屏手機的謠言毫無根據。

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

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

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

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

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

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

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

Benoit: Qt是跨平臺架構,開發人員在做Maemo或Symbian頂層開發的時候可以使用同一套API,從而簡化開發任務,減少對多平臺細節了解的需要。當然,Qt也能很好地支持PC或其它設備的軟件編寫,這也是個優勢。

VB: 為Qt增加更自由的LGPL v2.1授權,目的是不是針對桌面領域?

Benoit: PC市場和嵌入式設備的區別正變得模糊。我們的確認為新的授權能夠讓Qt應用在所有的平臺上。

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

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

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

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

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

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

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

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

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

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

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

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;

關于Path這個環境變量有很多是在軟件安裝(比如安裝perl)的時候就自動配置好了,但是如果讀者在裝好之后發現有問題,最好還是關注一下這個變量是否正確了:)

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

這個時候確實應該可以成功的創建一個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編程環境搭建的一點經驗http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=46&ID=2053&Page=1wangxinxin2010-12-3 14:56:16搞了好長時間,在網上痛苦的求救了幾天,終于算是把S60+VC6的編程環境搭好了,可以跑控制臺程序和有圖形界面的手機程序,但是制作sis還沒有試過。

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

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

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

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

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

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

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

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

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;

關于Path這個環境變量有很多是在軟件安裝(比如安裝perl)的時候就自動配置好了,但是如果讀者在裝好之后發現有問題,最好還是關注一下這個變量是否正確了:)

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

這個時候確實應該可以成功的創建一個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開發介紹http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=46&ID=2052&Page=1wangxinxin2010-12-3 14:50:05  symbian上內存不夠多 ,并且cpu速度慢,所以開發的話需要考慮到節省內存的原則 另外就是分配內存失敗時的處理 在這點pc基本上不用考慮 因為有真實內存加上虛擬內存 夠用的
  symbian操作系統可能運行好幾個月 但是你的程序隨時可能因為異常而退出 退出時釋放程序使用的內存及其它相關資源就相當重要
  
界面開發最簡單的方法是使用c++ 把相關的圖形操作使用類來封裝,所以symbian的sdk以c++ 類庫形式提供 如果你還是使用c 那還是趕緊學習c++

由于symbian運行的環境有限,所以為了提高性能減少資源使用 symbian對標準c++進行了一定的修改,其中最明顯的是去掉了異常處理機制

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

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

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


其實跟c++比起來 symbian對釋放資源的操作通過cleanupstack進行了支持
只是需要自己手動的把資源放到cleanupstack中
這樣可以認為是c++的手動管理資源與java的自動資源管理的一個折中
第一個控制臺下的hello world程序
很多語言都是從hello world 開始 學習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的相關信息 通常只包括這次build會引用到的mmp文件
.mmp文件保存工程與makefile相關的信息 用于具體的build過程 它也叫makmakefile project ,也就是創建makefile的文件
bld.inf的文件名是固定的
.mmp文件的文件名則根據不同的工程而起不同的名字
下面是hellotext工程中這兩個文件的內容
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需要調用hellotext.mmp模塊

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

symbian的開發環境是使用perl開發的
所以需要有一個確定的文件名聲明工程內容 這就是bld.inf
bldmake編譯時先讀bld.inf 看需要哪個文件指導編譯過程
然后對mmp文件進行轉換,生成makefile及其它相關的編譯規則文件 同時在當前目錄下生成abld.bat文件
后面就是使用abld進行具體編譯
bld.inf意義就是 build info.編譯信息
mmp文件就是 makmake file
bldmake 就是build make info


bldmake bldfiles 創建build files
abld build wins udeb 創建win simulator unicode debug 版本

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


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



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

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


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

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

一般它也會提供不Leave的相同功能的函數
如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的文件系統http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=46&ID=2051&Page=1wangxinxin2010-12-3 14:09:34
以下內容含腳本,或可能導致頁面不正常的代碼
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行.
]]>
文本數據及二進制數據的描述符介紹http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=46&ID=2050&Page=1wangxinxin2010-12-3 14:07:05

文本數據及二進制數據的描述符介紹


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

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

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

我們首先了解一下6120c的硬件配置吧(摘錄自諾基亞官網):
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就有系統從邏輯上分成了2部分
通俗地說就是分成了C盤和運行內存
其中C盤有35M是保留給用戶使用的,用于安裝軟件等
我們的內存卡都是上G的
除非必要,否則程序都裝載卡上
系統提供的35M貯存平常起不到多大作用
關鍵就在這里
如果我們可以在系統啟動之處干預其SDRAM Memory的分配情況
也就是把Max User Storage適當地調小
讓運行內存獲得更多的分配
那就能達到目的了

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


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


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

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

  RApaLsSession:

  GetAppIcon()

  GetAppInfo()

  TApaTaskList:

  FindApp()

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

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

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

  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)在安裝后自動運行于手機中,這是非常容易的,只需在你的PKG文件中,在包含你的app或exe文件的那行末尾加上“FR,RI”。

  “FR”表示“File Run”,而“RI”則表示“Run during Installation”。請注意,務必要先開始rsc,aif,mbm文件的安裝,然后才能是APP等(也就是在pkg文件的末尾進行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

  問題四、全面了解文件類型和從屬關系

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

  

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

  //MyApp.hrh

  //

  enum{

  EMyAppCmdOpenFile = 0×6000,

  EMyAppCmdEdit,

  };

  按照慣例這些命令ID值的范圍應該從0×6000開始向上。

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

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

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

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

  問題五、如何在網絡通訊中正確顯示中文

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

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

  3,中文對服務器的傳輸建議統一處理成UTF8編碼進行,從對話框獲得的也一樣處理,服務器需要對應識別過來的字符串并做處理。

  問題六、如何動態更改CEikLabel 的text

  CEikLabel* iLabelStatus;

  …..

  iLabelStatus = new (ELeave) CEikLabel;

  iLabelStatus->SetContainerWindowL( *this );

  iLabelStatus->SetTextL( this->iStatusStr );

  ….

  //動態在這里更改

  iLabelStatus->SetTextL(iStatusStr);

  iLabelStatus->DrawNow();

  如果初始化時就無法顯示,請對照helloworld代碼檢查自己label是否設置正確;如果是進度進行中無法顯示,請檢查CActive是否正確執行,單步DrawNow是否被正確調用。

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

  觸發事件并不是很復雜的事情,

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

  {

  TInt code = aKeyEvent.iCode;

  switch(code)

  {

  // is navigator button pressed導航按鈕被按下時

  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()函數就是傳入當前用戶選擇的那個list item的index。

  問題八、pkg文件中指定多個操作系統版本

  pkg file定義了安裝文件(sis)的內容,它包括應用程序的UID,一個支持的語言列表,目標產品的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定義了應用程序的目標環境,大部分的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

  如果程序需要依據各不同的平臺來進行安裝,那就可以使用條件語句塊來處理,這時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

  就可以生成一個支持多平臺的安裝文件,除了機器UID外,還有很多屬性,如內存和CPU的標識:

  注意,機器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

  可以使用如下的代碼來找出該設備的機器UID:

  #include //and link with hal.lib

  TInt machineUid = 0;

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

  問題九、如何按字節讀取文件

  1.RFile::Read()

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

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

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

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

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

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

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

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

接著log會自己跳轉到Heap標簽下,里面顯示了內存地址,如圖:

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

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

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

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

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

# I; F, d6 Q5 g, Z1 y4 U3.通過Symbian認證授權
# }/ t/ q# e* v2 m概要與描述· 當通過Symbian認證授權后,一些功能將可用。0 n4 P# ?" R) Q$ O% ]" j+ m, b
· 某些敏感功能需要在使用時進行驗證。也可能需要通過測試。中國移動開發者社區+附加字; j. y% G. H/ W
· 大多數敏感功能要求開發商填寫功能需求表與平臺制造商同意表,還需要通過一些包括額外平臺開發商所定義規范的測試。關于S60的規范可以在www.forum.nokia.com/testing的Nokia Test Criteria for Symbian C++ Applications文檔中找到。
6 i* [; a; r3 T4 @2 O關鍵字 keyword4.通過制造商進行授權
" u; w7 _/ v; U# j  _中國移動論壇· 功能需求表包括TCB與DRM功能。其由設備制造商提供并由一個法律協議規范。6 }( |7 e! L7 i  s" s- ?; z% i3 C  M4 o
· 由于強烈的商業原因,通常需要獲得這些功能211.139.191.144:8001' v' |% x+ ~; j. G( v
2.3 應用程序認證
+ O. Q3 T; J' W& s' E: c0 GS60第三版介紹了應用程序托管認證。這意味著如果沒有使用認證,應用程序將無法安裝。一般來說有以下兩種認證:
/ b2 x1 A# X8 {. x1 f. I* d1 x2 C中國移動開發者社區+附加字1.使用任意私有標簽(私鑰)獲得唯一認證并且確保SIS文件的完整性。使用makekeys程序可獲得私鑰,而利用運行signsis程序則可完成應用程序認證過程。以上兩種應用程序均可由SDK獲得。; X8 i" ?$ A0 w) N) C  i
2.使用特殊私有密鑰注冊從而獲得證書——認證應用程序從而使設備上的可信根證書認證應用程序。中國移動開發者社區+附加字/ s& _) _( o+ V, K! k' h
在部署過程期間,為了將應用程序安裝到設備上,開發商應該使用第一種 認證。后一種認證方法可以通過Symbian注冊來獲得相關功能。中國移動論壇, t; y  L" R. ~! c( ]+ ?! M
2.4 分配功能
* Z9 u7 o4 F/ E+ a$ K211.139.191.144:8001應用程序所需要的功能可以在程序設計階段定義下來。應用程序定義文件包括一個MMP文件,其包含了應用程序所擁有功能的相關信息。然而,車載用戶可以通過車載設備用戶界面在一個特殊區域獲得功能信息。
0 W' j- D# u9 F" P中國移動開發者社區+附加字在應用程序安裝階段,設備將檢測應用程序是否注冊或認證。隨后其將檢測根證書用于確定設備是否被授予應用程序所需求的相應功能。如果沒有遇到問題,安裝過程將繼續直至完成。概要與描述( 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
安裝時用戶授權中國移動開發者社區+附加字# M, D3 B& w6 T$ q5 y9 Z
Symbian認證中國移動論壇# ?( U' G7 d* o6 ^; Q3 r* ~! X  ~
制造商核準中國移動開發者社區+附加字: j* u6 H3 ?" z2 a& X5 G
用戶授予權限+定位
' W: h& {# c- \% G# L3 p  ]211.139.191.144:8001Symbian認證功能+
/ U; F. c' r$ i* K中國移動開發者社區+附加字聲明:中國移動論壇1 r/ [) {" k" E$ y9 P, X4 t
讀設備數據
: S% x- q9 C6 W. G9 R關鍵字 keyword寫設備數據中國移動開發者社區+附加字" f( S1 R( _" M$ `1 W, Q! B
準許在系統中中斷任何進程或者轉換機器狀態(關掉設備)
- u/ d! s& o( l5 X9 m2 N& L  O概要與描述準許訪問提供外圍設備輸入信息的邏輯設備驅動中國移動開發者社區+附加字5 K* r0 k: w8 Q$ a6 t! g
準許服務器應用可以用一個受保護的名字進行注冊中國移動開發者社區+附加字  `( t5 J$ h# d
區分”normal”應用和”trusted”應用的UI中國移動論壇+ }6 ?6 u  G( @- G
準許生成或者捕獲鍵盤以及筆輸入事件
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 ~中國移動開發者社區+附加字寫用戶信息關鍵字 keyword) x+ \1 f6 H" H( j
網絡服務
, {# p8 q9 ]6 t概要與描述本地服務
* S3 M, {" e' w/ A! D211.139.191.144:8001用戶環境關鍵字 keyword! x/ ?4 o+ F2 O* ?, Z8 }
注意:實施可能在兩臺設備間完成
$ e7 g0 K" i3 X中國移動論壇功能需求格式及核準平臺
+ j- j3 u5 L3 O) v% r  l關鍵字 keyword功能需求表與功能商鑒定:
/ o8 D; k& m# J( v 概要與描述+ b# F- T- A! R. ]7 @: M2 n7 |8 m
準許進行硬盤管理操作,例如格式化驅動器關鍵字 keyword5 G  R9 R6 x$ g) D" G# ^7 o$ _2 ~
所有文件操作
1 {/ F. a7 f8 m& S概要與描述準許訪問通信設備驅動
+ I2 w' }; E* k關鍵字 keyword準許對所有多媒體設備驅動(聲音、攝像頭等)的訪問
* A& a$ n' o* V$ J, [; _準許修改或者訪問網絡協議控制概要與描述! j! z' \9 N9 i# d8 F( ]" v: R3 f% N% w
表1 功能對比 表2為實踐環節的更多功能提供了信息
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關鍵字 keyword準許修改或者訪問網絡協議控制(NetworkServices)
" s# g7 `9 _: M3 ?' r8 Q/ R6 S211.139.191.144:8001例如撥號或發文本信息的功能中國移動開發者社區+附加字  p* H# G7 ?8 n" _2 F
2
* Q" a. s! y2 Z關鍵字 keyword本地服務(LocalServices)關鍵字 keyword0 y' l: q' n/ N. }3 W0 K- u( j: u
通過USB,紅外或點對點藍牙規范通信的能力
+ c' Q% e: k: i# e3關鍵字 keyword: f) D& p5 z1 b& P" Q! j
讀用戶數據(ReadUserData)
' [7 z! L3 l4 q# v; \: l+ ]關鍵字 keyword授予用戶讀信息的權限。當授予該級規范與用戶數據時,系統服務器與應用程序引擎是非限的中國移動開發者社區+附加字$ F$ M* J) x5 L
4中國移動開發者社區+附加字" _/ X. Z! [9 k/ x
寫用戶數據
+ T2 H& c9 G: q2 K" y0 \/ ?211.139.191.144:8001(WriteUserData)
2 n( p3 a8 G: u1 o+ J授予用戶數據寫權限。同時,當授予該級規范與用戶數據時,系統服務器與應用程序引擎是非限的
# ~1 Y4 A. [) E. q6 j, _& J6 Y% p中國移動論壇5
) ]8 E$ f2 B, l- W1 C中國移動論壇準許訪問手機的位置信息(Location)
* I% E: e; l3 e/ K' u8 R" B中國移動開發者社區+附加字授予可獲得電話位置的權限中國移動論壇5 ^8 R8 Z4 C* ]9 U0 j
6概要與描述. U. c* r9 f7 G# G, q3 N8 l  g+ V% V
]]>
主站蜘蛛池模板: 亚洲欧美日韩成人网| 国产精品入口麻豆电影网| 免费福利在线播放| 亚洲熟女WWW一区二区三区| 蜜中蜜3在线观看视频| 在车子颠簸中进了老师的身体| 久久无码精品一区二区三区| 欧美成人精品第一区首页| 又粗又黑又大的吊av| 亚洲精品无码乱码成人| 免费网站看v片在线成人国产系列| 伊人久久精品线影院| 黑人异族日本人hd| 知乎的小说哪里可以免费| 无码av专区丝袜专区| 亚洲无人区视频大全| 男人的好电影在线观看| 国产在线精品一区二区不卡| 97麻豆精品国产自产在线观看| 好爽快点使劲深点好紧视频| 久久精品免费观看国产| 模特冰漪丰硕之美1| 做暧暧小视频全集免费| 美女奶口隐私免费视频网站| 国产热の有码热の无码视频| h视频免费在线| 怡红院免费手机在线观看| 久热中文字幕在线精品免费| 欧美亚洲第一区| 免费动漫人物扑克软件网站| 精品熟人妻一区二区三区四区不卡 | 玖玖在线免费视频| 国产三级a三级三级野外| 黄色污污视频下载| 国产综合在线观看视频| 一个人看的www日本高清视频 | 99久久精品免费观看国产| 女人张开腿让男桶喷水高潮 | 久久久久久AV无码免费网站| 日韩欧美国产亚洲| 亚洲欧洲春色校园另类小说|