第0部分 概论 1
第1章 J2ME概论 3
1.1 本章目的 3
1.2 参考资源与书目 3
1.3 Java平台的划分 4
1.4 各种Java平台的不同之处 6
1.5 J2ME技术架构 6
1.6 J2ME的最底层——Cojfiguration 8
1.7 各类型设备依其特性加以划分——Profile 9
1.8 厂商选择性实现——Optional Packages 12
1.9 建构区块——Building Block 15
1.10 J2ME工业标准——JTWI 16
1.11 结束语 18
2.2 参考资源与书目 19
2.1 本章目的 19
第2章 J2ME程序的撰写 19
2.3 Java平台的演进 20
2.4 为何采用J2ME 22
2.5 Java虚拟机器 23
2.6 各种平台Java程序的开发 24
2.7 预先审核 25
2.8 MIDP应用程序的部署 27
2.9 J2ME 应用程序执行环境 29
2.10 J2ME与企业软件(J2EE)的结合 30
2.11 JINI技术 31
2.12 STK技术 32
2.13 Java Ring 32
2.14 结束语 33
3.2 参考资源与书目 35
3.1 本章目的 35
第3章 PersonalJava概论 35
3.3 何谓Personal Java 36
3.4 如何开发Personal Java应用程序 38
3.5 实机上Personal Java应用程序的执行 38
3.6 结束语 39
第1部分 MIDP入门 41
第4章 MIDP程序设计基础——谈生命周期 43
4.1 本章目的 43
4.2 参考资源与书目 43
4.3 名词定义 44
4.4 何谓应用程序管理器 45
4.5 JAD与JAR 47
4.6 JAD与JAR的内容 48
4.7 VMIDP执行环境 50
4.8 功能与资源 51
4.9 权限确认与连接外部资源 52
4.10 描述文件与清单文件内含的属性与属性值 53
4.11 必需属性值和选择性属性值 55
4.12 MIDlet的基本程序结构 58
4.13 MIDlet该有的起始行为 59
4.14 MIDlet的生命周期 61
4.15 MIDlet管理自己的生命周期 66
4.16 结束语 67
第5章 MlDP程序设计进阶——CLDC与MIDP工具类 69
5.1 本章目的 69
5.2 参考资源与书目 69
5.3 系统参数的提取 71
5.4 字符串与基本类型的转换 72
5.5 随机数 74
12.13 键盘事件处理 77
5.7 日期处理 78
5.6 执行时间的测量 78
5.8 Thread的使用 89
5.9 Timer与TimerTask的使用 90
5.10 MIDlet生命周期补遗 99
5.11 Collection类的使用 101
5.12 最佳化 106
5.13 结束语 110
第2部分 开发工具 113
6.2 参考资源与书目 115
第6章 手动开发MIDP应用程序——使用Ant 115
6.1 本章目的 115
6.3 JDK的安装 116
6.4 J2ME Wireless Toolkit的安装 116
6.5 手机程序开发流程 117
6.6 撰写程序代码 119
6.7 项目的目录结构 120
6.8 商用手机程序建构流程 125
6.9 结束语 141
第7章 MIDP for Palm 143
7.1 本章目的 143
7.2 参考资源与书目 143
7.3 POSE的安装与使用 143
7.4 安装MIDP for Palm OS 146
7.5 MIDP forPalm的运作原理 147
7.6 Java HQ 148
7.7 如果打算将来与J2ME WirelessToolkit配合 150
7.8 将MIDP应用程序转换成PRC文件 151
7.9 辅助调试工具(Developer.prc) 153
7.10 MIDP for Palm OS的中文问题解决方案 155
7.11 进阶——多平台解决方案 156
7.12 结束语 158
第8章 高级开发工具 159
8.1 本章目的 159
8.2 参考资源与书目 159
8.3 J2ME Wireless Toolkit 160
8.4 J2ME Wireless Toolkit的内容 160
8.5 使用 J2ME Wireless Toolkit 162
8.6 开启旧项目 163
8.7 连接POSE 165
8.8 开发新项目 167
8.9 直接执行MIDlet 172
8.10 包装成JAR 173
8.11 让J2ME WirelessToolkit具有混淆的功能 174
8.12 其它功能 175
8.13 SonyEricsson J2ME SDK 176
8.14 Siemens MobilityToolkits(SMTK) 177
8.15 Siemens MobilityToolkits的安装 177
8.16 Nokia Developer's Suite以及各款手机专属SDK 180
8.17 Nokia Developer's Suite以及专属SDK的安装 186
8.18 结束语 187
第9章 集成开发工具 189
9.1 本章目的 189
9.2 参考资源与书目 189
9.3 Borland JBuilder 190
9.4 调整JBuilder 191
9.5 使用JBuilder 开发MIDP 应用程序 196
9.6 NetBeans/Sun ONE Studio 202
9.7 调整NetBeans/Sun ONE Studio 205
9.8 使用NetBeans/Sun ONE Studio开发MIDP应用程序 208
9.9 结束语 212
第3部分 用户界面 213
第10章 LCDUl——简介 215
10.1 本章目的 215
10.2 参考资源与书目 215
10.3 为何不采用AWT或SWING 215
10.4 软件与硬件的交互方式 216
10.5 LCDUI包的设计 218
10.6 LCDUI包的体系 219
10.7 事件处理 220
10.8 Command类 223
10.9 Command的类型 225
10.10 通用事件处理——CommandListener 227
10.11 关于Ticker类 229
10.12 关于Displayable类 231
10.13 结束语 233
第11章 LCDUI入门——高级API 235
11.1 本章目的 235
11.2 参考资源与书目 235
11.3 关于 Screen类及其体系 235
11.4 List 236
11.5 Choice接口带给List的功能 243
11.6 TextBox 245
11.7 AlertType 250
11.8 Alert 252
11.9 结束语 257
第12章 LCDUI入门——低级API 259
12.1 本章目的 259
12.2 参考资源与书目 259
12.4 重绘事件 260
12.3 低级API与低级事件 260
12.5 坐标系 262
12.6 像素(Pixel) 262
12.7 Graphics入门 263
12.8 直线与笔触 265
12.9 矩形与圆角矩形 267
12.10 弧形 271
12.11 三角形 273
12.12 Canvas与屏幕事件处理 274
12.14 键盘响应 280
12.15 触控屏幕的事件处理 284
12.16 低级事件和高级事件同时出现时 285
12.17 结束语 287
第13章 LCDUI进阶——高级API 289
13.1 本章目的 289
13.2 参考资源与书目 289
13.3 关于Form与Item 290
13.4 StringItem 292
13.5 Item与Command ItemCommandListener的处理 294
13.6 ImageItem 298
13.7 Spacer 302
13.8 ChoiceGroup 303
13.9 Item内部状态改变时——ItemStateListener 305
13.10 TextField 308
13.11 Gauge 309
13.12 DateField 313
13.13 Alert与Gauge 316
13.14 Alert与Image的关系 321
13.15 结束语 323
第14章 LCDUI进阶——低级API 325
14.1 本章目的 325
14.2 参考资源与书目 325
14.3 关于重绘事件 326
14.4 游戏程序的基本结构 327
14.5 线程的结束 331
14.6 时间的控制 333
14.7 关于Display类 336
14.8 关于Image类 340
14.9 Graphics进阶 341
14.10 绘制图片、文字以及锚点的作用 345
14.11 关于Font类 347
14.12 结束语 349
第15章 流程控制的设计模式 351
15.1 本章目的 351
15.2 参考资源与书目 351
15.3 系统分析与设计 352
15.4 流程控制器 353
15.5 画面的设计 354
15.6 完成流程控制器 359
15.7 MIDlet主程序的设计 361
15.8 结束语 362
第4部分 游戏设计 363
第16章 Game API入门 365
16.1 本章目的 365
16.2 参考资源与书目 365
16.3 Game API的结构体系 366
16.4 使用GameCanvas 367
16.5 抓取键盘状态 371
16.6 LayerManager与Layer的关系 374
16.7 Sprite的结构 377
16.8 使用Sprite 378
16.9 LayerManager与Layer的交互 387
16.10 结束语 389
17.1 本章目的 391
17.2 参考资源与书目 391
第17章 Game API进阶 391
17.3 TiledLayer的结构 392
17.4 使用TiledLayer 393
17.5 封装Sprite 400
17.6 Sprite的绘制 405
17.7 Sprite的旋转 408
17.8 碰撞侦测 414
17.9 结束语 420
第5部分 数据库程序设计 421
第18章 MIDP数据库程序设计入门 423
18.1 本章目的 423
18.2 参考资源与书目 424
18.3 记录管理系统概观 424
18.4 记录仓储的开启、关闭与删除 426
18.5 记录仓储的相关信息 430
18.6 数据的增加、修改以及删除 434
18.7 复合数据类型的处理方式 439
18.8 结束语 443
第19章 MIDP数据库程序设计进阶 445
19.1 本章目的 445
19.2 监控记录仓储的变化 445
19.3 走访记录仓储 448
19.4 RecordEnumeration的使用方式 451
19.5 结束语 454
第6部分 与外界联系 455
第20章 Generic Connection Framework 457
20.1 本章目的 457
20.2 参考资源与书目 458
20.3 什么是Generic Connection Framework 458
20.4 GCF的结构体系 459
20.5 GCF的继承体系 460
20.6 GCF与java.io包的配合 462
20.7 连接接口 463
20.8 GCF的使用——Socket协议 465
20.9 GCF的使用——HTTP协议 471
20.10 HTTP运作原理 474
20.11 结束语 475
第21章 与企业系统衔接 477
21.1 本章目的 477
21.2 参考资源与书目 478
21.3 MIDP与网络通讯 479
21.4 数据库 480
21.5 数据库存取接口 481
21.6 网络服务位置与协议 481
21.7 服务器端的设计 483
21.8 客户端的设计 488
21.9 结束语 496
附录A 参考资源 497
附录B 关于Ant 507
附录C 混淆器的安装与使用——RetroGuard/ProGuard 515