譯序 iii
圖索引 xxvii
序 xix
前言 xxi
致謝 xxvii
第1章 簡介 1
1.1 無線Internet革命 1
1.2 為什么要在無線設備上應用Java技術 2
1.3 簡短的歷史回顧 3
1.4 J2ME?標準化的成果 4
第2章 J2ME概述 7
2.1 Java 2平臺 7
2.2 Java 2 Platform, Micro Edition (J2ME) 9
2.3 J2ME架構的關鍵概念 10
2.3.1 Profiles 12
2.3.2 Configurations 14
2.3.3 可選包(Optional Packages) 17
2.4 J2ME平臺的演進 17
2.4.1 J2ME核心標準化的成果 18
2.4.2 無線通訊領域的可選包 19
第3章 目標、要求和范疇 23
3.1 主要目標 23
3.1.1 Java應用程序和內容的動態(tài)部署 24
3.1.2 第三方應用程序開發(fā) 24
3.1.3 獨立于任何網絡技術標準 25
3.1.4 與其他無線應用程序標準的兼容性 26
3.2 目標設備 26
3.3 泛論消費類設備和嵌入式系統 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標準涉及的范疇 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架構、應用程序模型和安全性 41
4.2.1 架構概述 41
4.2.2 Java應用程序的概念 42
4.2.3 應用程序安全性 43
4.2.4 應用程序管理 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 背景和目標 57
5.2 繼承自J2SE的類 58
5.2.1 系統類 58
5.2.2 數據類型類 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 對系統屬性的支持 63
5.3 CLDC特有的類 64
5.3.1 背景和動機 64
5.3.2 通用連接(Generic Connection)框架 65
5.3.3 CLDC不包含網絡協議的具體實現 67
5.3.4 通用連接(Generic Connection)接口小結 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ī)范涵蓋的領域 76
第7章 MIDP應用程序模型 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的結構 90
8.2.1 可顯示模型(Displayable Model) 91
8.2.2 底層用戶界面 93
8.2.3 高層用戶界面 93
8.3 Display類 95
8.3.1 當前可顯示(Current Displayable) 96
8.3.2 屏幕背光和設備振動器 97
8.4 Displayables 97
8.4.1 Ticker 99
8.5 命令(Command) 100
8.5.1 映射到設備用戶界面的命令 100
8.5.2 Command特性 101
8.5.3 命令類型 102
8.5.4 命令監(jiān)聽者(Command Listeners) 105
8.6 高級話題 106
8.6.1 系統屏幕 106
8.6.2 適應特定設備用戶界面樣式 106
8.6.3 設備提供的操作 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 標簽布局 141
10.9.3 當前對齊 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 坐標系統 153
11.3.2 修剪(Clipping) 154
11.3.3 坐標變換 154
11.3.4 色彩模型 155
11.3.5 線條風格 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數據 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數據 168
11.5.9 像素區(qū)域的復制 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 設計目標 198
13.1.3 需求 199
13.1.4 MIDP Sound的架構 200
13.2 播放器的創(chuàng)建和管理 202
13.2.1 管理媒體框架 202
13.2.2 為媒體數據創(chuàng)建播放器 203
13.2.3 音調生成 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 記錄管理系統 221
14.2 操作存儲記錄和記錄 223
14.2.1 操作一個存儲記錄 223
14.2.2 共享的存儲記錄 225
14.2.3 操作存儲記錄中的記錄 226
14.2.4 記錄數據與字節(jié)數據的相互轉換 226
14.2.5 過濾、比較、監(jiān)聽和枚舉記錄 227
14.3 例子代碼(RMSMIDlet.java) 231
14.4 MIDP 2.0新特性 241
第15章 MIDP網絡和串行通信 243
15.1 無線數據網絡的特性 243
15.2 關于網絡接口的考慮 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請求頭標 248
15.3.6 使用HTTP連接 250
15.3.7 HTTP響應頭標 252
15.3.8 關閉HTTP連接 253
15.4 一個例子(NetClientMIDlet.java) 253
15.5 SocketConnection 264
15.5.1 取得本地地址和端口號 264
15.5.2 取得遠程主機的地址和端口號 265
15.5.3 讀取和設置套接字選項 265
15.5.4 關閉流 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 數據報 270
15.7.3 關閉連接 270
15.7.4 UDPDatagramConnection的安全性 271
15.7.5 例子 271
15.8 CommConnection 272
15.8.1 串行口速率的獲取和設置 273
15.8.2 CommConnection的安全性 274
15.8.3 命名端口的好習慣 274
15.8.4 例子 274
15.9 MIDP 2.0的新特性 276
第16章 安全網絡 277
16.1 檢查一個連接的安全屬性 278
16.1.1 服務器證書 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里新加進的特性 287
第17章 事件驅動的應用程序啟動 289
17.1 基于警告的MIDlet啟動 289
17.2 基于網絡的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 假設 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 批準對可信任MIDlet套件的許可 312
18.4 對安全不敏感的API 313
18.5 使用X.509 PKI為MIDlet套件建立信任 313
18.5.1 簽署一個MIDlet套件 314
18.5.2 認證一個MIDlet套件 317
18.5.3 認證和授權結果緩存 320
18.5.4 可信任的MIDlet套件的X.509注冊Profile 320
18.6 對GSM/UMTS設備的推薦安全策略 321
18.7 MIDP 2.0的新特性 321
第19章 MIDlet的部署 323
19.1 MIDlet套件 323
19.1.1 打包MIDlet套件 324
19.1.2 應用程序描述文件 324
19.1.3 MIDlet 屬性 325
19.1.4 MIDlet套件執(zhí)行環(huán)境 330
19.2 MIDP系統軟件 332
19.3 用戶發(fā)起的無線程序供應 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 使用重復定時器 341
20.1.3 示例代碼(TimerMIDlet.java) 342
20.2 系統屬性 346
20.3 應用程序資源文件 347
20.4 退出MIDlet 347
第21章 總結 349
參考文獻 353
附錄A CLDC應用程序編程接口 355
API大全凡例 356
CLDC API大全 359
附錄B MIDP應用程序編程接口 391
MIDP API大全 393
索引 425