第1章 Java语言 1
1.1 Java基本语法 2
1.1.1 变量、常量和数据类型 2
1.1.2 Java程序的注释 8
1.1.3 表达式和运算符 10
1.1.4 字符串运算 12
1.1.5 数组 14
1.2 条件语句 16
1.3 分支语句 16
1.4 循环语句 17
1.4.1 for循环 18
1.4.2 while循环 18
1.4.3 do-while循环 19
1.4.4 跳转语句 19
1.5 面向对象编程技术 20
1.5.1 对象和类概述 20
1.5.2 对象的成员 21
1.5.3 访问修饰符 23
1.5.4 成员的重载和覆盖 24
1.5.5 包和接口 25
1.5.6 this、super和null变量 27
1.6 异常处理机制 29
1.6.1 异常概述 29
1.6.2 异常的捕获和抛出 29
1.6.3 自定义异常 30
1.7 小结 31
第2章 J2ME概述 32
2.1 J2ME中的常用概念 33
2.1.1 J2ME嵌入式开发概述 33
2.1.4 CLDC配置 34
2.1.2 J2ME和J2SE的关系 34
2.1.3 KVM、CVM和JVM 34
2.1.5 MIDP简表 35
2.2 MIDlet定义 35
2.2.1 MIDlet定义 35
2.2.2 MIDlet的生命周期 36
2.3 Motorola的J2ME手机开发包 37
2.3.1 Motorola的J2ME手机开发包的下载和安装 37
2.3.2 Motorola的J2ME手机开发包的目录结构 39
2.3.3 Motorola的J2ME手机开发包的模拟器 41
2.4 创建一个简单MIDlet 43
2.4.1 创建一个简单的MIDlet 43
2.4.2 Manifest文件编写 44
2.4.3 JAD文件编写 45
2.4.4 测试和运行MIDlet程序 45
2.5 技巧集锦 47
2.5.1 浮点运算错误 47
2.5.2 如何检查Motorola手机支持的API 47
2.6 小结 48
第3章 NetBeans开发环境 49
3.1 下载和安装NetBeans 50
3.1.1 下载NetBeans开发工具 50
3.1.2 安装NetBeans集成开发环境 54
3.1.3 安装NetBeans Mobility 56
3.2 NetBeans开发环境 57
3.2.1 更新NetBeans系统 58
3.2.2 NetBeans菜单 60
3.2.3 NetBeans工具栏 61
3.2.4 代码编辑区 62
3.2.5 项目窗口 64
3.2.6 运行环境窗口 65
3.2.7 文件窗口 66
3.2.8 输出窗口 67
3.3 创建一个J2ME程序 67
3.3.1 WTK手机无线开发包 67
3.3.2 创建一个J2ME程序 68
3.4 MIDlet的调试技术 71
3.4.1 调试模式和断点设置 71
3.4.2 观测变量值 72
3.4.3 控制代码执行 73
3.5 在手机中运行程序 74
3.5.1 通过OTA下载到手机运行 74
3.5.2 通过数据线下载到手机运行 75
3.6 技巧集锦 75
3.6.1 MIDlet的安装步骤 75
3.6.2 Motorola T720内存使用 76
3.6.3 如何在NetBeans中添加Motorola M.3模拟器 76
3.7 小结 80
第4章 多线程技术 81
4.1.1 线程的概念 82
4.1.2 线程生命周期 82
4.1 线程概述 82
4.2 通过Runnable接口创建线程 83
4.2.1 实现Runnable接口 83
4.2.2 线程的运行和停止控制 84
4.3 Thread类 85
4.3.1 Thread类的重要属性和方法 86
4.3.2 通过Thread类实现线程 86
4.4 线程的同步 87
4.4.1 线程不同步的影响 87
4.4.2 线程同步方法 90
4.4.3 线程同步实例 91
4.5 线程的优先级 93
4.5.1 线程优先级概述 93
4.5.2 线程优先级实例 94
4.6 线程的等待和唤醒 98
4.6.1 等待和唤醒的方法 98
4.6.2 等待和唤醒实例 99
4.7 技巧集锦 102
4.7.1 如何防止线程死锁 102
4.7.2 如何进行通信 102
4.8 小结 103
第5章 设计简单的人机交互界面 104
5.1 用户界面设计概述 105
5.2 Display和Displayable类 106
5.2.1 Display类的使用方法 106
5.2.2 Display类应用实例 108
5.2.3 Displayable类 112
5.2.4 Displayable类应用实例 113
5.3 Screen类和Ticker类 115
5.3.1 Ticker类 115
5.3.2 滚动条应用举例 116
5.4.2 文本处理 118
5.4 TextBox类 118
5.4.1 TextBox的构造函数 118
5.4.3 TextBox的输入约束 121
5.4.4 TextBox的最大值 125
5.5 Command类 125
5.5.1 Command类 125
5.5.2 CommandListener类 126
5.5.3 Command类应用举例 127
5.6 Alert和AlertType类 129
5.6.2 AlertType类 130
5.6.1 Alert类 130
5.6.3 Alert应用举例 131
5.7 技巧集锦 135
5.8 小结 137
第6章 列表风格界面设计 138
6.1 Item类 139
6.1.1 Item的派生类 139
6.1.2 Item的布局 139
6.1.3 Item的外观 140
6.1.4 Item的其他属性 141
6.1.5 与列表风格相关的接口 142
6.2 List类 145
6.2.1 重要属性和方法 145
6.2.2 应用举例 147
6.3 Form类 151
6.3.1 重要属性和方法 151
6.3.2 应用举例 153
6.4 TextField类 155
6.4.1 重要属性和方法 155
6.4.2 应用举例 156
6.5 ChoiceGroup类 158
6.5.1 重要属性和方法 159
6.5.2 应用举例 160
6.6 技巧集锦 163
6.7 小结 164
第7章 高级用户界面 165
7.1 使用Gauge 166
7.1.1 重要属性和方法 166
7.1.2 应用举例 168
7.2.1 重要属性和方法 173
7.2 使用ImageItem 173
7.2.2 应用举例 174
7.3 使用StringItem 176
7.3.1 重要属性和方法 176
7.3.2 应用举例 176
7.4 使用DateField 178
7.4.1 TimeZone类 178
7.4.2 Date类 179
7.4.3 Calendar类 180
7.4.4 DateField重要属性和方法 181
7.4.5 应用举例 184
7.5.1 如何实现版权闪现档窗口 189
7.5 技巧集锦 189
7.5.2 Alert对话框中使用进度条 190
7.6 小结 192
第8章 图形和动画界面开发 194
8.1 Canvas画布屏幕 195
8.1.1 画布使用基本框架 195
8.1.2 键盘事件处理 195
8.1.3 画布大小 197
8.1.6 应用举例 198
8.1.5 全屏模式 198
8.1.4 指针事件处理 198
8.2 绘制基本图形和文本 201
8.2.1 Graphics类 201
8.2.2 文本绘制方法 202
8.2.3 基本的绘制和填充函数 203
8.3 图像显示和处理 203
8.4 简单动画的实现 206
8.4.1 通过线程实现动画 206
8.4.2 通过定时器实现动画 207
8.4.4 应用举例 208
8.4.3 通过callSerially()方法实现动画 208
8.5 技巧集锦 212
8.5.1 双缓冲技术 212
8.5.2 Motorola手机键值的变化 213
8.6 小结 214
第9章 多媒体技术开发 215
9.1 声音和音乐播放 216
9.1.1 J2ME对声音和音乐的支持 216
9.1.2 设定音调实例 219
9.1.3 不同格式音乐的播放实例 220
9.2.1 播放视频方法 223
9.2 视频播放 223
9.2.2 视频播放器开发实例 224
9.3 技巧集锦 225
9.3.1 同时播放两个WAVE文件时的异常 225
9.3.2 Motorola V600支持的媒体格式 226
9.4 小结 226
第10章 动画及游戏开发 228
10.1 游戏画布GameCanvas 229
10.1.1 重要属性和方法 229
10.1.2 处理游戏循环 230
10.1.3 GameCanvas引用实例 231
10.2.1 动画帧控制 235
10.2 游戏精灵Sprite 235
10.2.2 游戏精灵碰撞检测 237
10.2.3 “精灵”的移动和转动 237
10.2.4 应用实例 238
10.3 游戏图层 242
10.3.1 游戏图层 242
10.4 图层管理 243
10.4.1 层的安排 243
10.3.2 动画实现 243
10.4.2 地图滚动控制 244
10.5 技巧集锦 244
10.5.1 如何减小程序的大小 244
10.5.2 如何提高游戏的执行效率 244
10.6 小结 245
第11章 3D图形程序开发 246
11.1 3D程序框架 247
11.2 通过顶点坐标生成简单的3D物体 248
11.2.1 生成3D物体 248
11.2.3 简单3D物体生成实例 251
11.2.2 旋转3D物体 251
11.3 导入3D图形文件 254
11.3.1 Loader类 254
11.3.2 导入3D图形文件实例 255
11.4 3D显示特效雾化效果实现 256
11.4.1 Fog类 256
11.4.2 雾化效果实例 258
11.5 小结 261
第12章 Messaging应用开发 262
12.1 设置WTK中的WMA参数 263
12.2 使用WMA控制台发送消息 264
12.2.1 发送文本消息 265
12.2.2 发送小区广播 267
12.2.3 发送多媒体MMS消息 268
12.3 发送和接收文本消息 270
12.3.1 SMS系统概述 270
12.3.2 发送消息 271
12.3.3 接收消息 272
12.3.4 发送和接收文本消息实例 273
12.4 发送和接收二进制消息 277
12.4.1 二进制消息发送和接收 277
12.4.2 发送和接收二进制消息实例 278
12.5 发送和接收多媒体消息 283
12.5.1 MultipartMessage 284
12.5.2 MessagePart 287
12.6 技巧集锦 289
12.6.1 小区广播的接收和发送 289
12.6.2 在线程中接收短信 290
12.6.3 如何在Motorola SDK中模拟短信的发送 291
12.7 小结 292
第13章 基于HTTP协议的网络开发 293
13.2 Connector接口 294
13.1 网络开发基础知识 294
13.3 连接Web服务器 295
13.3.1 HttpConnection和HttpsConnection 295
13.3.2 连接Web服务器的方法 297
13.4 从服务器Get数据 298
13.5 向服务器Post数据 301
13.6 技巧集锦 307
13.6.1 设置Motorola手机 307
13.6.2 在WTK中使用代理 308
13.6.3 使用WTK的网络监视器 309
13.7 小结 310
第14章 Socket编程 311
14.1 Socket编程概述 312
14.2 SocketConnection 313
14.3 ServerSocketConnection 314
14.4 Socket客户端开发 315
14.5 Socket服务器端程序开发 319
14.6 技巧集锦 321
14.6.1 Motorola Accompli008/A6288的网络支持 321
14.7 小结 322
14.6.3 Motorola的哪些手机支持ServerSocketConnection 322
14.6.2 Socket客户端超时设置 322
第15章 串口通信开发 323
15.1 串口通信的基本概念 324
15.1.1 RS-232物理特性 324
15.1.2 串口通信的基本概念 325
15.2 获取可以利用的串口 326
15.3 进行标准串口连接 329
15.3.1 程序连接方法 329
15.3.2 连接测试方法 330
15.4 发送和接收数据 333
15.5 标准串口开发实例 334
15.6 技巧集锦 342
15.6.1 如何获得最大传输速率 342
15.6.2 Motorola T720、T721、T720i支持串口API吗 342
15.7 小结 342
第16章 红外数据传输 343
16.1 红外概述 344
16.2 通过逻辑串口进行红外通信 344
16.3 通过IrOBEX进行通信 346
16.3.1 IrOBEX协议概述 346
16.3.2 IrOBEX协议客户端开发 348
16.3.3 IrOBEX协议服务器端开发 349
16.4 红外OBEX开发实例 351
16.5 技巧集锦 357
16.5.1 通过红外安装MIDlet 357
16.5.2 如何设置WTK的红外OBEX参数 359
16.6 小结 360
第17章 文件系统开发 361
17.1 输入/输出流控制 362
17.1.1 输入/输出流的分类 362
17.1.3 输出流的重要属性和方法 363
17.1.2 输入流的重要属性和方法 363
17.2 文件系统操作API 364
17.2.1 FileConnection接口 364
17.2.2 其他API 365
17.3 文件浏览器开发实例 366
17.3.1 MIDlet类 366
17.3.2 确认对话框ConfirmDialog 366
17.3.3 FileExplorer类和成员变量定义 368
17.3.4 文件和文件夹的访问 370
17.3.5 创建文件 372
17.3.6 删除文件 373
17.3.7 读取文件数据 374
17.3.8 访问文件的属性 376
17.3.9 文件的复制 378
17.3.10 文件的剪切 379
17.3.11 文件的粘贴 379
17.4 技巧集锦 381
17.4.1 签名运行 381
17.4.2 MIDlet JAD文件属性 382
17.5 小结 383
附录A CLDC 1.0应用程序编程接口 384