第一部分 1
第1章 Java无线编程简介 1
1-1J2ME、BREW与WML简介 2
1-1-1J2ME简介 2
1-1-2BREW简介 2
1-1-3WML简介 2
1-2J2ME技术概览 3
1-3J2ME软件架构 3
1-3-1配置(Configuration) 4
1-3-2虚拟机(CVM与KVM) 6
1-3-3简表 7
本章小结 8
第2章 搭建J2ME开发环境 9
2-1安装J2MEWirelessToolkit2.1 10
2-1-1在Windows上安装J2MEWirelessToolkit2.1 10
2-1-2在Solaris系统上安装J2MEWirelessToolkit2.1 15
2-2设置环境变量 17
2-3用J2MEWirelessToolkit2.1编译运行MIDlet 18
2-3-1创建简单MIDlet应用 18
2-3-2编译MIDletSimpleMIDlet.java 19
2-3-3预验证MIDletSimpleMIDlet.class 19
2-3-4将类打包成JAR文件 20
2-3-5运行MIDlet 20
本章小结 21
第3章 CLDC与MIDP 23
3-1-1互联受限设备配置(CLDC)与Java虚拟机 24
3-1互联受限设备配置(CLDC) 24
3-1-2KVM 26
3-1-3CLDC与Java核心类库的区别 27
3-1-4数据I/O与网络 30
3-1-5CLDC所支持的属性 33
3-1-6CLDC的下一代 34
3-2移动信息设备简表(MIDP) 34
3-2-1移动信息设备(MID) 34
3-2-2MIDP中的软件包 35
本章小结 49
第二部分 51
第4章 MIDP编程初步 51
4-1-1在JBuilder中添加JavaWirelessToolkit2.0 52
4-1配置JBuilder开发MIDP应用 52
4-1-2创建HelloWorldMIDlet小程序 57
4-1-3MyMIDlet.java小程序架构分析 58
4-1-4编译MIDlet小程序 62
4-1-5运行MIDlet小程序 62
4-1-6创建绘图MIDlet应用 63
4-1-7绘制图片MIDlet主类 64
4-1-8图片显示类 65
4-1-9在JBuilder中调试MIDlet 66
本章小结 70
第5章 事件与GUI程序设计 71
5-1-2低层事件 72
5-1-1事件分类 72
5-1事件 72
5-1-3高层事件 75
5-2用户界面(GUI) 77
5-2-1MIDP中的UI类 77
5-2-2Displayable类 78
5-2-3Canvas类 79
5-2-4Image类 81
本章小结 83
第6章 MIDP多线程程序设计 85
6-1多线程的概念 86
6-1-1多线程与多进程 86
6-1-2Java的多线程 86
6-1-5线程的同步问题 90
6-1-3线程生命周期中的四种状态 90
6-1-4线程的优先级 90
6-1-6线程的阻塞 92
6-1-7精灵线程 92
6-1-8线程组 93
6-2MIDP中的多线程 93
6-2-1利用Thread类与Runnable接口实现多线程 93
6-2-2MIDlet主类MultiThreadMIDlet.java 93
6-2-3MIDlet图片显示类ImageScreen.java 94
6-2-4借助系统类Timer与TimerTask实现多线程 96
6-2-5创建多线程音乐播放器 97
本章小结 98
第7章 网络编程 99
7-1通用连接框架(GCF) 100
7-1-1HTTP连接 100
7-1-2创建Web站点阅读器 101
7-1-3在MIDlet中调用Servlet 106
7-1-4UDP(UserDatagramProtocol)连接 112
7-1-5创建UDP通信系统 112
7-1-6UDP通信MIDlet主类UDPMIDlet.java 113
7-1-7UDP显示类UDPScreen.java 115
7-1-8Socket连接 117
7-1-9创建Socket通信系统 118
7-1-10套接字MIDlet主类SocketMIDlet.java 120
7-1-11套接字显示类SocketScreen.java 121
7-1-12ServerSocketConnection接口 123
本章小结 124
第8章 数据库编程 125
8-1RMS与大型数据库管理系统(RDBMS) 126
8-2RMS 127
8-2-1RMS软件包javax.microedition.rms 127
8-2-2RMS软件包中的类 128
8-2-3RMS记录管理 131
8-3RMS股票报价系统 139
8-3-1提供RMS数据库服务类中的主要代码 142
8-3-2股票对象类 143
本章小结 144
第9章 游戏编程 145
9-1-1javax.microedition.lcdui.game.GameCanvas类 146
9-1MIDP中的游戏API 146
9-1-3javax.microedition.lcdui.game.LayerManager类 147
9-1-2javax.microedition.lcdui.game.Layer类 147
9-1-4javax.microedition.lcdui.game.Sprite类 148
9-1-5javax.microedition.lcdui.game.TiledLayer类 148
9-1-6其他的API 148
9-1-7整合图片的小技巧 153
9-1-8剪切图片的小技巧 154
9-2游戏中的事件处理 155
9-2-1KeyPressed与KeyReleased方法 155
9-3-1MIDP2.0中的多媒体类 157
9-3-2获取CLDC设备所支持的媒体信息 157
9-3多媒体编程 157
9-2-2getGameAction方法 157
9-3-3单音元(SingleTone) 158
9-3-4音元序列(SequenceTone) 160
9-3-5播放音频文件 161
9-3-6播放视频文件 162
9-4创建WalkTom游戏 163
9-4-1MIDlet主类WalkCatMIDlet.java 164
9-4-2游戏画布类WalkCatCanvas.java 165
9-4-3游戏精灵类Tom.java 166
9-4-4层管理类WalkManager.java 167
9-4-5游戏线程类WalkThread.java 168
9-4-6处理不规则图片实例代码 170
9-5网络游戏 170
9-5-2MIDP设备互联解决方案 171
9-5-1设备互联 171
9-5-3创建网络游戏 174
9-5-4街霸搏击网络游戏实例 176
9-5-5编译运行网络游戏 190
本章小结 192
第三部分*193++第10章 MIDP无线信息服务编程 193
10-1短信服务SMS与小区广播服务CBS 194
10-2无线信息API(WMA) 195
10-2-1无线信息连接的样例代码 197
10-2-2发送短信息样例代码 197
10-2-3收取短信息样例代码 197
10-3创建SMS聊天室 198
10-3-2SMS客户端主类 199
10-3-1创建SMS应用实例 199
10-3-3SMS客户端显示类 200
10-3-4SMS服务器类 202
10-3-5编译运行SMS应用 203
本章小结 204
第11章 MIDlet与J2EE 205
11-1J2EE 206
11-1-1J2EE核心技术 206
11-1-2创建与MIDlet通信的Servlet 215
11-1-3移动书店通信Servlet 215
11-1-4移动书店客户端 216
11-2-1创建MIDlet 218
11-2整合移动书店系统 218
11-2-2准备运行环境 222
11-2-3启动移动书店系统 223
本章小结 224
第12章 MIDlet与WebService 225
12-1WebService简介 226
12-2通过JBuilder引用WebService 227
12-3ChemistryWebServiceWSDL文件内容 230
12-4创建移动化学元素周期表系统 233
12-5调用ChemistryWebService的Servlet 233
12-6创建调用WebService的MIDlet 235
12-7发布应用并运行MIDlet 239
本章小结 240
第13章 KVM本地接口(KNI)编程 241
13-1KNI技术面向的用户 242
13-2KNI技术目标 242
13-3KNI技术范畴 243
13-4KNI中的数据类型 243
13-4-1基本数据类型与引用数据类型 243
13-4-2返回类型 245
13-4-3域标识符(FieldIds) 245
13-4-4字符串格式 245
13-4-5UTF-8字符串 246
13-4-6类标识符 246
13-4-7域标识符 246
13-4-8常量 247
13-5KNI函数 248
13-5-1版本信息 248
13-5-2类和接口的操作 248
13-5-3异常 249
13-5-4对象操作 250
13-5-5实例域的访问 251
13-5-6静态域的访问 254
13-5-7字符串操作 256
13-5-8数组操作 258
13-5-9参数(操作数堆栈)访问 261
13-5-10句柄操作 265
13-6-2KNI应用实例 268
13-6-1 Kni.h 包含文件 268
13-6KNI程序设计 268
13-7KNI开发实例 269
13-7-1参数传递 269
13-7-2从本地方法得到返回值 271
13-7-3访问域变量 272
13-7-4访问数组 275
13-7-5访问字符串 276
本章小结 277
附录A 在JBuilder中发布MIDlet 279
附录B 空中下载(OTA)规范 289
附录C J2ME无线技术术语表 303
附录D J2ME开发资源 307