目录 1
第1章 Java手机程序设计入门 1
1.1 J2ME及MIDP 1
1.1.1 J2ME简介 1
1.1.2 CLDC与CDC 2
1.1.3 MIDP与MIDlet 3
1.2 编写MIDPlet的基本步骤 5
1.2.1 下载并安装开发工具MIDP-fcs 5
1.2.2 MIDlet开发步骤 6
1.3 使用J2ME Wireless Toollkit 12
1.3.1 下载及安装J2ME Wireless Toolkit 13
1.3.2 使用Kroolbar 13
1.4 仿真器的使用及设置 16
1.4.1 仿真器的使用 16
1.4.2 仿真器运行环境变量 17
1.5.1 描述文件 18
1.5 在实际手机上执行及在网络上发布MIDlet 18
1.4.3 KToolbar中仿真器的设定 18
1.5.2 MIDlet在实际手机上的执行 19
1.5.3 在网络上发布MIDlet 20
第2章 J2ME核心类及MIDlet类 22
2.1 J2ME中不同配置的类库 22
2.1.1 CDC中规定的功能与类库 22
2.1.2 CLDC与MIDP的功能与类库 23
2.2 J2ME核心类库 24
2.2.1 Object类 25
2.2.2 基本数据类型的包装类 28
2.2.3 Math类 29
2.2.4 System类 29
2.2.5 String类 30
2.2.6 StringBuffer类 34
2.3 集合类 35
2.3.1 Vector 35
2.3.2 Enumeration 37
2.3.3 Hashtable类 38
2.3.4 Stack 39
2.4 工具类 40
2.4.1 Date类及Calendar类 40
2.4.2 Random类 45
2.5 MIDlet类及MIDlet的生命期 45
2.5.1 MIDlet的生命期 45
2.5.2 MIDlet要实现的方法 45
2.5.3 MIDlet的其他方法 46
2.5.4 MIDlet的自定义参数 48
第3章 MIDP用户界面对象 49
3.1 界面对象与事件处理 49
3.1.1 javax.microedition.lcdui包 49
3.1.2 Displayable对象与Display 49
3.1.3 事件处理 52
3.1.4 Command命令对象 52
3.1.5 Ticker滚动文字 54
3.2 List,Alert及TextBox 56
3.2.1 List 56
3.2.2 Alert 61
3.2.3 TextBox 66
3.3 Form与Item 66
3.3.1 Item及其在Form中的布局、事件 66
3.3.2 StringItem及ImageItem 68
3.3.3 ChoiceGroup(选项组) 71
3.3.4 TextField(文本域) 74
3.3.5 Gauge(进度条) 76
3.3.6 DateField(日期域) 77
3.3.7 Spacer(占位符) 79
第4章 图形处理及低级事件处理 80
4.1 Canvas及绘图 80
4.1.1 Canvas类 80
4.1.2 Graphics类及绘图方法 82
4.2.1 不可修改的图像类 87
4.2 图像Image类 87
4.2.2 可修改的图像类 89
4.3 键盘及笔触事件处理 91
4.3.1 键盘事件 91
4.3.2 笔触事件 97
4.4 字体 99
4.4.1 字体类Font 99
4.4.2 使用字体 100
4.5.1 继承已有的类 104
4.5 自定义界面对象 104
4.5.2 自定义条目CustomItem 105
第5章 多线程编程 112
5.1 线程及其创建 112
5.1.1 Java中的线程 112
5.1.2 创建线程对象的两种方法 113
5.1.3 多线程 115
5.1.4 应用举例 117
5.2.1 线程的状态与生命周期 120
5.2 线程的调度 120
5.2.2 线程调度与优先级 121
5.2.3 对线程的基本控制 122
5.2.4 synchronized关键字 125
5.3 使用Timer及TimerTask 126
5.3.1 Timer及TimerTask类 126
5.3.2 应用举例 127
第6章 I/O及网络编程 130
6.1 流式输入输出 130
6.1.1 字节流与字符流 130
6.1.2 节点流和处理流 132
6.1.3 标准输出 133
6.2 资源文件与流 133
6.3 Connection与HTTP编程 135
6.3.1 Connection框架 135
6.3.2 HttpConnection的属性 136
6.3.3 获取HTTP连接的内容 139
6.4 Socket编程 141
第7章 数据库RMS编程 144
7.1 记录管理系统 144
7.1.1 记录管理系统的概念 144
7.1.2 记录表 144
7.1.3 记录 145
7.1.4 实例 146
7.2 记录的存储与遍历 149
7.2.1 记录的存储 149
7.2.2 记录的遍历 153
7.3 监听记录的变化 156
第8章 浮点数编程 161
8.1 使用已有的浮点库 161
8.1.1 使用SpruceFloat类 161
8.1.2 使用其他浮点库 163
8.2 使用定点数来表示实数 163
8.2.1 使用16:16的定点数 164
8.2.2 使用长整数表示浮点数 170
8.3 使用函数值对照表 183
8.4 一个综合实例——生命节律曲线 187
8.4.1 数据库、流的操作 188
8.4.2 日期、日历的操作 192
8.4.3 函数对照表、绘图及事件 193
第9章 多媒体及GAME API编程 197
9.1 用MMAPI播放音频、视频及音调 197
9.1.1 MMAPI的基本角色 197
9.1.2 进行音频的播放 198
9.1.3 进行音调的播放 199
9.1.4 进行视频的播放 201
9.1.5 移动应用领域中特定的多媒体格式 206
9.2 简单动画的编程 207
9.2.1 在动画程序中使用线程 207
9.2.2 实现图片的快速显示 208
9.2.3 动画程序实例 209
9.3 GameCanvas 212
9.3.1 GameCanvas的特点 212
9.3.2 一个排块游戏实例 214
9.4 GAME API中的Layer及Sprite 219
9.4.1 图层(Layer) 219
9.4.2 图层的管理(LayerManager) 220
9.4.3 精灵动画(sprite) 221
9.4.4 拼合图层(TiledLayer) 224
9.5 使用GAME API的游戏实例 226
9.5.1 MIDlet与命令的加入 227
9.5.2 游戏的线程对象 229
9.5.3 游戏的Canvas对象 231
9.5.4 游戏的图层管理器 237
9.5.5 草地TiledLayer 241
9.5.6 牛仔Sprite 242
9.5.7 风火轮Sprite 245
10.1.1 KVM的安全机制 249
第10章 安全、加密及代码优化 249
10.1 安全问题 249
10.1.2 允许API的配置 250
10.1.3 代码签名 252
10.1.4 网络连接安全 256
10.2 数据的加密与解密 257
10.2.1 Bouncy Castle加密库 257
10.2.2 加密与解密 257
10.2.3 使用Digest进行认证 263
10.3 数据的压缩与解压 270
10.3.1 TinyLineGZIP库 270
10.3.2 解压程序示例 270
10.4 代码优化及效率提高 275
10.4.1 执行速度 275
10.4.2 多线程 275
10.4.3 内存管理 276
10.5 代码混淆与源程序保护 277
10.4.4 界面操作与按键响应 277
10.4.5 文件、I/O及网络 277
10.5.1 混淆器 278
10.5.2 在WTK中使用Proguard 278
第11章 扩展类库及供应商提供的API 279
11.1 扩展类库的使用 279
11.1.1 判断特定类库是否存在 279
11.1.2 根据现有类库动态生成相应的对象 279
11.1.3 实例——手机按键声 285
11.2 AWT风格的界面API——kAWT 292
11.2.1 kAWT类库 292
11.2.2 kAWT中的KAWTlet 293
11.3 Nokia用户界面API 299
11.3.1 Nokia用户界面API简介 300
11.3.2 Nokia用户界面API应用示例——焰火 300
11.4.1 JBuilder中安装MobileSet 304
11.4 其他J2ME开发工具 304
11.4.2 JBuilder中开发J2ME程序 305
第12章 与服务端联合搭建移动应用 309
12.1 MIDlet与服务端的交互 309
12.1.1 从服务端获取数据 309
12.1.2 向服务端提交数据 310
12.2 利用服务端发送E-mail实例 316
12.2.1 用C#实现E-mail服务端 316
12.2.2 MIDlet客户端 319
12.3 手机中的WML浏览器 322
12.3.1 无线应用标记语言 322
12.3.2 WML与服务端的交互 324
12.3.3 WML浏览器 325
12.4 CHTML及SVG浏览器 325
12.4.1 CHTML浏览器 325
12.4.2 SVG浏览器 326
12.5 在ASP.NET中用C#开发移动应用 326
12.5.1 ASP.NET中的移动应用 327
12.5.2 Mobile窗体及控件 328
第13章 XML及Web Service编程 334
3.1 XML编程 334
13.1.1 XML基本概念 334
13.1.2 在J2ME中进行XML编程 336
13.2 Web Service的概念及C#开发 345
13.2.1 Web Service的概念 345
13.2.2 使用C#进行Web Service的创建和调用 346
13.3 使用kSoap1.2调用Web Service 351
13.3.1 kSoap类库 351
13.3.2 应用实例—股票查询 352
13.4 使用HttpConnection调用Web Service 354
13.4.1 用C#实现Web Service 354
13.4.2 使用HttpConnection调用Web Service 356
13.4.3 使用kSoap2调用Web Service 360
13.5.1 使用JWSDP的开发步骤 364
13.5 使用JWSDP进行Web Service开发 364
13.5.2 Web Service的实现 365
13.6 使用JSR 172进行Web Service调用 367
13.6.1 生成对于Web Service的代理(Stub) 367
13.6.2 MIDlet对Web Service进行调用 370
13.7 一个应用实例—在线投票 374
13.7.1 用C#实现的服务端 374
13.7.2 界面对象及数据逻辑 377
13.7.3 与服务端的通信 379
13.7.4 XML的解析 382
第14章 短信编程 385
14.1 WMA与短信的发送 385
14.1.1 WMA介绍 385
14.1.2 使用WMA发送短信 385
14.1.3 短信程序的测试 390
14.2.1 Push Registry 392
14.2.2 使用WMA接收短信 392
14.2 Push Registry与短信的接收 392
14.2.3 程序的测试 396
14.3 计算机通过手机发送短信 398
14.3.1 计算机通过手机发送短信的原理 398
14.3.2 使用Nokia PC Connectivity SDK发送和接收短信 399
14.4 多媒体短信MMS 404
14.4.1 多媒体短信业务 404
14.4.2 从SMIL文件创建MMS 406
14.4.3 使用MMS Java Library 408
第15章 各种移动平台的应用开发 411
15.1 Personal Profile 411
15.1.1 J2ME的Personal Profile 411
15.1.2 Xlet的生命期及环境 411
15.1.3 Xlet的实例 413
15.2 J2ME中的Java Card 415
15.2.1 Java Card API中的包和类 416
15.2.2 APDU的数据格式 416
15.2.3 Applet及其方法 417
15.2.4 JavaCard的应用实例 418
15.3 在Palm中使用MIDP 420
15.3.1 Palm模拟器 420
15.3.2 安装MIDP for Palm 421
15.3.3 转换并运行MIDP程序 422
15.4 BREW编程及BREW中运行MIDP程序 423
15.4.1 BREW SDK 423
15.4.2 BREW开发实例 424
15.4.3 MIDP程序在BREW的运行 426
15.5 SmartPhone及Symbian 427
15.5.1 Microsoft的移动开发工具 427
15.5.2 C#进行Smart Phone开发 428
15.5.3 Symbian操作系统 429
附录A 常见问题解答 430
附录B 本书中用到的工具软件及支持类库列表 432
附录C 网络上的参考资源 434
参考文献 435