第一部分 基础知识 1
第1章 概述 1
1.1无线时代的到来 1
1.2 MIDP——移动Java技术的灵魂 1
1.3第一个集合:JTWI 2
1.4更大的集合:MSA 2
1.5了解MSA API 3
1.5.1基础MIDP平台 3
1.5.2高级网络 4
1.5.3多媒体 4
1.5.4高级图形 4
1.5.5安全与交易 4
1.5.6定位 5
1.5.7高级应用程序 5
1.5.8高级应用服务 5
1.6看看MSA 1.0之外的世界 5
1.7关于JavaFX Mobile 6
1.8小结 6
第2章 工具 7
2.1用于CLDC的Sun Java无线工具包:一个烤面包机 7
2.2 NetBeans Mobility Pack:一个美食厨房 8
2.3 Eclipse 9
2.4剖析MIDlet套件 9
2.5创建一个MIDlet套件 10
2.6命令行 10
2.7预处理 11
2.8混淆器 11
2.9模拟器 11
2.10设备测试 12
2.11小结 12
第3章 快速入门 13
3.1做一个能运行的东西 13
3.2在屏幕上显示一些东西 14
3.3让用户参与进来 15
3.4在线获取源代码 16
3.5小结 16
第4章 核心API 17
4.1可能被忽略的Java虚拟机(JVM)的特性 17
4.2字符串、基本数据类型和系统方法 18
4.3线程 18
4.4使用流来完成输入/输出 19
4.4.1保持清晰 19
4.4.2完整地读取输入数据 20
4.5日期类、集合类和随机数类 20
4.6 小结 21
第二部分 MIDlet 23
第5章 MIDlet特性 23
5.1 MIDlet生命周期 23
5.1.1 AMS——MIDlet的操作者 23
5.1.2关于布尔类型的形象unconditional 24
5.1.3 MIDlet套件可以控制自己的命运 25
5.2使用浏览器和打电话 25
5.3应用程序性质 25
5.4保护域和有数字签名的MIDlet套件 26
5.5许可 27
5.6 MIDlet套件标记的底线 28
5.7小结 28
第6章 自动运行MIDlet套件 29
6.1响应网络连接 29
6.1.1动态注册 29
6.1.2静态注册 30
6.1.3查找到达的连接 30
6.1.4一个Push注册的例子 30
6.2在指定时间运行MIDlet套件 35
6.3对内容作出响应 37
6.3.1激活一个内容句柄 37
6.3.2编写内容句柄MIDlet套件 39
6.3.3把它们放到一起 44
6.3.4注册静态内容句柄 45
6.4小结 45
第三部分 用户界面 47
第7章 基本用户界面 47
7.1如何显示屏幕 47
7.2文本框——草丛里的矮子 48
7.3输入模式 49
7.4使用警告提示 49
7.5图片一览 50
7.6把它们放到一起 50
7.7滚动条的好处 52
7.8命令 52
7.9命令布置 53
7.10小结 54
第8章 更多用户界面 55
8.1 List 55
8.2 列表选项 56
8.3处理列表事件 56
8.4例子中的3个列表 57
8.5高级列表控制 59
8.6使用Form 59
8.7使用项目 60
8.8进度条 61
8.9控制项目布局 63
8.10请对Form负责 63
8.11项目改变事件和项目命令 66
8.12小结 68
第四部分 图形 69
第9章 创建自定义界面 69
9.1从显示中获取信息 69
9.2绘图如何工作 70
9.3设置颜色 70
9.4画线和图形 72
9.5画出文本 76
9.6测量文本 77
9.7创建图片 80
9.8画图片 81
9.9保持资源尽量小 84
9.10在图片上画画 84
9.11处理像素 86
9.12剪辑 88
9.13事件句柄 89
9.14控制命令按钮布局 91
9.15 小结 93
第10章 自定义项目 94
10.1自定义项目尺寸 94
10.2绘图 94
10.3一个非常好的等待指示器 94
10.4在自定义项目中处理事件 97
10.5内部遍历 98
10.6一个交互的例子 99
10.7 小结 103
第11章 使用游戏API 104
11.1 GameCanvas的循环 104
11.2使用层来构建屏幕 109
11.3贴图层 109
11.4 Sprite 111
11.5碰撞检测 112
11.6组建屏幕场景 112
11.7一个短小示例 113
11.8小结 117
第12章 尺寸可变的向量图片 118
12.1显示SVG内容的简单途径 118
12.2运行动画文件 121
12.3剖析一个SVG文件 123
12.4在你的Canvas上显示一个SVG文件 126
12.5创建新的SVG元素 127
12.6 SVG事件处理 131
12.7小结 135
第13章 3D图形 136
13.1创建M3G文件 136
13.2显示3D内容的简易方法 136
13.3复杂方法创建3D文件 140
13.4小结 148
第五部分 存储和资源 149
第14章 记录内存 149
14.1一个微型数据库 149
14.2操作记录存储 150
14.3操作记录 151
14.4请求 151
14.5通过记录迭代 152
14.6保存记录的场所 152
14.7小结 156
第15章 读写文件 157
15.1快速开始 157
15.2使用文件和目录 158
15.3总有一席之地 159
15.4查找图片、音乐和其他东西 159
15.5根目录操作 160
15.6询问许可 160
15.7一个例子 160
15.8小结 164
第16章 通讯录和日历 165
16.1理解PIM API 165
16.2操作列表 166
16.2.1项目查询 166
16.2.2字符串数组字段 167
16.2.3标签 167
16.2.4类别 168
16.2.5联系人列表的特殊方法 168
16.2.6日历和约会的特殊方法 168
16.2.7要事列表的特殊方法 169
16.3列表从哪里来 169
16.4输入和输出 169
16.5支持什么 170
16.6不要忘记许可 170
16.7示例 171
16.8小结 180
第17章 移动国际化 181
17.1关于本地化 181
17.2使用资源 181
17.3查找资源 182
17.4资源层次 183
17.5格式化数字和日期 184
17.6字符串排序 185
17.7让它工作起来 185
17.8小结 190
第六部分 联网 191
第18章 通用连接框架 191
18.1建立连接 191
18.2关闭连接 192
18.3使用线程 193
18.4通过HTTP实现图片上传 193
18.5高级HTTP技术 195
18.6成功技巧 196
18.7使用HTTPS 196
18.8其他连接类型 199
18.9连接请求 202
18.10连接许可 202
18.11小结 203
第19章 文本和多媒体短信 204
19.1为什么 204
19.2发送信息 204
19.3发送二进制信息 205
19.4发送多媒体信息 206
19.5接收信息 207
19.6一个简单的短信应用程序 208
19.7 小结 212
第20章 蓝牙和OBEX 213
20.1控制蓝牙 213
20.2查找其他蓝牙设备和服务 213
20.3简单方法 214
20.4 建立一个客户端连接 214
20.5建立一个服务器 214
20.6鉴定和封装 216
20.7关于OBEX 216
20.8不要忘记Push注册 218
20.9蓝牙和OBEX许可 218
20.10 BlueChew应用程序 218
20.11小结 229
第21章 XML和Web服务 230
21.1解析XML 230
21.2创建一个句柄 231
21.3解析RSS 232
21.4不用JSR 172解析XML 236
21.5使用WS-* Web服务 236
21.6让世界产生动力 240
21.7 Flickr移动客户端 241
21.8小结 250
第22章 会话发起协议 251
22.1理解SIP 251
22.2开发工具 252
22.3建立一个通知 252
22.4发送请求 252
22.5接收SIP请求并发送响应 253
22.6 GoSIP和SIPDemo 253
22.7小结 254
第七部分 多媒体 255
第23章 录放音频和视频 255
23.1烦人的背景知识 255
23.2音调 256
23.3使用播放器 256
23.4支持的内容类型 258
23.5线程与监听 258
23.6进行控制 258
23.7播放示例音频内容 259
23.8播放视频内容 259
23.9序列音播放器 261
23.10交互式MIDI播放器 261
23.11录音 262
23.12捕捉视频 263
23.13不可能使所有人都满意 263
23.14关于MMMIDlet 264
23.15 小结 264
第24章 多媒体高级特性 265
24.1图像处理 265
24.2控制图像格式 267
24.3音乐 267
24.4 3D音频 268
24.5音频的特殊效果 269
24.6更多的摄像头控制 269
24.7普通的旧收音机 270
24.8小结 270
第八部分 安全与交易 271
第25章 智能卡与加密技术 271
25.1关于智能卡 271
25.2用模拟器测试SATSA应用程序 272
25.3基本智能卡通信 272
25.4智能卡与Java卡RMI通信 272
25.5创建签名 273
25.6管理证书 273
25.7加密 274
25.7.1使用信息摘要 274
25.7.2使用数字签名 274
25.7.3使用密码 275
25.8小结 275
第26章 手机支付 276
26.1让我看到收入 276
26.2匹配应用程序和支付方式 278
26.3编辑支付款项信息 279
26.4安全与支付 280
26.5小结 280
第27章 知道你置身何处 281
27.1短故事 281
27.2一个更短的故事 282
27.3更新接收周期的定位信息 282
27.4关闭 282
27.5路标数据库 283
27.6方向 283
27.7设备定位 283
27.8小结 285
第28章 应用程序架构 286
28.1借助Java ME的力量 286
28.2借助网络的力量 286
28.3不要把桌面程序压缩到Java ME应用程序中 286
28.4为多种设备开发 287
28.5可拉伸的屏幕 287
28.6让它正常工作 288
28.7小结 288