本書由J2ME平臺創(chuàng)始者Sun公司和Nokia等主要消費設(shè)備制造廠商的專家撰寫,內(nèi)容權(quán)威,全面介紹了Java 2 Platform, Micro Edition(J2ME)的整體架構(gòu),特別重點討論了兩個關(guān)鍵的J2ME標(biāo)準(zhǔn):Connected, Limited Device Configuration(CLDC)1.1版和Mobile Information Device Profile(MIDP)2.0版,主要包括CLDC類庫、MIDP應(yīng)用程序模型、MIDP用戶界面庫、MIDP高層用戶接口、MIDP低層用戶界面類庫、MIDP Sound API、MIDP持久庫、MIDP網(wǎng)絡(luò)和串行通信、網(wǎng)絡(luò)安全、事件驅(qū)動的應(yīng)用程序啟動、MIDlet套件安全性、MIDlet的部署、附加MIDP API等內(nèi)容,完整覆蓋了J2ME平臺開發(fā)的各個方面的技術(shù),并附有CLDC應(yīng)用程序編程接口和MIDP應(yīng)用程序編程接口的API參考大全,是J2ME平臺開發(fā)領(lǐng)域最權(quán)威參考書籍之一。對從事無線移動設(shè)備開發(fā)的軟件開發(fā)人員來說,本書是一本必備的參考書。 譯者:肖煒、郭曉剛 定價:49.00 頁碼:433 開本:短16開 出版時間:2004-06-01 購買地址
目錄 譯序 iii 圖索引 xxvii 序 xix 前言 xxi 致謝 xxvii 第1章 簡介 1 1.1 無線Internet革命 1 1.2 為什么要在無線設(shè)備上應(yīng)用Java技術(shù) 2 1.3 簡短的歷史回顧 3 1.4 J2ME?標(biāo)準(zhǔn)化的成果 4 第2章 J2ME概述 7 2.1 Java 2平臺 7 2.2 Java 2 Platform, Micro Edition (J2ME) 9 2.3 J2ME架構(gòu)的關(guān)鍵概念 10 2.3.1 Profiles 12 2.3.2 Configurations 14 2.3.3 可選包(Optional Packages) 17 2.4 J2ME平臺的演進(jìn) 17 2.4.1 J2ME核心標(biāo)準(zhǔn)化的成果 18 2.4.2 無線通訊領(lǐng)域的可選包 19 第3章 目標(biāo)、要求和范疇 23 3.1 主要目標(biāo) 23 3.1.1 Java應(yīng)用程序和內(nèi)容的動態(tài)部署 24 3.1.2 第三方應(yīng)用程序開發(fā) 24 3.1.3 獨立于任何網(wǎng)絡(luò)技術(shù)標(biāo)準(zhǔn) 25 3.1.4 與其他無線應(yīng)用程序標(biāo)準(zhǔn)的兼容性 26 3.2 目標(biāo)設(shè)備 26 3.3 泛論消費類設(shè)備和嵌入式系統(tǒng) 28 3.4 要求 30 3.4.1 CLDC的硬件要求 31 3.4.2 MIDP的硬件要求 32 3.4.3 CLDC的軟件要求 32 3.4.4 MIDP的軟件要求 33 3.4.5 J2ME的要求 34 3.5 CLDC及MIDP標(biāo)準(zhǔn)涉及的范疇 35 3.5.1 CLDC的范疇 35 3.5.2 MIDP的范疇 35 第4章 Connected Limited Device Configuration 39 4.1 CLDC專家組 40 4.1.1 CLDC 1.0專家組 40 4.1.2 CLDC 1.1專家組 40 4.2 CLDC架構(gòu)、應(yīng)用程序模型和安全性 41 4.2.1 架構(gòu)概述 41 4.2.2 Java應(yīng)用程序的概念 42 4.2.3 應(yīng)用程序安全性 43 4.2.4 應(yīng)用程序管理 45 4.3 對Java語言規(guī)范的兼容性 46 4.3.1 不支持類實例的Finalization 47 4.3.2 錯誤處理上的局限 47 4.4 對Java虛擬機規(guī)范的兼容性 48 4.4.1 從虛擬機中去除的特性 48 4.4.2 類文件驗證 50 4.4.3 類文件格式和類裝載 52 4.5 CLDC 1.1的新特性 55 第5章 CLDC類庫 57 5.1 背景和目標(biāo) 57 5.2 繼承自J2SE的類 58 5.2.1 系統(tǒng)類 58 5.2.2 數(shù)據(jù)類型類 59 5.2.3 集合容器類 59 5.2.4 輸入/輸出類 59 5.2.5 日歷和時間類 60 5.2.6 其他附加類 60 5.2.7 異常和錯誤類 60 5.2.8 弱引用(Weak References) 62 5.2.9 國際化支持 62 5.2.10 對系統(tǒng)屬性的支持 63 5.3 CLDC特有的類 64 5.3.1 背景和動機 64 5.3.2 通用連接(Generic Connection)框架 65 5.3.3 CLDC不包含網(wǎng)絡(luò)協(xié)議的具體實現(xiàn) 67 5.3.4 通用連接(Generic Connection)接口小結(jié) 67 5.4 CLDC 1.1的新特性 70 第6章 Mobile Information Device Profile 73 6.1 MIDP專家組 74 6.1.1 MIDP 1.0專家組 74 6.1.2 MIDP 2.0專家組 74 6.2 MIDP規(guī)范涵蓋的領(lǐng)域 76 第7章 MIDP應(yīng)用程序模型 79 7.1 MIDlet 79 7.1.1 MIDlet的狀態(tài) 82 7.1.2 startApp,pauseApp和destroyApp方法的用法 84 7.1.3 程序生命期和用戶界面API 87 7.2 MIDlet套件(Suites) 88 7.3 MIDP 2.0的新特性 88 第8章 MIDP用戶界面類庫 89 8.1 與桌面AWT相比的MIDP用戶界面 90 8.2 MIDP用戶界面API的結(jié)構(gòu) 90 8.2.1 可顯示模型(Displayable Model) 91 8.2.2 底層用戶界面 93 8.2.3 高層用戶界面 93 8.3 Display類 95 8.3.1 當(dāng)前可顯示(Current Displayable) 96 8.3.2 屏幕背光和設(shè)備振動器 97 8.4 Displayables 97 8.4.1 Ticker 99 8.5 命令(Command) 100 8.5.1 映射到設(shè)備用戶界面的命令 100 8.5.2 Command特性 101 8.5.3 命令類型 102 8.5.4 命令監(jiān)聽者(Command Listeners) 105 8.6 高級話題 106 8.6.1 系統(tǒng)屏幕 106 8.6.2 適應(yīng)特定設(shè)備用戶界面樣式 106 8.6.3 設(shè)備提供的操作 107 8.6.4 同步性 108 8.7 MIDP 2.0的新特性 109 第9章 MIDP高層用戶界面——Screen 111 9.1 列表List 111 9.1.1 隱含列表(Implicit List) 113 9.1.2 單選列表(Exclusive Choice List) 115 9.1.3 多選列表(Multiple Choice List) 116 9.1.4 長列表元素(Long List Elements) 116 9.1.5 列表元素字體 117 9.2 文本框(TextBox) 118 9.2.1 輸入約束(Input Constraints) 119 9.2.2 輸入模式(Input Modes) 121 9.3 警告(Alert) 122 9.3.1 警告中的命令 124 9.3.2 行為指示器(Activity Indicator) 124 9.4 窗體(Form) 125 9.5 MIDP 2.0的新特性 126 第10章 MIDP高層用戶界面——Form 129 10.1 Item類 129 10.1.1 ItemStateListener 129 10.1.2 條目命令 130 10.2 StringItem類 130 10.2.1 外觀模式 131 10.3 ImageItem類 132 10.4 TextField類 133 10.5 DateField類 134 10.6 ChoiceGroup類 135 10.7 Gauge類 135 10.8 CustomItem類 136 10.8.1 交互模式 137 10.8.2 遍歷(Traversal) 138 10.9 窗體布局 139 10.9.1 行間斷 140 10.9.2 標(biāo)簽布局 141 10.9.3 當(dāng)前對齊 141 10.9.4 條目尺寸 142 10.9.5 行填充 143 10.9.6 間隔 145 10.10 MIDP2.0的新特性 145 第11章 MIDP低層用戶界面類庫 149 11.1 Canvas API 149 11.1.1 Canvas的范圍 150 11.1.2 重繪機制 150 11.1.3 繪制模型 151 11.1.4 Canvas 的可見性 151 11.2 Canvas的低層事件API 152 11.2.1 按鍵事件 152 11.2.2 動作按鍵(Action Keys) 152 11.2.3 指點事件(Pointer Events) 153 11.3 Graphics 153 11.3.1 坐標(biāo)系統(tǒng) 153 11.3.2 修剪(Clipping) 154 11.3.3 坐標(biāo)變換 154 11.3.4 色彩模型 155 11.3.5 線條風(fēng)格 155 11.3.6 字體 156 11.4 創(chuàng)建和使用圖像 156 11.4.1 不可變圖像 156 11.4.2 可變圖像 157 11.4.3 透明度和Alpha合成 157 11.4.4 獲取RGB數(shù)據(jù) 158 11.4.5 錨點(Anchor Points) 159 11.5 基本繪制操作 160 11.5.1 繪制線條 160 11.5.2 弧形的繪制和填充 161 11.5.3 矩形的繪制和填充 162 11.5.4 圓角矩形的繪制和填充 164 11.5.5 三角形的填充 165 11.5.6 繪制文字 166 11.5.7 繪制圖像 166 11.5.8 繪制RGB數(shù)據(jù) 168 11.5.9 像素區(qū)域的復(fù)制 169 11.6 MIDP 2.0的新特性 170 第12章 MIDP Game API 173 12.1 GameCanvas 173 12.1.1 按鍵查詢(Key Polling) 174 12.1.2 屏幕緩沖 175 12.2 Layer 175 12.3 Sprite 176 12.3.1 幀 176 12.3.2 幀序列 178 12.3.3 引用像素(Reference Pixel) 179 12.3.4 變換(Transform) 180 12.4 TiledLayer 180 12.4.1 圖塊(Tile) 180 12.4.2 單元格(Cell) 182 12.5 LayerManager 184 12.6 沖突檢測 186 12.6.1 矩形框沖突檢測 186 12.6.2 像素級沖突檢測 187 12.7 示例代碼:一個簡單的游戲 188 12.8 MIDP 2.0的新特性 195 第13章 MIDP Sound API 197 13.1 MIDP 2.0 Sound API概述 197 13.1.1 MIDP支持的媒體 197 13.1.2 設(shè)計目標(biāo) 198 13.1.3 需求 199 13.1.4 MIDP Sound的架構(gòu) 200 13.2 播放器的創(chuàng)建和管理 202 13.2.1 管理媒體框架 202 13.2.2 為媒體數(shù)據(jù)創(chuàng)建播放器 203 13.2.3 音調(diào)生成 206 13.2.4 示例代碼 207 13.3 媒體控件 208 13.3.1 ToneControl 208 13.3.2 VolumeControl 211 13.3.3 定制控件 211 13.3.4 示例代碼 211 13.4 Mobile Media API增強的媒體支持 217 13.4.1 DataSource 218 13.4.2 高級控件 218 13.5 MIDP 2.0的新特性 219 第14章 MIDP持久庫 221 14.1 記錄管理系統(tǒng) 221 14.2 操作存儲記錄和記錄 223 14.2.1 操作一個存儲記錄 223 14.2.2 共享的存儲記錄 225 14.2.3 操作存儲記錄中的記錄 226 14.2.4 記錄數(shù)據(jù)與字節(jié)數(shù)據(jù)的相互轉(zhuǎn)換 226 14.2.5 過濾、比較、監(jiān)聽和枚舉記錄 227 14.3 例子代碼(RMSMIDlet.java) 231 14.4 MIDP 2.0新特性 241 第15章 MIDP網(wǎng)絡(luò)和串行通信 243 15.1 無線數(shù)據(jù)網(wǎng)絡(luò)的特性 243 15.2 關(guān)于網(wǎng)絡(luò)接口的考慮 244 15.3 HttpConnection接口 245 15.3.1 HTTP連接狀態(tài) 245 15.3.2 HTTP安全性 246 15.3.3 建立連接 246 15.3.4 對URL的語法分析 247 15.3.5 HTTP請求頭標(biāo) 248 15.3.6 使用HTTP連接 250 15.3.7 HTTP響應(yīng)頭標(biāo) 252 15.3.8 關(guān)閉HTTP連接 253 15.4 一個例子(NetClientMIDlet.java) 253 15.5 SocketConnection 264 15.5.1 取得本地地址和端口號 264 15.5.2 取得遠(yuǎn)程主機的地址和端口號 265 15.5.3 讀取和設(shè)置套接字選項 265 15.5.4 關(guān)閉流 266 15.5.5 SocketConnection的安全性 266 15.5.6 例子 266 15.6 ServerSocketConnection 267 15.6.1 獲取本地地址和端口地址 267 15.6.2 ServerSocketConnection的安全性 268 15.6.3 例子 268 15.7 UDPDatagramConnection 269 15.7.1 取得本地地址和端口號 269 15.7.2 數(shù)據(jù)報 270 15.7.3 關(guān)閉連接 270 15.7.4 UDPDatagramConnection的安全性 271 15.7.5 例子 271 15.8 CommConnection 272 15.8.1 串行口速率的獲取和設(shè)置 273 15.8.2 CommConnection的安全性 274 15.8.3 命名端口的好習(xí)慣 274 15.8.4 例子 274 15.9 MIDP 2.0的新特性 276 第16章 安全網(wǎng)絡(luò) 277 16.1 檢查一個連接的安全屬性 278 16.1.1 服務(wù)器證書 279 16.1.2 X.509識別名的可打印表示規(guī)范 280 16.2 HttpsConnection 281 16.2.1 HttpsConnection的安全性 281 16.2.2 例子 282 16.3 SecureConnection 283 16.3.1 SecurityConnection的安全性 284 16.3.2 例子 284 16.4 MIDP X.509 證書原型 285 16.4.1 證書擴展 286 16.4.2 證書大小 286 16.4.3 算法支持 286 16.4.4 HTTPS的證書處理過程 286 16.5 MIDP 2.0里新加進(jìn)的特性 287 第17章 事件驅(qū)動的應(yīng)用程序啟動 289 17.1 基于警告的MIDlet啟動 289 17.2 基于網(wǎng)絡(luò)的MIDlet啟動 291 17.2.1 注冊要啟動的MIDlet 291 17.2.2 靜態(tài)推注冊機制 292 17.2.3 動態(tài)推注冊機制 294 17.3 監(jiān)聽和啟動 295 17.4 在啟動后處理連接 296 17.5 推注冊(Push Registry)的安全 297 17.6 樣例使用場景 298 17.6.1 聊天程序例子 298 17.6.2 Ping程序例子 300 17.7 MIDP 2.0新特性 303 第18章 MIDlet套件的安全性 305 18.1 假設(shè) 306 18.2 針對不可信MIDlet套件的沙盒 307 18.3 可信任的MIDlet套件安全模型 308 18.3.1 許可 308 18.3.2 為一個MIDlet套件請求許可 310 18.3.3 保護域 311 18.3.4 用戶許可的交互模式 311 18.3.5 批準(zhǔn)對可信任MIDlet套件的許可 312 18.4 對安全不敏感的API 313 18.5 使用X.509 PKI為MIDlet套件建立信任 313 18.5.1 簽署一個MIDlet套件 314 18.5.2 認(rèn)證一個MIDlet套件 317 18.5.3 認(rèn)證和授權(quán)結(jié)果緩存 320 18.5.4 可信任的MIDlet套件的X.509注冊Profile 320 18.6 對GSM/UMTS設(shè)備的推薦安全策略 321 18.7 MIDP 2.0的新特性 321 第19章 MIDlet的部署 323 19.1 MIDlet套件 323 19.1.1 打包MIDlet套件 324 19.1.2 應(yīng)用程序描述文件 324 19.1.3 MIDlet 屬性 325 19.1.4 MIDlet套件執(zhí)行環(huán)境 330 19.2 MIDP系統(tǒng)軟件 332 19.3 用戶發(fā)起的無線程序供應(yīng) 332 19.3.1 更新MIDlet套件 334 19.3.2 刪除MIDlet套件 334 19.3.3 安裝和刪除狀況報告 335 19.3.4 安裝狀況代碼和消息 336 19.4 MIDP 2.0的新特性 337 第20章 附加MIDP API 339 20.1 定時器支持 339 20.1.1 使用單次定時器 340 20.1.2 使用重復(fù)定時器 341 20.1.3 示例代碼(TimerMIDlet.java) 342 20.2 系統(tǒng)屬性 346 20.3 應(yīng)用程序資源文件 347 20.4 退出MIDlet 347 第21章 總結(jié) 349 參考文獻(xiàn) 353 附錄A CLDC應(yīng)用程序編程接口 355 API大全凡例 356 CLDC API大全 359 附錄B MIDP應(yīng)用程序編程接口 391 MIDP API大全 393 索引 425
前言 在過去的5年中,SUN公司與主要的消費類設(shè)備制造商及其他公司合作,為手機、雙向?qū)ず魴C、個人電子日程簿等資源受限的無線消費類設(shè)備,共同創(chuàng)造了一個高度可移植、安全、小內(nèi)存環(huán)境下的Java應(yīng)用程序開發(fā)環(huán)境。這項工作從開發(fā)一個叫做“K Virtual Machine(KVM)”的新的小內(nèi)存環(huán)境下的Java虛擬機開始。隨后開始兩項Java Community Process(JCP)標(biāo)準(zhǔn)化工作,Connected, Limited Device Configuration(CLDC)和Mobile Information Device Profile(MIDP),以使這些應(yīng)用于相當(dāng)廣泛的消費類設(shè)備的Java類庫及相關(guān)Java語言和虛擬機特性標(biāo)準(zhǔn)化。 第一輪CLDC和MIDP的標(biāo)準(zhǔn)化工作發(fā)生在1999年秋季到2000年春季。在進(jìn)行期間,24家公司直接參與了CLDC 1.0和MIDP 1.0的標(biāo)準(zhǔn)化工作,超過500個公司和個人通過發(fā)送反饋信息間接地參與了這項工作。主要的消費類設(shè)備制造公司如Motorola、Nokia、NTT DoCoMo、Palm Computing、Research In Motion(RIM)及Siemens在這項工作中扮演了關(guān)鍵的角色。 自從初次發(fā)布以來,CLDC 1.0和MIDP 1.0已經(jīng)變得非常流行。支持Java的無線設(shè)備投入實用是在2000年,并在2001到2002年間大大加速,接近指數(shù)增長。估計在2002年共出廠了超過5千萬臺支持CLDC和MIDP標(biāo)準(zhǔn)的設(shè)備,而2003年預(yù)計將至少是這個數(shù)目的兩倍。作為標(biāo)準(zhǔn)被廣泛接受的結(jié)果,無線設(shè)備領(lǐng)域的巨大商業(yè)機會已經(jīng)在 Java應(yīng)用程序開發(fā)者面前顯現(xiàn)出來。 第2輪CLDC和MIDP標(biāo)準(zhǔn)化工作從2001年的秋季開始。CLDC 1.1和MIDP 2.0的目標(biāo)是繼續(xù)先前版本的成功,精簡現(xiàn)有的特性集合,并引入附加的API,但密切注意保持嚴(yán)格的內(nèi)存限制,因為它仍然限制著無線設(shè)備的設(shè)計。超過60 家公司直接參與了CLDC 1.1和MIDP 2.0規(guī)范的開發(fā),這正是這些標(biāo)準(zhǔn)被無線工業(yè)界廣泛接受和采用的反映。 本書試圖使更廣泛的軟件開發(fā)社區(qū)能夠獲得無線Java技術(shù)的最新標(biāo)準(zhǔn)化工作成果。大體上,本書結(jié)合了兩份Java Community Process Specification,CLDC 1.1(JSR 139)和MIDP 2.0(JSR 118),將它們?nèi)诤蠟橐粋整體,這是相應(yīng)的Java Community Process(JCP)Specification做不到的。我們增加了一個Java 2 Platform, Micro Edition (J2ME?)的基本介紹,提供了更多的背景材料,還包括了許多演示在真實世界中運用CLDC和MIDP的小程序。我們還為如何入門Java 2 Platform, Micro Edition提供了一些指導(dǎo)和說明。 本書討論的軟件的一個參考實現(xiàn)可以在Sun Community Source License(SCSL)許可下從Sun Microsystems獲得。
讀者對象 本書面向的是軟件開發(fā)者、內(nèi)容提供者和其他希望為資源受限而具有連接能力的設(shè)備開發(fā)Java?軟件的專業(yè)人士。本書還面向希望建造小型Java Powered?設(shè)備,并希望集成一個緊湊的Java應(yīng)用程序開發(fā)平臺到他們的產(chǎn)品中去的消費類設(shè)備制造商,
本書的目標(biāo) 本書是“來自本源”的關(guān)于Java Powered?無線設(shè)備的關(guān)鍵規(guī)范的權(quán)威陳述。因此,本書試圖: 提供對Java? 2 Platform, Micro Edition(J2ME?)的一個整體印象。 提供對J2ME標(biāo)準(zhǔn)化工作定義中的應(yīng)用程序開發(fā)平臺的一個基本介紹。 解釋J2ME Connected, Limited Device Configuration 1.1版(CLDC 1.1)技術(shù)方面的內(nèi)容。 解釋J2ME Mobile Information Device Profile2.0版(MIDP 2.0)技術(shù)方面的內(nèi)容。 提供演示CLDC和MIDP的示例程序。 幫助你開始編寫你自己的J2ME應(yīng)用程序。
本書是如何組織的 本書中的主題組織如下: 第1章,“簡介”,介紹Java 2 Micro Edition及CLDC和MIDP規(guī)范。 第2章,“J2ME概述”,對Java 2 Micro Edition做了整體上的觀察,說明了J2ME的關(guān)鍵概念和它的組成部分。 第3章,“目標(biāo)、要求和范疇”,定義CLDC和MIDP標(biāo)準(zhǔn)化工作的目標(biāo)、要求和范疇。 第4章,“Connected Limited Device Configuration”,介紹CLDC標(biāo)準(zhǔn)化成果,并就Java編程語言和虛擬機特性兩方面與Java 2 Platform, Standard Edition作了對比。 第5章,“CLDC類庫”,介紹CLDC Specification定義的Java類庫。 第6章,“Mobile Information Device Profile”,介紹MIDP標(biāo)準(zhǔn)化成果。 第7章,“MIDP應(yīng)用程序模型”,介紹MIDP Specification定義的MIDlet應(yīng)用程序模型。 第8章,“MIDP用戶界面類庫”,介紹MIDP Specification定義的用戶界面類庫。 第9章,“MIDP高層用戶界面—Screen”,介紹MIDP高層用戶界面中關(guān)于Screen類的部分。 第10章,“MIDP高層用戶界面—Form”,介紹MIDP高層用戶界面中關(guān)于Form類的部分。 第11章,“MIDP低層用戶界面類庫”,介紹MIDP Specification定義的低層用戶界面類庫。 第12章,“MIDP Game API”,介紹MIDP Specification定義的游戲API。 第13章,“MIDP Sound API”,介紹MIDP Specification定義的聲音API。 第14章,“MIDP持久庫”,介紹MIDP Specification定義的記錄管理系統(tǒng)(RMS)。 第15章,“MIDP網(wǎng)絡(luò)和串行通信”,介紹MIDP Specification定義的用于網(wǎng)絡(luò)和串行通信的類庫。 第16章,“安全網(wǎng)絡(luò)”,介紹MIDP Specification定義的用于安全的網(wǎng)絡(luò)通信的協(xié)議。 第17章,“事件驅(qū)動的應(yīng)用程序啟動”,介紹MIDP Specification定義的用于啟動MIDlet的協(xié)議。 第18章,“MIDlet套件的安全性”,介紹MIDP Specification定義的MIDlet套件的安全協(xié)議。 第19章,“MIDlet的部署”,介紹將MIDlet傳輸?shù)綗o線設(shè)備上的機制。 第20章,“附加MIDP API”,介紹Timer等附加MIDP應(yīng)用程序編程接口(API)。 第21章,“總結(jié)”,總結(jié)本書討論的內(nèi)容。 “參考文獻(xiàn)”,參考文獻(xiàn)的列表。 附錄A,“CLDC應(yīng)用程序編程接口”,以大全的形式列出了CLDC的應(yīng)用程序編程接口文檔。 附錄B,“MIDP應(yīng)用程序編程接口”,以大全的形式列出了MIDP的應(yīng)用程序編程接口文檔。
相關(guān)著作及有用的網(wǎng)頁 The Java_ Language Specification, Second Edition, by James Gosling, Bill Joy, Guy Steele and Gilad Bracha. Addison-Wesley, 2000, ISBN 0-201-31008-2 The Java_ Virtual Machine Specification, Second Edition, by Tim Lindholm and Frank Yellin. Addison-Wesley, 1999, ISBN 0-201-43294-3 Programming Wireless Devices with the Java 2 Platform, Micro Edition,First Edition, by Roger Riggs, Antero Taivalsaari, and Mark VandenBrink. Addison-Wesley, 2001, ISBN 0-201-74627-1 MIDP 2.0 Style Guide by Cynthia Bloch and Annette Wagner. Addison- Wesley, 2003, ISBN 0-321-19801-8 Connected, Limited Device Configuration Specification, version 1.0 http://jcp.org/en/jsr/detail?id=30 Connected, Limited Device Configuration Specification, version 1.1 http://jcp.org/en/jsr/detail?id=139 Mobile Information Device Profile Specification, version 1.0 http://jcp.org/en/jsr/detail?id=37 Mobile Information Device Profile Specification, version 2.0 http://jcp.org/en/jsr/detail?id=118 Java 2 Micro Edition Product Web Page http://java.sun.com/products/j2me/ Connected, Limited Device Configuration (CLDC) Product Web Page http://java.sun.com/products/cldc/ Mobile Information Device Profile (MIDP) Product Web Page http://java.sun.com/products/midp/ J2ME Wireless Toolkit Product Web Page http://java.sun.com/products/j2mewtoolkit/
本書的網(wǎng)頁 Addison-Wesley的網(wǎng)頁:www.awprofessional.com/titles/0321197984 Sun Microsystems的網(wǎng)頁:http://java.sun.com/docs/books/j2mewireless-2ndEd/index.html 序 Java? 2 Platform, Micro Edition(J2ME?)的發(fā)布使得Java技術(shù)形成一個完整的體系。今天我們所知的Java技術(shù),根源于一個研究主流計算機工業(yè)之外的數(shù)字技術(shù)的有潛在影響的項目。顯然Java技術(shù)獲得巨大發(fā)展的領(lǐng)域,是與人們?nèi)粘I蠲芮邢嚓P(guān)的領(lǐng)域。消費類電子產(chǎn)品、電話技術(shù)和嵌入式系統(tǒng)正日益成為人們?nèi)粘I畹慕M成部分。 作為擁有工程實踐背景的一群人,我們決定實際建造一個樣品來幫助我們對細(xì)節(jié)的理解。我們建造了一個小型的(在當(dāng)時算是。┦殖衷O(shè)備,和今天的PDA差不多。當(dāng)我們考慮它對新世界意味著什么的時候,我們在用來建造軟件的底層工具上遇到了一系列嚴(yán)重的問題: 多樣性(Heterogeneity)是生活中的現(xiàn)實。在市場上有許多種不同的CPU和系統(tǒng)架構(gòu)。在桌面計算機世界,這種CPU和系統(tǒng)架構(gòu)上的差異(“Wintel”和Macintosh),將市場以大多數(shù)人都知之甚少的底層細(xì)節(jié)劃分開來。在消費類/嵌入式設(shè)備的世界,系統(tǒng)架構(gòu)的種類要遠(yuǎn)多于桌面世界的兩種。這種四分五裂的混亂狀態(tài)引起了一系列嚴(yán)重的問題。當(dāng)這些設(shè)備連接到網(wǎng)絡(luò)上,試圖開始共享軟件的時候,多樣性更是一個要迫切面對的問題。 可靠性是一個極大的問題。非技術(shù)愛好者有充分理由覺得系統(tǒng)故障難以容忍。在許多方面,編程語言設(shè)計上的底層問題(內(nèi)存安全是其中之一)有很大的影響。 必須考慮安全性。對網(wǎng)絡(luò)來說,沒什么比一個出來找樂子的“初生牛犢”更具有威脅性了。(我知道,我也曾經(jīng)是其中之一。┌踩圆⒎强梢允潞笤冱c綴上去的東西——必須一開始就內(nèi)建進(jìn)去。 消費類設(shè)備生命期有很長的時間跨度。它們存在于一個不斷發(fā)展的世界中。這給系統(tǒng)建造、版本控制和模塊化帶來了許多問題。 這些系統(tǒng)正逐漸變成分布式的,需要在多臺機器上運行。整個系統(tǒng)需要跨越多臺機器,讓它們形成一個整體來運行——從處于網(wǎng)絡(luò)邊緣的手機,到大型的系統(tǒng)如連接起網(wǎng)絡(luò)的交換機。 這一系列的壓力引發(fā)了許多問題。我在項目中擔(dān)當(dāng)?shù)墓ぷ鳎褪菓?yīng)付這些壓力,結(jié)果Java編程語言誕生了。早期的實現(xiàn)是針對低端設(shè)備的。 我們在1995年向外界發(fā)布了這個語言,它現(xiàn)在已經(jīng)變得非常流行。流行的一個副作用是,Java的規(guī)模迅速膨脹,并且大量應(yīng)用于大型工業(yè)強度的應(yīng)用軟件。在這股狂熱中,應(yīng)用于處在網(wǎng)絡(luò)邊緣的小規(guī)模設(shè)備的本意已經(jīng)被遺忘了。 J2ME將Java技術(shù)帶回它的本源。由于大小和速度上的限制,為小型設(shè)備編寫程序與大規(guī)模的設(shè)備相比更具挑戰(zhàn)性,不過通常也會獲得更多的回報,因為小型設(shè)備與用戶之間有更多的交流。 通過這本書你將學(xué)習(xí)到J2ME是如何影響無線網(wǎng)絡(luò)的世界的。無線應(yīng)用程序是J2ME技術(shù)被軟件開發(fā)者廣泛接受的一個主要里程碑。最重要的機會是我們未曾預(yù)料到的,它們來自好奇的人們的實際體驗。 閱讀。欣賞。樂在其中。
James Gosling Mountain View, California, USA
出處:藍(lán)色理想
責(zé)任編輯:donger
|