出版時(shí)間:2010-1 出版社:清華大學(xué)出版社 作者:(美)奧布里 等著,杜青 譯 頁(yè)數(shù):297 譯者:杜青
Tag標(biāo)簽:無(wú)
前言
本書是為那些時(shí)間緊迫的開發(fā)者而設(shè)計(jì)的。 作為開發(fā)者的您有可能被告知:需要把一些最初為其他操作系統(tǒng)開的程序(比如,運(yùn)行在臺(tái)式機(jī)上的程序)移植到Symbian OS。也有可能您不得不調(diào)研,以確定Symbian OS是否適合實(shí)現(xiàn)一個(gè)出自您設(shè)計(jì)師朋友的想法。但問題在于,您沒有足夠多的時(shí)間,而且您也聽說過Symbian OS是一個(gè)成熟穩(wěn)定而又復(fù)雜豐富的系統(tǒng),學(xué)習(xí)起來(lái)并不輕松。 如果您的想法和大多數(shù)軟件工程師的一樣,您很可能希望能花些時(shí)間去調(diào)研這些任務(wù)。您可能更傾向于去參加一個(gè)培訓(xùn),或者從Symbian OS已存在的廣泛文檔資料中找出解決方案。然而,我猜想您并沒有充裕的時(shí)間那么做——因?yàn)槟鎸?duì)的是緊迫的進(jìn)度表所帶來(lái)的壓力。您也難以擠出足夠的空閑時(shí)間來(lái)進(jìn)行寬泛的研究。您的上司需要您周末就做出報(bào)告,所以您不得不盡快找出答案。 這就是Symbian Press出版本書的原因。這里我們假設(shè)您是聰明、機(jī)智的軟件工程師,并且已經(jīng)掌握了C++語(yǔ)言和一些現(xiàn)代軟件編程方面的方法和模式。您愿意努力學(xué)習(xí),并且能快速掌握要點(diǎn)。您已經(jīng)做好了暫時(shí)對(duì)一些問題不加深究的準(zhǔn)備,這樣帶來(lái)的好處是您可以快速找出在Symbian OS中完成各種不同任務(wù)的方法。隨著學(xué)習(xí)的深入,您很可能希望去了解更多的背景知識(shí)以及Symbian OS的深層原理,但是沉住氣——當(dāng)務(wù)之急是:您需要找到一些速成的訣竅。 恭喜您,本書就為您提供了這些訣竅!
內(nèi)容概要
對(duì)于初次接觸Symbian OS的C++程序員來(lái)說,本書是必讀的,它從最基礎(chǔ)的知識(shí)入手,向讀者展示了基于Symbian開發(fā)手機(jī)應(yīng)用程序的知識(shí)和技巧?! ≡谝苿?dòng)開發(fā)領(lǐng)域,不管您是需要移植一個(gè)桌面應(yīng)用程序,快速創(chuàng)建一個(gè)程序原型,還是僅僅希望學(xué)習(xí)一些程序開發(fā)的知識(shí),本書都將是您了解和學(xué)習(xí)Symbian OS的首選。同時(shí),本書還是幫助讀者解決移動(dòng)開發(fā)難題的實(shí)用手冊(cè),尤其是第4章,以任務(wù)驅(qū)動(dòng)的方式介紹了Symbian OS手機(jī)開發(fā)的難點(diǎn),并列舉了作者多年積累的一些開發(fā)訣竅。每個(gè)任務(wù)都事先指明了難度等級(jí)、完成需要的時(shí)間等,之后是如何完成該任務(wù)的細(xì)節(jié)以及編程竅門?! ”緯厣骸 ?從Symbian OS移動(dòng)開發(fā)基礎(chǔ)知識(shí)入手,涵蓋Symbian OS所有技術(shù):圖形和繪圖、多媒體、網(wǎng)絡(luò)、基于位置的服務(wù)、通話、短信息等?! ?以任務(wù)驅(qū)動(dòng)的方式來(lái)介紹Symbian OS開發(fā)技術(shù),在介紹技術(shù)的同時(shí),指出其實(shí)際應(yīng)用?! ?作者多年開發(fā)經(jīng)驗(yàn)的總結(jié),多達(dá)112個(gè)編程訣竅,將使讀者少走許多彎路。
作者簡(jiǎn)介
Michael Aubert在Symbian的Java組和iAnywhere的研發(fā)組總共工作了7個(gè)年頭。期間,他對(duì)包括手機(jī)通話、短信息、3D圖像、網(wǎng)絡(luò)、多媒體、PIM、密碼、系統(tǒng)安全及軟件部署在內(nèi)的許多技術(shù)都有很深入的研究。
他擁有E.S.I.A.L軟件工程學(xué)院的理學(xué)碩士學(xué)位,并且還很有可能是唯一一
書籍目錄
第1章 入門和設(shè)置 1.1 工具:您需要什么以及從哪里獲得 1.1.1 系統(tǒng)需求 1.1.2 IDE 1.1.3 SDK 1.1.4 編譯器 1.2 當(dāng)?shù)却惭b時(shí) 1.2.1 Carbide.c++ 1.2.2 開發(fā)社區(qū) 1.2.3 移動(dòng)開發(fā)的概念 1.2.4 ARM硬件 1.2.5 模擬器 1.3 安裝結(jié)束后 1.3.1 命令行工具 1.3.2 SDK的目錄結(jié)構(gòu) 1.3.3 模擬器 第2章 快速上手 2.1 Hello World項(xiàng)目模板 2.2 運(yùn)行Carbide.c++ IDE 2.3 生成Hello World項(xiàng)目 2.4 構(gòu)建Hello World項(xiàng)目 2.5 在模擬器上運(yùn)行Hello World程序 2.6 在設(shè)備上運(yùn)行Hello World程序 2.7 修改Hello World項(xiàng)目 2.7.1 添加一個(gè)新的菜單項(xiàng) 2.7.2 處理菜單事件 2.8 Carbide.c++高級(jí)議題 2.8.1 修改項(xiàng)目文件 2.8.2 導(dǎo)入項(xiàng)目文件 2.8.3 改變認(rèn)證/密鑰對(duì) 2.9 鏈接 第3章 Symbian OS開發(fā)基礎(chǔ) 3.1 Symbian OS的基本數(shù)據(jù)類型 3.2 Symbian OS的類習(xí)俗 3.2.1 T類 3.2.2 C類 3.2.3 R類 3.2.4 M類 3.2.5 靜態(tài)類 3.3 異常退出和異常處理 3.3.1 嚴(yán)重錯(cuò)誤Panic和異常退出的區(qū)別 3.3.2 TRAP和TRAPD宏 3.3.3 是什么造成了異常退出 3.3.4 new(ELeave) 3.4 清除棧 3.5 清除棧常見問題:更多信息 3.5.1 為什么PushL()會(huì)異常退出 3.5.2 在使用清除棧的時(shí)候?yàn)槭裁磿?huì)出現(xiàn)嚴(yán)重錯(cuò)誤 3.5.3 當(dāng)代碼運(yùn)行出TRAP以后為什么會(huì)出現(xiàn)嚴(yán)重錯(cuò)誤 3.5.4 當(dāng)調(diào)用CleanupStack::Pop()時(shí)為什么會(huì)產(chǎn)生嚴(yán)重錯(cuò)誤 3.5.5 應(yīng)該如何綜合使用異常退出、標(biāo)準(zhǔn)異常處理以及清除棧 3.6 兩階段構(gòu)造 3.7 瘦模板 3.8 描述符——Symbian OS字符串 3.8.1 字符大小 3.8.2 TDesC 3.8.3 TDes 3.8.4 描述符的繼承類 3.8.5 指針型描述符:TPtrC和TPtr 3.8.6 基于棧緩存的描述符TBufC和TBuf 3.8.7 動(dòng)態(tài)描述符:HBufC和RBuf 3.8.8 使用RBuf 3.8.9 字面描述符 3.8.10 描述符類型:總結(jié) 3.8.11 使用描述符API 3.8.12 用作函數(shù)參數(shù)和返回值的描述符 3.9 Symbian OS中的數(shù)組 3.9.1 靜態(tài)數(shù)組 3.9.2 動(dòng)態(tài)數(shù)組 3.9.3 RArray類的清除 3.9.4 什么時(shí)候應(yīng)該使用CArrayX數(shù)組 3.9.5 排序和查找 3.10 可執(zhí)行文件 3.11 平臺(tái)安全:能力 3.12 平臺(tái)安全:數(shù)據(jù)隔離 3.13 棧大小和堆大小 3.14 流 3.15 活動(dòng)對(duì)象 3.15.1 搶占 3.15.2 CActive類 3.15.3 TRequestStatus類 3.15.4 活動(dòng)調(diào)度器 3.15.5 使用活動(dòng)對(duì)象時(shí)的常見問題 3.16 線程 3.17 時(shí)鐘和回調(diào)函數(shù) 3.18 小結(jié) 第4章 Symbian C++訣竅 第5章 更上一層樓 第6章 發(fā)布程序
章節(jié)摘錄
插圖:在單個(gè)的應(yīng)用程序線程中,活動(dòng)對(duì)象之間是獨(dú)立運(yùn)行的,這有點(diǎn)類似于線程在同一個(gè)進(jìn)程內(nèi)是相互獨(dú)立的。簡(jiǎn)單介紹之后可以發(fā)現(xiàn),在單個(gè)線程中切換活動(dòng)對(duì)象比線程內(nèi)容切換負(fù)擔(dān)要小,這對(duì)于Symbian OS上的輕量級(jí)多任務(wù)事件驅(qū)動(dòng)來(lái)說是非常理想的。3.15.1搶占在一個(gè)單獨(dú)的線程內(nèi),活動(dòng)對(duì)象構(gòu)架采用的是非搶占多任務(wù)機(jī)制。一旦被喚起,其事件處理就必須被運(yùn)行直到完成,之后才可以運(yùn)行其他活動(dòng)對(duì)象的事件處理——不可以被搶占。一些事件對(duì)請(qǐng)求的響應(yīng)時(shí)間有嚴(yán)格的限定,而不管系統(tǒng)中其他的活動(dòng)如何(比如低級(jí)別的通話模塊)。這被稱作“實(shí)時(shí)”事件處理?;顒?dòng)對(duì)象不適合用在實(shí)時(shí)任務(wù)中,Symbian OS中的實(shí)時(shí)任務(wù)應(yīng)該用高優(yōu)先級(jí)的線程來(lái)實(shí)現(xiàn)。Symbian OS的線程被內(nèi)核以可搶占的方式調(diào)度,總是去運(yùn)行那些符合條件的最高優(yōu)先級(jí)的線程。內(nèi)核控制線程的調(diào)度,允許線程以劃分的時(shí)間片來(lái)共享系統(tǒng)資源,如果一個(gè)更高優(yōu)先級(jí)的線程達(dá)到運(yùn)行條件,則可以搶占當(dāng)前運(yùn)行的線程。在當(dāng)前線程被掛起時(shí)(比如它被阻塞、用完了自己的時(shí)間片或一個(gè)更高優(yōu)先級(jí)的線程變?yōu)榈却\(yùn)行狀態(tài)時(shí)),會(huì)產(chǎn)生一個(gè)內(nèi)容切換,在內(nèi)核調(diào)度下另一個(gè)線程成為當(dāng)前線程并開始運(yùn)行。如果最初的線程和要替換的線程運(yùn)行在不同的進(jìn)程、內(nèi)存控制單元或硬件緩存中,則內(nèi)容切換從內(nèi)核調(diào)度的角度會(huì)產(chǎn)生一個(gè)運(yùn)行時(shí)的開銷。
編輯推薦
《Symbian OS C++編程訣竅》:移動(dòng)與嵌入式開發(fā)技術(shù)
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載