第1章 J2ME概述 1
1.1 感受A6288+--J2ME体验 2
1.1.1 摩托罗拉A6288+手机介绍 2
1.1.2 摩托罗拉A6288+J2ME应用程序实例 2
1.1.3 应用实例剖析 4
1.2 有限设备的分布式计算环境 6
1.2.1 无线互联概述 6
1.2.2 无线计算环境 7
1.2.3 所有的都连接起来了 10
1.3 J2ME体系结构 11
1.3.1 J2ME设备 11
1.3.2 J2ME的三层体系结构 12
1.3.3 J2ME简表 13
1.3.4 J2ME配置 14
1.3.5 Java技术的版本 15
1.3.6 J2ME规范 16
2.1.3 连接特性 17
2.1.1 CDC标准化 17
2.1.2 存储空间占用 17
第2章 连接设备配置、虚拟机及其简表 17
2.1 连接设备CDC概述 17
2.1.4 CDC类库 18
2.2 CVM虚拟机概述 19
2.2.1 概述 19
2.2.2 CVM特征 19
2.3 基础简表概述 20
2.3.1 基础简表类库概述 20
2.3.2 与J2SE技术的关系 21
2.4 CVM和CDC/Foundation的移植开发 21
2.4.2 系统需求 22
2.4.1 目标环境 22
2.4.3 构造Linux版本 23
2.4.4 构造Tomado/VxWorks版本 23
2.4.5 编译器告警 25
2.4.6 构造选项 25
2.4.7 编译CDC或Foundation的应用程序 26
2.5 启动CVM 27
2.5.1 调用CVM 27
2.5.2 时间和日期操作 28
2.5.3 运行时选项 28
2.6.1 CDC应用开发概述 30
2.6 CDC/Foundation应用开发 30
2.6.2 CDC/Foundation应用程序实例 31
2.6.3 编译和运行应用程序 38
第3章 有限连接设备配置、虚拟机及简表 40
3.1 有限连接设备配置(CLDC) 40
3.1.1 CLDC概述 40
3.1.2 CLDC的特征 41
3.1.3 CLDC类库 43
3.2.1 KVM介绍 45
3.2 K虚拟机(KVM) 45
3.2.2 KVM实现 46
3.2.3 编译器需求 46
3.2.4 移植KVM代码 46
3.2.5 编译控制 47
3.2.6 虚拟机启动和JAM 47
3.2.7 类加载 47
3.2.8 64位支持 47
3.2.9 本地代码 47
3.2.12 Java代码固化(ROMizer) 48
3.2.13 未来的方向 48
3.2.11 类文件验证 48
3.2.10 事件处理 48
3.3 MIDP简表 49
3.3.1 MIDP设备需求 49
3.3.2 MIDP范围 50
3.3.3 MIDP类库 51
3.4 构造MIDP实现 51
3.4.1 软硬件需求--Microsoft Windows2000 52
3.4.2 软硬件需求--Solaris 53
3.4.3 软硬件需求--Linux 54
3.4.4 解压缩发布文件 55
3.4.5 构造MIDP参考实现 56
3.5 运行MIDP 59
3.5.1 MIDP配置文件 59
3.5.2 命令行参数 61
3.5.3 Tracing选项 62
3.5.4 使用HTTPS协议 62
3.5.5 使用midp的例子 62
3.5.6 MIDP实现中的例程 63
3.5.7 调试 64
第4章 MIDP应用程序开发基础 65
4.1 应用程序体系结构 65
4.2.2 JDK的安装和配置 67
4.2.1 开发需求 67
4.2 MIDP开发前的准备工作 67
4.2.3 有限连接设备配置(CLDC) 69
4.2.4 移动信息设备简表(MIDP) 70
4.3 第一个MIDlet程序 71
4.4 MIDP应用程序模型 75
4.4.1 概述 75
4.4.2 MIDP MIDlet套件 75
4.4.3 MIDP执行环境 76
4.4.4 MILlet套件打包 77
4.4.5 应用程序描述文件 79
4.4.6 应用程序生命周期 80
4.5 发布第一个MIDlet 81
4.5.1 应用程序打包 81
4.5.2 生成应用程序描述文件 82
4.5.3 连接网络 83
4.5.4 使用资源 90
4.5.5 使用多个MIDlet 91
4.6 应用管理软件 93
4.6.1 MIDlet的分类 93
4.6.2 安装、升级和删除 95
第5章 J2ME无线开发工具包 96
5.1 J2MEWTK的安装配置 96
5.1.1 简介 96
5.1.2 安装 96
5.1.3 配置PalmOS模拟器 98
5.2 J2MEWTK模拟器 99
5.2.1 J2MEWTK的样本设备 99
5.2.2 运行应用程序 103
5.2.3 模拟器参数和设施 105
5.3 KToolBar操作 108
5.3.1 KToolBar项目 109
5.3.2 编辑MIDlet套件属性 111
5.3.3 编译和预验证 113
5.3.4 运行应用程序 113
5.3.5 调试应用程序 113
5.3.6 应用程序打包 114
5.3.7 使用多个MIDlet 114
5.3.8 使用外部类库 115
5.4.3 预验证 116
5.4.1 所需命令 116
5.4.2 编译 116
5.3.9 KToolBar中设置模拟器参数及其设施 116
5.4 使用命令行方式 116
5.4.4 打包 117
5.4.5 运行 117
第6章 MIDlet生存周期 120
6.1 MIDP应用程序概述 120
6.1.1 MIDlet概念 120
6.1.2 midlet包描述 121
6.1.3 MIDlet生存周期 121
6.2 编写MIDlet应用程序 125
6.2.2 构造函数 126
6.2.1 扩展MIDlet类 126
6.2.3 实现与应用管理软件之间的接口 127
6.2.4 实现特定任务 131
6.2.5 从MIDlet中访问JAR/JAD属性 132
6.3 系统功能 133
6.3.1 系统属性 133
6.3.2 存储容量 134
6.3.3 exit()函数 134
6.3.4 应用程序资源文件 134
7.1.1 MIDP用户界面需求 135
7.1 MIDP用户界面设计概述 135
第7章 高级用户界面 135
7.1.2 MIDP用户界面类库 136
7.2 用户界面的管理 139
7.2.1 Display类 139
7.2.2 Displayable类 140
7.2.3 当前Displayable对象 142
7.2.4 获取设备信息 146
7.2.5 序列化 148
7.3 高级事件类 148
7.3.1 UI事件概述 148
7.3.2 Command类 149
7.3.3 Command对象与用户界面的映射 151
7.3.4 CommandListener接口 154
7.3.5 多屏幕实例 155
7.4 高级屏幕类 160
7.4.1 Screen类 160
7.4.2 Ticker类 161
7.5 Alert和AlertType类 164
7.5.1 Alert类 164
7.5.2 AlertType类 169
7.6 Choice接口和List类 171
7.6.1 Choice接口 172
7.6.2 List类 174
7.7 TextBox屏幕 181
7.8 屏幕表单 184
7.8.1 Form类 184
7.8.2 Form事件 189
7.8.3 Item类 192
7.8.4 StringItem类 193
7.8.5 TextField类 195
7.8.6 DateField 200
7.8.7 Gauge类 207
7.8.8 ChoiceGroup类 211
7.8.9 ImageItem类 215
第8章 低级用户界面 223
8.1 低级用户界面概述 223
8.1.1 低级用户界面 223
8.1.2 低级用户界面开发简述 224
8.2 画布屏幕 226
8.2.1 Canvas类 226
8.2.2 repaint()方法 234
8.2.3 serviceRepaints()方法 237
8.3.1 按键事件 238
8.3 低级事件 238
8.3.2 游戏动作 242
8.3.3 指针事件 245
8.3.4 Command命令 245
8.3.5 Canvas事件总结 247
8.4 Graphics类 248
8.4.1 概述 248
8.4.2 颜色模型 251
8.4.3 坐标系统 253
8.4.4 Clip区域 256
8.4.5 坐标系统原点转换 259
8.4.6 绘制几何图形 263
第9章 文本和图像 266
9.1 字体与文本的绘制 266
9.1.1 使用文本 266
9.1.2 Font类 267
9.1.3 字体属性 269
9.1.4 文本的基线和锚点 270
9.2 Image类及不变图像 275
9.2.1 Image类 275
9.2.2 不变图像 276
9.2.3 不变图像的绘制 277
9.2.4 PNG图像格式 279
9.3 可变图像及其应用 280
9.3.1 可变图像 280
9.3.2 从可变图像生成不变图像 282
9.3.3 从不变图像生成可变图像 285
9.3.4 双缓冲技术 286
10.1 记录存储系统概述 288
10.1.1 持久存储 288
第10章 记录存储系统 288
10.1.2 记录存储的概念 289
10.1.3 记录存储API 290
10.2 记录存储的基本操作 291
10.2.1 RecordStore类 291
10.2.2 记录存储的管理和操作 292
10.2.3 记录存储中记录的操作 297
10.3 记录存储的事件 307
10.3.1 RecordListener接口类 307
10.4 记录存储的查询和排序 310
10.4.1 枚举器、过滤器和比较器 310
10.3.2 RecordListener事件的应用 310
10.4.2 RecordEnumeration接口类 311
10.4.3 RecordFilter接口 317
10.4.4 RecordComparator接口 319
10.5 Java IO系统 324
10.5.1 java.io包 324
10.5.2 输入流类型 325
10.5.3 输出流类型 328
10.5.4 小型数据库系统 331
11.1.1 多线程概述 334
11.1 Runnable接口和Thread类 334
第11章 多线程和任务调度 334
11.1.2 多线程在MIDP中的应用 335
11.1.3 callSerially方法 338
11.2 计时器和任务调度 338
11.2.1 TimerTask类 338
11.2.2 Timer类 339
11.2.3 一个记事簿的例子 341
第12章 MIDP网络应用开发 344
12.1 通用连接框架 344
12.1.1 概述 344
12.1.2 CLDC通用连接框架 344
12.1.3 MIDP网络编程API 346
12.2.1 Connection接口 347
12.2 MIDP通用连接类型 347
12.2.2 Connector类 348
12.2.3 InputConnection接口 349
12.2.4 OutputConnection接口 350
12.2.5 StreamConnection接口 351
12.2.6 ContentConnection接口 352
12.2.7 StreamConnectionNotifier接口 353
12.2.8 数据报连接 354
12.3.1 HTTP协议的重要性 356
12.3 HTTP协议基础知识 356
12.3.2 HTTP概述 357
12.3.3 HTTP消息通用结构 361
12.3.4 HTTP请求消息 362
12.3.5 响应消息 364
12.3.6 实体 366
12.3.7 设置试验环境 367
12.4 MIDP的HTTP连接 368
12.4.1 使用CLDC通用连接框架 368
12.4.2 HttpConnection接口 370
12.4.3 与ASP建立连接 379
12.4.4 与Servlet的交互 381
12.4.5 网络图像下载应用(综合实例) 387
第13章 使用Palm OS模拟器 395
13.1 POSE功能概述 395
13.1.1 POSE的特征 395
13.1.2 POSE的安装 396
13.2 POSE的配置和运行 398
13.2.1 在POSE中使用ROM映像 398
13.2.2 启动POSE 399
13.2.3 使用模拟器会话 400
13.2.4 更改运行时环境 402
13.3 测试应用程序 406
13.3.1 调试选项 406
13.3.2 日志选项 407
13.3.3 使用Gremlin自动测试 408
13.3.4 设置断点 411
13.4 安装和使用MIDP for Palm OS 412
13.4.1 MIDP for Palm OS简介 412
13.4.2 安装MIDP for Palm OS 412
13.4.3 使用MIDP for Palm OS 414
13.4.4 设置应用程序参数 416
13.4.5 使用PRC转换工具 419
13.5 MIDP for Palm OS的开发 420
13.5.1 抽象命令的使用 421
13.5.2 MIDP的UI组件映射 421
13.5.3 颜色的支持 423
13.5.4 网络协议 424
13.5.5 更灵活的转换工具 425
13.5.6 MIDlet测试工具 426
14.1 MobileSet的安装配置 430
14.1.1 MobileSet2的特征 430
第14章 使用Jbuilder MobileSet 430
14.1.2 MobileSet2的安装 431
14.1.3 安装J2ME JDK 432
14.1.4 配置J2ME JDK 433
14.2 MIDP项目 435
14.2.1 生成MIDP项目 435
14.2.2 添加新的MIDlet到项目中 437
14.2.3 设置项目属性 439
14.3 编译MIDP应用程序 440
14.3.1 编译MIDP应用程序 440
14.3.3 调试MIDlet 441
14.3.2 运行MIDlet 441
14.4 MIDP用户界面设计 442
14.4.1 概述 442
14.4.2 使用MIDP设计器 443
14.4.3 生成MIDP事件 446
14.4.4 使用图像 446
14.5 应用程序打包 447
14.5.1 使用命令行打包 448
14.5.2 使用JBuilder打包器打包 448
14.6.1 空中配置概念 453
14.6.2 在MobileSet中进行空中配置 453
14.6 应用程序空中配置 453
14.5.3 使用诺基亚J2ME开发套件打包 453
第15章 J2ME的应用及发展 458
15.1 OEM的J2ME工具及扩展 458
15.1.1 摩托罗拉 458
15.1.2 诺基亚 460
15.1.3 西门子 461
15.2 J2ME的现状及发展 463
15.2.1 与BREW的竞争 463
15.2.2 下一代MIDP 466
附录A 典型的J2ME设备 467