第1篇 基础入门 1
第1章 初识Java ME 1
1.1 Write one,Run anywhere 1
1.2 Java ME平台体系结构 2
1.3 MIDlet的生命周期 3
1.4 MIDlet套件 5
1.5 移动开发中的常用规范 7
第2章 开发环境配置 9
2.1 JDK的安装和配置 9
2.2 Eclipse的安装和配置 14
2.3 EclipseME的安装 16
2.4 SDK的安装 20
2.5 创建Java ME工程 24
2.6 运行和打包 25
第3章 用户界面 29
3.1 LCDUI的架构 29
3.2 Display类 30
实例3-1 测试设备的属性 32
3.3 Displayable类 35
3.4 Command类 36
实例3-2 菜单命令的类型对菜单命令的位置和顺序的影响 37
实例3-3 Command第二个构造方法的使用及菜单命令监听 40
第4章 高级UI组件开发 42
4.1 列表类List 42
4.1.1 List的3种类型 42
实例4-1 List类提供的各种对选项的维护操作 44
4.1.2 List中的选中事件 47
实例4-2 在隐式类型列表中处理选中事件 48
实例4-3 在多选类型列表中处理选中事件 49
4.2 文本输入类TextBox 52
实例4-4 TextBox的文本编辑功能 54
4.3 表单类Fom 57
4.3.1 Form中的Item布局 58
实例4-5 Form中的Item布局规则 59
4.3.2 ChoiceGroup 63
实例4-6 3种类型ChoiceGroup的用法 64
4.3.3 DateField 66
实例4-7 DATE_TIME类型的DateField 67
4.3.4 Gauge 69
实例4-8 Gauge的使用方法 70
4.3.5 CustomItem 74
实例4-9 CustomItem的使用方法 75
4.3.6 其他的Item 79
4.3.7 Item的菜单命令 80
实例4-10 Item中菜单命令的使用方法 80
4.4 提示类Alert 82
实例4-11 常见Alert的使用方法 83
4.5 文字滚动类Ticker 87
实例4-12 Ticker的使用方法 88
第5章 低级UI组件开发 90
5.1 Canvas概述 90
5.2 绘图类Graphics 91
5.2.1 绘制文本 92
实例5-1 Canvas中绘制文本的方法 93
5.2.2 绘制简单图形 95
实例5-2 Canvas中绘制各种图形的方法和绘制效果 98
5.2.3 绘制图片 101
5.3 绘图的相关类 102
5.3.1 图片类Image 102
5.3.2 字体类Font 104
5.4 按键响应 105
实例5-3 Canvas中对按键事件的处理 107
第2篇 高手进阶 110
第6章 记录管理系统(RMS) 110
6.1 RMS的基本概念 110
6.2 RecordStore的打开、关闭和删除 111
6.3 记录的管理 113
6.3.1 添加和删除记录 114
6.3.2 获取和修改记录 115
6.4 记录的存储 116
6.4.1 系统数据类型的数据存储 117
实例6-1 图片的存储和读取 118
6.4.2 自定义数据类型的数据存储 124
实例6-2 自定义数据类型的存储和读取 126
6.5 遍历记录 134
6.6 记录管理的高级应用 136
6.6.1 记录过滤 136
实例6-3 过滤器的实现方法 136
6.6.2 记录排序 140
实例6-4 排序策略的实现方法 140
6.6.3 记录监听 143
实例6-5 记录监听的实现方法 144
第7章 异常处理 152
7.1 MIDP定义的异常类 152
7.2 Exception类 154
7.3 异常处理 155
7.3.1 捕获异常 156
7.3.2 抛出异常 157
7.3.3 finally关键字 160
7.4 异常处理的一些基本原则 162
第8章 多线程应用 163
8.1 多线程概述 163
8.2 多线程的实现 164
8.2.1 通过继承Thread类 164
8.2.2 通过实现Runnalbe接口 165
8.2.3 使用任务组合 166
实例8-1 使用任务组合实现多线程 167
8.3 线程状态控制 171
8.4 同步和死锁 173
实例8-2 使用synchronized关键字来实现线程同步 174
第9章 移动网络应用 179
9.1 通用连接框架概述 179
9.2 搭建服务器 182
9.3 HTTP连接 186
实例9-1 使用GET和POST方法进行HTTP通信 188
实例9-2 处理客户端请求的Servlet 193
9.4 Socket连接 196
实例9-3 Socket服务器端程序 197
实例9-4 Socket客户端程序 202
9.5 Datagram连接 204
实例9-5 Datagram客户端程序 205
实例9-6 Datagram服务器端程序 209
第10章 文件管理 211
10.1 文件/文件夹的访问 211
实例10-1 访问手机上的文件系统 213
10.2 文件/文件夹的创建和删除 219
实例10-2 创建和删除一个文件或者文件夹 220
10.3 文件的读写 225
实例10-3 文件读写的实现 225
10.4 文件的属性 229
实例10-4 获取文件的属性 230
第11章 个人信息管理 234
11.1 PIM包概述 234
11.1.1 访问PIMList 235
11.1.2 访问支持的字段 237
实例11-1 获取联系人信息列表中支持的字段信息 238
11.2 管理联系人 242
11.2.1 访问联系人列表 242
实例11-2 访问手机和SIM卡上的联系人列表 243
11.2.2 添加联系人 248
实例11-3 向手机上的联系人列表添加一个联系人 249
11.2.3 删除联系人 259
11.2.4 修改联系人 261
11.3 管理日程安排 265
实例11-4 管理日程安排 265
11.4 管理待办事项 268
实例11-5 管理待办事项 268
第12章 无线消息服务 271
12.1 无线消息API 272
12.2 发送和接收文本消息 273
12.2.1 发送文本消息 274
实例12-1 发送文本消息 276
12.2.2 接收文本消息 280
实例12-2 接收文本消息 280
12.3 发送和接收二进制消息 283
实例12-3 发送一个二进制消息 283
实例12-4 接收一个二进制消息 285
12.4 发送和接收多媒体消息 285
12.4.1 发送多媒体消息 286
实例12-5 发送多媒体消息 288
12.4.2 接收多媒体消息 292
实例12-6 接收多媒体消息 293
12.5 小区广播服务 296
实例12-7 接收小区广播消息 297
第13章 Push技术 301
13.1 Push机制 301
13.2 静态注册方式 303
实例13-1 监听并接收来自服务器的Push信息 304
13.3 动态注册方式 307
实例13-2 基于Alarm时间的动态注册 307
13.4 Push开发中应注意的一些问题 309
第14章 XML应用 311
14.1 XML的概念 311
14.2 常用的XML解析方法 314
14.3 KXML2解析器 315
实例14-1 使用KXML2解析器来解析一个XML文档 316
14.4 JSR172提供的SAX解析器 321
实例14-2 使用SAX解析器来解析一个XML文档 322
第15章 多媒体开发 328
15.1 MMAPI的基本框架 328
15.1.1 管理器 329
15.1.2 播放器 331
15.1.3 数据源 332
15.1.4 控制器 333
15.2 音频播放 333
实例15-1 播放一个音调 334
实例15-2 一个简单的音乐播放器 336
15.3 视频播放 341
实例15-3 播放一段视频 341
15.4 相机控制 344
第16章 游戏开发 347
16.1 游戏设计基本概念 347
16.2 GameCanvas 350
16.2.1 离屏图像缓冲 350
16.2.2 按键状态查询 351
实例16-1 GameCanvas中离屏图像缓冲的用法以及对按键状态的监听方法 352
16.3 Layer 354
16.3.1 Sprite 355
实例16-2 Sprite中动画效果的实现 358
16.3.2 TiledLayer 361
实例16-3 实现一个动态的背景效果 363
16.3.3 碰撞检测 366
16.4 LayerManager 367
实例16-4 LayerManager的用法 368
第3篇 实践指南 373
第17章 设计模式 373
17.1 MVC概述 373
17.2 MVC的实现策略 374
17.3 一个基于MVC模式的笔记管理程序实现 376
实例 笔记管理程序 376
17.4 其他一些常见的设计方法 382
17.4.1 合理使用静态类 382
17.4.2 单态方法 383
17.4.3 视图栈 384
第18章 单元测试 386
18.1 单元测试概述 386
18.2 集成J2MEUnit 387
18.3 J2MEUnit测试代码的框架 389
实例 Java ME的单元测试 389
18.3.1 TestCase 389
18.3.2 TestSuite 392
18.3.3 TestRunner 393
第19章 一个商务应用实例 395
实例 制作“在线听歌”商务应用 395
19.1 需求分析 395
19.2 程序整体设计 396
19.3 功能的实现策略 397
19.3.1 音乐列表的实现 397
19.3.2 音乐播放的实现 402
19.3.3 网络通信的实现 404
19.3.4 XML解析的实现 406
19.3.5 文件管理的实现 408
19.3.6 各个功能模块的控制 410
19.4 功能扩展 414
附录A HTTP请求的响应码 416
附录B HTTP的头部信息 418
B.1 HTTP请求头参数 418
B.2 HTTP响应头参数 418
附录C PIM中的标准字段 419
C.1 Contact标准字段列表 419
C.2 Event标准字段列表 420
C.3 ToDo标准字段列表 420