《J2ME移动软件程序设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:卢军,岳希,周辉编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2010
  • ISBN:9787508469317
  • 页数:344 页
图书介绍:本书包含了近百个J2ME的编程实例。这些例子从最简单的J2ME程序开始,到完整的网络应用程序、游戏程序,覆盖了J2ME程序设计的方方面面。本书特别针对J2ME在移动信息处理、短消息处理、移动多媒体应用等方面进行了详细的介绍,适应了当前J2ME程序开发的发展趋势。

第一篇 J2ME基础知识 1

第1章 J2ME简介 1

1.1 Java版本的演进 1

1.1.1 Java的演进历史 1

1.1.2 Java 1平台 2

1.1.3 Java 2平台 2

1.2 各种Java版本的定位 2

1.2.1 Java不同版本之间的关系 2

1.2.2 J2SE、J2ME、J2EE和Smart Card 2

1.2.3 不同Java版本的虚拟机 3

1.3 J2ME与手机编程的关系 3

1.3.1 手机编程的历史 4

1.3.2 手机上的Java开发平台——J2ME 4

1.4 Java程序开发简述 4

1.4.1 各种Java版本的程序开发关系 5

1.4.2 Java程序开发流程 5

1.5 J2ME简介 6

1.5.1 使用配置对不同设备进行抽象 6

1.5.2 使用框架对API进行定义 6

1.5.3 J2ME系统体系结构 7

1.5.4 J2ME已有的配置和框架 7

1.5.5 J2ME的技术特性 7

1.6 CDC、CLDC和MIDP简介 8

1.6.1 CDC和CLDC简介 8

1.6.2 典型框架简介 9

1.7 J2ME的一些参考网站 9

1.7.1 主要J2ME的Web站点 9

1.7.2 主要的J2ME讨论区 10

本章小结 10

习题一 11

第2章 J2ME开发环境 12

2.1 JDK的安装和配置步骤 12

2.1.1 安装软件的过程 12

2.1.2 开发环境的配置 12

2.1.3 检查配置是否正确 14

2.2 第一个例子——HelloWorld.java 14

2.2.1 HelloWorld.java的源代码 14

2.2.2 编译、预校验和运行 15

2.2.3 批处理——快速开发的技巧 16

2.2.4 开发MIDlet的完整流程 17

2.3 在网络上发布MIDlet程序 18

2.4 使用J2ME Wireless Toolkit 20

2.4.1 J2ME Wireless Toolkit的硬件和软件要求 20

2.4.2 J2ME Wireless Toolkit的安装步骤 20

2.4.3 在J2ME Wireless Toolkit中运行例子程序 22

2.4.4 在J2ME Wireless Toolkit中创建自己的程序 23

2.4.5 J2MEWTK中的模拟设备简介 25

2.4.6 在J2MEWTK中进行MIDlet的打包 26

2.5 使用Eclipse开发J2ME程序 27

2.5.1 Eclipse概述 27

2.5.2 Eclipse的安装和配置 27

2.5.3 使用Eclipse开发HelloWorld程序 27

本章小结 29

习题二 29

第3章 CLDC和MIDPAPI简介 31

3.1 CLDC/MIDP开发环境 31

3.1.1 MIDlet简介 31

3.1.2 应用程序可移植性 31

3.2 CLDC API简介 31

3.2.1 java.lang 32

3.2.2 java.io 32

3.2.3 java.util 33

3.2.4 javax.microedition.io 34

3.3 MIDP API简介 34

3.3.1 java.util 34

3.3.2 javax.microedition.rms 35

3.3.3 javax.microedition.midlet 35

3.3.4 javax.microedition.io 36

3.3.5 javax.microedition.lcdui 36

3.3.6 MIDP中增加的功能 37

3.4 HelloMidlet的详细解释 38

3.4.1 总体运行功能 38

3.4.2 各部分代码功能 40

本章小结 41

习题三 42

第二篇 程序设计方法 43

第4章 J2ME的用户界面编程 43

4.1 J2ME界面编程概述 43

4.1.1 Display类和屏幕显示部件 43

4.1.2 典型的屏幕显示部件 44

4.1.3 界面设计部件的层次关系 49

4.2 如何使用Display类 50

4.2.1 获得MIDlet的Display类 50

4.2.2 显示Displayable部件 50

4.3 使用Screen类和滚动条 50

4.3.1 Screen类的基本属性 50

4.3.2 在Screen中使用滚动条 51

4.4 使用命令按钮响应用户操作 52

4.4.1 创建命令按钮 52

4.4.2 设置命令按钮的响应函数 53

4.4.3 使用命令按钮的例子 53

4.5 使用文本框(TextBox)输入信息 54

4.5.1 创建一个文本框 54

4.5.2 文本框的演示例子 55

4.6 使用报警显示(Alert)提示信息 58

4.6.1 两类报警:timed和modal 58

4.6.2 如何使用报警 58

4.6.3 演示报警使用的例子 59

4.7 向用户提供选择——列表(List) 60

4.7.1 生成一个列表 60

4.7.2 响应用户对列表的操作 60

4.7.3 使用列表的完整例子 62

4.8 显示或改变值的大小——标尺(Guage) 64

4.8.1 标尺的两种类型——交互标尺和非交互标尺 64

4.8.2 交互式标尺 65

4.8.3 非交互式标尺 66

4.9 有效地校验用户输入 68

4.9.1 监测部件状态的变化——ItemStateListener接口 68

4.9.2 对用户输入的字符进行校验 68

4.9.3 输入电话号码的例子 71

4.10 处理日期和时间(DateField) 73

4.10.1 使用DateField 73

4.10.2 设置正确的日期和时间 74

4.10.3 clearDate()和combineDateTime() 74

4.10.4 使用日期和时间的完整例子 75

4.11 定时执行任务(Timer) 78

4.11.1 定时器——Timer 78

4.11.2 调度任务的方法 79

4.11.3 星空模拟程序 79

4.12 综合例子——股票价格跟踪程序 81

本章小结 84

习题四 84

第5章 J2ME数据库编程 86

5.1 RMS的表——Record Store 86

5.1.1 操作Record Store的方法 86

5.1.2 Record Store的维护信息——Header 88

5.1.3 获得Record Store的其他信息 89

5.1.4 Record Store的限制 89

5.2 在Record Store中操作记录 89

5.2.1 添加记录 90

5.2.2 删除记录 91

5.2.3 修改一条记录 92

5.2.4 监视记录的改变 95

5.2.5 Record Store中记录号的重用问题 97

5.2.6 使用RecordEnumeration遍历记录 98

5.3 创建多列表格 101

5.3.1 编码和解码的方法 101

5.3.2 多列表格的保存 102

5.3.3 检索多列表格 104

5.4 使用RecordComparator对记录进行排序 105

5.4.1 实现RecordComparator接口 105

5.4.2 数据库排序的例子 105

5.5 使用RecordFilter查找记录 108

5.5.1 实现RecordFilter接口 108

5.5.2 查找记录的例子 109

5.6 高效使用RMS的方法 112

5.6.1 减少写记录次数 112

5.6.2 减少读记录次数 113

5.6.3 防止出现“抖动” 114

5.6.4 重用数组 114

5.6.5 高效率使用RMS的例子 115

本章小结 118

习题五 119

第6章 J2ME的网络编程 121

6.1 J2ME的网络连接框架 121

6.1.1 J2ME的网络连接层次 121

6.1.2 J2ME支持的网络协议 122

6.1.3 例子:StreamConnection通信 123

6.2 使用HTTP协议通信概述 124

6.2.1 HttpConnection类 125

6.2.2 例子:访问Web Service 126

6.3 使用HTTP协议发送和接收数据 129

6.3.1 HTTP协议通信模型 129

6.3.2 发送数据的方法 130

6.3.3 接收数据的方法 132

6.3.4 服务器端的程序 133

6.3.5 例子1:使用HTTP协议发送和接收文本数据 135

6.3.6 例子2:使用HTTP协议发送二进制数据 138

6.4 网络通信中的数据加密 141

6.4.1 MIDlet的安全性 141

6.4.2 使用加密类库 141

6.4.3 一个加密类——Encryptor 142

6.4.4 Encryptor的使用 144

6.4.5 数据加密的完整例子 144

6.5 网络通信中的常用实例 147

6.5.1 从Web服务器上取回一个页面 147

6.5.2 从移动电话上访问Servlet并获得结果 149

6.5.3 与Web服务器建立socket连接 150

6.5.4 从Yahoo获得股票信息 151

6.5.5 Google Map API的使用 155

本章小结 158

习题六 159

第7章 J2ME应用程序的性能优化 160

7.1 代码优化的一些基准 160

7.1.1 内存测试基准 160

7.1.2 时间测试基准 161

7.2 优化内存使用 161

7.2.1 创建和删除对象 161

7.2.2 字符串和字符串缓存 162

7.2.3 正确处理内存不足 162

7.3 优化代码运行速度 163

7.3.1 优化循环 163

7.3.2 使用数组代替对象 163

7.3.3 使用缓存I/O 163

7.3.4 主动清理内存 164

7.4 用户界面的优化 164

7.4.1 显示程序运行的进度 165

7.4.2 开发易于使用的程序 165

7.5 合理地打包应用程序 165

7.5.1 仅仅打包使用的代码 165

7.5.2 使用代码加密保护程序 165

7.6 J2ME的程序兼容性 166

7.6.1 J2ME的程序兼容性 166

7.6.2 JSR介绍 166

7.6.3 JSR兼容性的测试工具 169

本章小结 171

习题七 171

第8章 kAWT编程 172

8.1 在J2ME中使用kAWT 172

8.1.1 在J2ME Wireless Toolkit中使用kAWT 172

8.1.2 命令行方式使用kAWT 173

8.1.3 KawtHello的分析 174

8.1.4 定制编译kAWT类库 175

8.2 kAWTAPI简介 175

8.3 kAWT编程例子 176

本章小结 181

习题八 181

第三篇 高级编程技巧 182

第9章 J2ME的低级用户界面设计 182

9.1 低级用户界面设计概述 182

9.1.1 屏幕显示的基础——Canvas类 182

9.1.2 使用Canvas类的“Hello,World!”例子 183

9.1.3 程序退出的方法 183

9.2 HappyPush——一个详细的例子 185

9.2.1 绘画出屏幕背景 185

9.2.2 响应用户操作 185

9.2.3 使用Image类画出图像 186

9.2.4 响应重复按键或指针移动事件 187

9.3 编写MIDlet的启动画面 191

9.3.1 使用报警的方法 191

9.3.2 使用Canvas类绘制启动画面 193

9.4 编写一个屏幕保护程序 195

9.4.1 如何实现ScreenSaver 195

9.4.2 ScreenSaver的代码 196

9.5 清除屏幕显示内容 199

9.5.1 清除屏幕的实现原理 199

9.5.2 清屏程序的例子 199

9.6 图片处理的例子 201

9.6.1 显示网络上下载的Png图片 201

9.6.2 如何实现滚动显示图像 204

本章小结 210

习题九 211

第10章 J2ME游戏程序设计 213

10.1 在移动电话上开发游戏需要讨论的问题 213

10.1.1 在移动电话上开发游戏的限制 213

10.1.2 开发游戏有利的方面 214

10.2 游戏编程基本技术 214

10.2.1 MIDlet的基本结构 214

10.2.2 使用Canvas对象绘制图形 214

10.3 响应游戏中用户的按键 215

10.3.1 按键事件 215

10.3.2 游戏按键 215

10.3.3 响应键盘事件 215

10.3.4 使用通用按键 217

10.4 使用重复按键简化用户输入 218

10.4.1 判断系统是否支持重复按键 219

10.4.2 模拟重复按键 219

10.4.3 演示重复按键的例子 220

10.4.4 实现连续移动 227

10.4.5 实现加速移动 227

10.4.6 演示连续移动和加速移动的例子 229

10.5 在程序中实现屏幕滚动 237

10.5.1 定时器 237

10.5.2 用定时器实现重复按键 237

10.5.3 使用定时器实现屏幕滚动 238

10.6 实现镜头的移动 241

10.6.1 屏幕滚动和镜头移动 242

10.6.2 镜头移动的实现 242

10.7 在游戏程序中绘制精灵 245

10.7.1 在支持透明图形的系统上实现绘制精灵 245

10.7.2 在不支持透明图形的系统中实现绘制精灵 246

10.8 井字棋的例子 249

10.8.1 井字棋介绍 249

10.8.2 源代码 249

10.9 网络游戏编程 254

10.9.1 网络游戏介绍 254

10.9.2 数据通信的方法 254

10.9.3 简单的网络游戏——NumberPick 255

10.9.4 服务器端的代码 258

本章小结 260

习题十 261

第11章 J2ME的无线消息处理 263

11.1 无线消息与WMA 263

11.1.1 无线消息技术常用术语 263

11.1.2 无线消息传递方式 263

11.1.3 WMA技术 264

11.2 WMA应用示例 264

11.2.1 收发SMS文本短信示例 264

11.2.2 接收CBS文本消息示例 269

11.3 建立WAP和GPRS连接 272

11.3.1 WAP和GPRS简介 272

11.3.2 建立WAP和GPRS连接 272

本章小结 272

习题十一 273

第12章 J2ME的移动多媒体程序设计 274

12.1 MMAPI简介 274

12.1.1 MMAPI中的重要成员 274

12.1.2 MMAPI与MIDP 2.0多媒体API的区别 275

12.1.3 Player的生命周期 275

12.1.4 设备系统多媒体属性 276

12.1.5 MMAPI编程基础 276

12.2 MMAPI编程示例 277

12.2.1 使用单音(Tone) 277

12.2.2 单音序列音乐 279

12.2.3 使用音频资源 281

12.2.4 播放视频资源 282

12.2.5 音频采集 284

12.2.6 视频采集——照相 285

本章小结 285

习题十二 286

第13章 移动软件设计技术 287

13.1 软件体系和计算模型 287

13.1.1 B/S移动计算模型 287

13.1.2 B/S和C/S混合移动计算模式 288

13.2 基于B/S代理的移动计算模型 289

13.3 基于移动Agent的移动计算模型 291

13.3.1 移动Agent的概念 291

13.3.2 移动Agent的优点 291

13.3.3 移动Agent技术的关键问题 291

13.3.4 移动Agent计算模型 292

13.3.5 移动Agent计算模型的特点 293

13.3.6 移动Agent系统的体系结构 293

13.3.7 移动Agent技术的应用和发展趋势 294

13.4 基于广域网的移动计算模型 295

13.4.1 概述 295

13.4.2 基于移动Agent的广域网普适计算模型 296

13.4.3 移动Agent在广域网中的服务迁移机制 297

13.4.4 移动Agent在广域网中的资源迁移机制 299

13.5 信息推送获取方式和Push 300

13.5.1 MIDlet启动过程 301

13.5.2 PushRegistry类 301

13.5.3 静态注册和动态注册 301

13.5.4 监听与启动 303

13.5.5 处理数据 303

13.5.6 动态注册与基于计时器的Push 304

本章小结 305

习题十三 305

第四篇 应用实例分析 306

第14章 手机日志系统的设计和实现 306

14.1 手机日志系统的设计目的与工作现状 306

14.2 系统总体设计 306

14.2.1 系统设计目标 307

14.2.2 系统设计思路 307

14.2.3 系统总体架构 307

14.2.4 系统流程图 309

14.3 服务器端的设计 310

14.3.1 数据库存储层设计 311

14.3.2 Web服务器子系统设计 312

14.3.3 服务器端的代码实现和分析 312

14.4 客户端设计 314

14.4.1 手机客户端程序设计 315

14.4.2 界面设计 316

14.4.3 程序的运行流程 319

14.4.4 手机客户端的代码实现和分析 320

本章小结 321

习题十四 322

第15章 手机考试系统的设计和实现 323

15.1 系统总体设计架构 323

15.1.1 客户端模块管理 324

15.1.2 数据库管理模块 325

15.1.3 题库系统管理模块 325

15.2 试卷设计 325

15.2.1 创建试卷 326

15.2.2 根据用户手机号码查询试卷 327

15.2.3 手机端从服务器端下载题目 328

15.2.4 用户查看以往考试成绩 329

15.3 系统的实现流程 329

15.3.1 客户端流程 330

15.3.2 数据库端流程 331

15.3.3 数据库结构 331

15.4 系统测试和运行效果 333

15.4.1 数据库端运行效果 333

15.4.2 客户端运行效果 335

本章小结 336

习题十五 336

附录 习题参考答案 337

参考文献 343

参考资料 344