第1篇 概念与开发工具详解 2
第1章 Java ME概念解析 2
1.1 发展的Java ME 2
1.1.1 移动信息设备简表 2
1.1.2 无线产业Java技术 4
1.1.3 针对CLDC的移动服务构架 5
1.2 Java ME的体系结构与概念 5
1.2.1 Java ME的体系结构 6
1.2.2 配置 9
1.2.3 简表 14
1.2.4 可选包 17
1.3.1 为什么规范与实现存在区别 18
1.3 规范与实现的对比 18
1.3.2 API文档与手机规范 19
1.3.3 模拟器与移动电话 21
1.4 其他移动开发技术 22
1.4.1 Symbian C++ 22
1.4.2 Windows Mobile 23
1.4.3 BREW 24
1.4.4 WAP 25
1.5 小结 26
第2章 Java ME开发工具与开发流程 27
2.1 SUN J2ME Wireless Toolkit 2.2 27
2.1.1 WTK 2.2简介 27
2.1.2 使用KToolbar开发MIDlet套件 29
2.1.3 使用命令行方式开发MIDlet 36
2.1.4 配置WTK 2.2的模拟器 38
2.2 Netbeans IDE 5.0与Mobility Pack 5.0 40
2.2.1 安装开发环境 40
2.2.2 使用Mobility Pack 5.0开发MIDlet套件 41
2.2.3 使用Netbeans IDE 5.0调试MIDlet 48
2.2.4 Netbeans IDE 5.0集成第三方SDK 51
2.2.5 设备分裂问题的解决方案 52
2.3 其他开发工具 53
2.3.1 Eclipse与EclipseME 53
2.3.2 JBuilder 54
2.3.3 Ant与Antenna 55
2.4.1 Nokia Developer Suite 3.0 58
2.4 厂商SDK简介 58
2.4.2 SonyEricsson J2ME SDK 2.2.3 59
2.4.3 Motorola J2ME SDK 5.4.2 60
2.5 小结 60
第2篇 移动Java平台——JTWI 1.0 62
第3章 MIDP 2.0编程指南 62
3.1 MIDP 2.0的新特性 62
3.1.1 调用本地应用程序 62
3.1.2 增强型高级用户界面 67
3.1.3 RGB图片与Alpha通道 67
3.1.4 游戏开发包 68
3.1.5 Push注册机制 68
3.1.6 Media音频子系统 68
3.1.7 OTA预配置规范 68
3.2.1 MIDlet的运行环境 74
3.2 MIDlet应用程序模型 74
3.2.2 MIDlet套件 76
3.2.3 MIDlet生命周期 78
3.2.4 MIDlet中断问题的解决方案 81
3.3 图形用户界面编程 88
3.3.1 体系结构 88
3.3.2 高级用户界面类 91
3.3.3 事件处理机制 96
3.3.4 用户界面导航框架 105
3.3.5 低级用户界面案例 120
3.4 记录管理系统 144
3.4.1 记录管理系统介绍 145
3.4.2 记录方法执行日志 146
3.4.3 存储含有多种类型数据的对象 153
3.4.4 高级编程与设计指南 158
3.5 通用连接框架 165
3.6 安全模型与Push注册 166
3.6.1 安全模型 166
3.6.2 Push注册机制 168
3.7 音频子系统 169
3.8 小结 170
第4章 访问网络服务和数据 171
4.1 通用连接框架概述 171
4.1.1 通用连接框架的结构 171
4.1.2 如何使用通用连接框架 172
4.1.3 CMNET和CMWAP接入点 173
4.2.1 HTTP协议简介 175
4.2 从这里开始联网开发 175
4.2.2 Client-Server模型 176
4.2.3 网络地址转换 177
4.2.4 Netbeans IDE 5.0开发端到端的联网应用 178
4.3 结构设计与数据传输方式 185
4.3.1 Yahoo!天气预报接口 185
4.3.2 使用KXML解析Yahoo!天气预报 188
4.3.3 通过代理服务器访问Yahoo!天气预报 195
4.4 HTTP联网开发深入研究——httpme框架 200
4.4.1 GET方法和字节流传输数据的局限 200
4.4.2 模仿html表单采集数据 202
4.4.3 URLEncoder的实现 209
4.4.4 Cookie管理 212
4.4.5 框架的核心HttpUtil类 218
4.5 基于httpme框架的blog客户端BlogMIDlet 224
4.5.1 实现HttpUtil 224
4.5.2 发表日志 225
4.5.3 拍照上传 226
4.5.4 服务器端设计 229
4.6 小结 234
第5章 Java ME游戏开发 235
5.1 游戏开发概述 235
5.1.1 手机游戏开发的特点 235
5.1.2 手机游戏类型 236
5.1.3 Java ME开发手机游戏的特点 237
5.2 MIDP 2.0游戏开发包 238
5.2.1 GameCanvas类 238
5.2.3 Sprite类 240
5.2.2 Layer类 240
5.2.4 TiledLayer类 245
5.2.5 LayerManager类 249
5.3 基于MIDP 1.0的游戏实例——街头滑板 253
5.3.1 尽可能做好游戏的策划 253
5.3.2 图片的绘制 257
5.3.3 搭建一个游戏架构 259
5.3.4 为游戏添加背景 265
5.3.5 将主角加入游戏 274
5.3.6 制作一个地图类 289
5.3.7 添加障碍物 292
5.3.8 添加奖品和工具 295
5.3.9 添加敌人 299
5.3.10 碰撞检测 303
5.3.11 丰富游戏的内容——前景和装饰物 306
5.3.12 添加Logo画面和主菜单 307
5.3.13 如何移植 310
5.4 手机动画编辑器的应用 317
5.4.1 对传统手机游戏设计的思考 317
5.4.2 手机动画编辑器的功能介绍 320
5.4.3 制作绚丽的手机动画 325
5.5 基于Socket的联网五子棋游戏 329
5.5.1 网络游戏的通信协议 330
5.5.2 联网五子棋游戏设计 331
5.5.3 客户端实现——GoBang 335
5.5.4 服务器端实现——GoBangServer 348
5.6 小结 356
6.1.1 概述 357
第6章 无线消息API编程 357
6.1 无线消息API 1.1 357
6.1.2 WMA编程 359
6.1.3 实例SMS 361
6.2 无线消息API 2.0 367
6.2.1 MultipartMessage和MessagePart 368
6.2.2 实例MMS 370
6.3 访问设备的消息箱(JSR 266) 376
6.4 小结 377
第7章 移动多媒体API 378
7.1 MMAPI概述 378
7.1.1 MMAPI的结构 378
7.1.3 MMAPI实现的差异性 380
7.1.2 MMAPI与安全 380
7.2 视频和音频播放 383
7.2.1 创建播放器(Player) 383
7.2.2 播放器的状态模型与事件监听 384
7.2.3 播放音调 387
7.2.4 播放音频 388
7.2.5 播放视频 393
7.3 背景音乐与音效 395
7.4 音频记录 401
7.5 捕获图像 407
7.5.1 移植拍照程序的注意事项 407
7.5.2 拍照拼图游戏——Puzzle 409
7.6 小结 419
第8章 文件系统与个人信息管理 422
第3篇 超越游戏——移动应用成为亮点 422
8.1.1 概述 423
8.1.2 访问文件系统 423
8.1 FileConnection连接文件系统 423
8.1.3 MSA中的FileConnection 427
8.1.4 图片管理PicManager 428
8.2 PIM管理个人信息 437
8.2.1 概述 437
8.2.2 vCard和vCalendar 437
8.2.3 使用PIM编程接口 438
8.2.4 读取通讯录——ContactMIDlet 444
8.3 小结 445
9.1 从这里开始 446
9.1.1 蓝牙技术概述 446
第9章 Java ME与蓝牙 446
9.1.2 蓝牙协议栈 447
9.1.3 蓝牙配置文件 450
9.1.4 Java ME与蓝牙 452
9.2 Java蓝牙无线技术API 453
9.2.1 API结构与应用模型 454
9.2.2 查找设备和服务 455
9.2.3 设备管理 459
9.2.4 通信 462
9.3 通过蓝牙分享照片 464
9.3.1 BTMIDIet 464
9.3.2 BTServer 468
9.3.3 BTClient 472
9.4.1 OBEX概述 476
9.4 使用OBEX传输数据 476
9.4.2 OBEX连接 477
9.4.3 OBEX案例 482
9.5 小结 488
第10章 Java ME与Web服务 489
10.1 Web服务概述 489
10.1.1 什么是Web服务 489
10.1.2 Web服务的技术 490
10.2 使用JAXP解析XML 491
10.2.1 一个简单的XML文档 491
10.2.2 ParseMIDlet类 491
10.2.3 MyHandler类 494
10.3.1 Web服务的结构 496
10.3 JAX-RPC 496
10.3.2 客户端程序的结构 497
10.3.3 客户端编程模型 498
10.3.4 通过stub执行RPC调用的过程 499
10.4 使用Netbeans 5.0开发Web服务 500
10.4.1 开发Web服务 500
10.4.2 公开Web服务 504
10.4.3 手机客户端使用Web服务 505
10.5 基于kSOAP的Web服务开发 510
10.5.1 kSOAP概述 510
10.5.2 kSOAP2接口 511
10.5.3 调用Amazon网上书店的Web服务 516
10.5.4 传递自定义复杂对象 521
10.6 小结 525