久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区

Rss & SiteMap

曙海教育集團(tuán)論壇 http://www.bjzhda.cn

曙海教育集團(tuán)論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標(biāo)題:Symbian基礎(chǔ)類知識(shí)

1樓
wangxinxin 發(fā)表于:2010-12-3 15:45:30
〖SymbianOS 簡介〗

1.1 SymbianOS的六大特性

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

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

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

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

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

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

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

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

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

以Series60為例:

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

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

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

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

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

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

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

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

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

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

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

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

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

Global chunks(全局chunk)
如果一個(gè)chunk可以被其他進(jìn)程訪問,那么這個(gè)chunk就是全局chunk。全局chunk是有名字的,這樣,進(jìn)程可以根據(jù)chunk的名字來訪問他們。當(dāng)進(jìn)程打開一個(gè)全局chunk的時(shí)候,他把chunk映射到自己的地址空間,這樣就可以對(duì)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:

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

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

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

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

如何共享heap
heap通常被同一個(gè)進(jìn)程的線程所共享當(dāng)一個(gè)線程創(chuàng)建時(shí):
?它可以和父線程使用同一個(gè)heap。
?父線程同時(shí)為新線程創(chuàng)建一個(gè)新的heap。
?新線程使用系統(tǒng)為它創(chuàng)建的heap。
這里,只有第一和第二中情況可以認(rèn)為是heap的共享。
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團(tuán)
Powered By 曙海教育集團(tuán) Version 2.2
Processed in .01563 s, 2 queries.
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
欧美96一区二区免费视频| 亚洲欧洲精品一区二区三区| 欧美高清性xxxxhdvideosex| 国产有色视频色综合| 国产精品免费一区二区| 欧美第一黄网| 欧洲视频一区二区| 欧美一级二级三级乱码| 国产性做久久久久久| 亚洲欧美在线视频观看| 亚洲第一搞黄网站| 国产伦精品一区二区三区视频青涩 | 亚洲在线播放电影| 欧美日韩高清影院| www日韩大片| 一区二区激情小说| 久久99精品国产.久久久久久| 国产精品一区二区久久精品爱涩| 国产91精品精华液一区二区三区| av成人在线电影| 日本在线视频一区| 91精品视频网| 亚洲图片激情小说| 激情亚洲综合在线| 国产福利不卡| 日本丶国产丶欧美色综合| 欧美xingq一区二区| 亚洲一区二区三区爽爽爽爽爽 | 国产精品18毛片一区二区| 麻豆av一区二区三区| 欧美午夜精品久久久久久孕妇| 亚洲精品一区二区三区在线观看| 亚洲色大成网站www久久九九| 男女男精品网站| 99三级在线| 欧美性感一类影片在线播放| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产精品影院| 91视视频在线观看入口直接观看www| 久久综合九九| 51精品秘密在线观看| 亚洲欧洲日韩女同| 国产aⅴ综合色| 亚洲精品国产系列| 欧美经典一区二区| 国产一区三区三区| 狠狠色伊人亚洲综合网站色| 欧美日韩国产天堂| 亚洲一区av在线| 99re在线国产| 777亚洲妇女| 亚洲午夜激情av| 99久久国产免费免费| 欧美日韩一区精品| 一区二区三区精品久久久| 不卡一区中文字幕| 欧美无人高清视频在线观看| 成人欧美一区二区三区小说 | 国产69精品一区二区亚洲孕妇| 久久人人爽爽人人爽人人片av| 欧美精品一二三| 亚洲h在线观看| 精品久久久三级| 久久众筹精品私拍模特| 久久99国产精品免费| 日韩在线电影一区| 国产精品色哟哟网站| 成人影视亚洲图片在线| 欧美午夜精品久久久久久超碰| 亚洲人成影院在线观看| 99视频国产精品免费观看| 日韩欧美一级在线播放| 国内精品写真在线观看| 一区二区视频在线观看| 国产精品国产a| 波多野结衣久草一区| 精品国产麻豆免费人成网站| 国产一区二区三区免费| 欧美日韩在线直播| 美国三级日本三级久久99 | 色呦呦一区二区三区| 一区二区欧美国产| 久久精品日产第一区二区三区乱码 | 亚洲一卡二卡三卡四卡无卡久久| 久久99精品久久久久久青青日本| 国产欧美1区2区3区| 99免费在线视频观看| 日本一区二区三区高清不卡| 91女厕偷拍女厕偷拍高清| 国产亚洲欧洲一区高清在线观看| 成人av手机在线观看| 欧美精品一区在线观看| 99久久久无码国产精品| 久久人人97超碰com| 91在线无精精品入口| 国产亚洲综合性久久久影院| 91青青草免费观看| 国产精品不卡一区二区三区| 久久精品国产一区二区三区日韩| 一区在线观看视频| 日本精品一区二区三区不卡无字幕 | 日韩一区二区三区免费观看| 国产一区二区不卡在线 | 欧美在线观看禁18| 久久不见久久见免费视频7 | 91老师片黄在线观看| 日韩精品在线看片z| 国产精品一区在线观看乱码| 在线视频欧美精品| 国产成人免费视频网站| 欧美另类一区二区三区| 韩国女主播成人在线| 欧美视频一区二区在线观看| 蜜臀国产一区二区三区在线播放| 蜜桃传媒视频第一区入口在线看| 亚洲成人精品一区| 中文字幕色一区二区| 午夜天堂影视香蕉久久| 亚洲精品乱码视频| 日韩激情一二三区| 日本乱人伦一区| 成人国产电影网| 久久婷婷国产综合国色天香 | 麻豆传媒一区| 亚洲精品国产高清久久伦理二区| 久热国产精品视频一区二区三区| 《视频一区视频二区| 蜜桃91精品入口| 最新成人av在线| 欧美三级韩国三级日本三斤| 黑人精品欧美一区二区蜜桃| 日韩欧美在线不卡| 91精品国产高清久久久久久91裸体| 久久女同性恋中文字幕| 99久久综合99久久综合网站| 一区二区三区视频在线观看| 一区二区三区四区视频在线| 日韩二区三区四区| 欧美人伦禁忌dvd放荡欲情| 国产成人精品www牛牛影视| 日韩理论电影院| 亚洲一区二区三区涩| 乱中年女人伦av一区二区| 538prom精品视频线放| 91丨porny丨中文| 一区二区激情视频| 精品国产免费视频| 国产麻豆乱码精品一区二区三区 | 视频一区二区在线| 久久99国产精品免费网站| 91精品国产美女浴室洗澡无遮挡| 不卡欧美aaaaa| 亚洲色图19p| 欧美在线free| 人偷久久久久久久偷女厕| 久久激情五月激情| 欧美经典一区二区| 在线免费观看成人| 97精品超碰一区二区三区| 一区二区三区国产精华| 在线不卡欧美精品一区二区三区| 99精品黄色片免费大全| 亚洲图片欧美一区| 日韩欧美国产wwwww| 日本高清久久一区二区三区| 91免费看蜜桃| 蜜桃视频免费观看一区| 国产日韩欧美制服另类| 一本高清dvd不卡在线观看| av午夜一区麻豆| 狠狠久久亚洲欧美| 中文字幕日本不卡| 制服丝袜在线91| 欧美日韩在线观看一区二区三区| 国产原创一区二区三区| 肉丝袜脚交视频一区二区| 久久精品男人天堂av| 在线看国产一区二区| 国产一区免费在线| 国产老肥熟一区二区三区| 亚洲一区二区三区四区在线观看 | 国产精品伦理在线| 欧美日韩无遮挡| 成人一区二区三区| 亚洲福利视频一区二区| 国产亚洲va综合人人澡精品 | 日韩电影一区二区三区四区| 久久久精品日韩欧美| 欧美色欧美亚洲另类二区| 久久精品一二三区| 97久久精品午夜一区二区| 久久99国产精品久久99果冻传媒| 亚洲国产精品精华液2区45| 欧美日韩一二三| 午夜午夜精品一区二区三区文| 成人中文字幕合集| 成人网在线免费视频| 美日韩一区二区| 一区二区三区成人| 国产精品乱码一区二区三区软件 |