王朝百科
分享
 
 
 

OPhone应用开发权威指南

王朝百科·作者佚名  2010-09-03  
宽屏版  字体: |||超大  

图书信息作者:丛书主编:中国移动通信研究院院长 黄晓庆

OPhone应用开发权威指南

詹建飞 田 淼 吴 博 吕志虎 编著

出 版 社: 电子工业出版社

出版时间: 2009-12-1

页数:480页

开本: 16开

ISBN 978-7-121-09735-5

分类: 图书>> 移动开发

估价:58.00元(含光盘1张)

内 容 简 介本书系统地介绍了OPhone平台的体系结构、应用程序开发流程和调试技巧、OPhone应用程序开发中涉及的主要模块。全书结合30多个经典案例,阐述了OPhone平台的运行环境、应用程序模型、用户界面与图形引擎、数据持久化存储方案、移动多媒体框架、Service、联网接口、高级通信技术以及访问硬件层能力等内容。在介绍OPhone这一崭新的移动开发平台的同时,作者融入了大量经典设计模式、工程项目开发技巧的介绍,使得本书在实际项目开发中具有重要的参考价值。

本书适合有一定Java编程基础,希望从Symbian、Java ME或者Windows Mobile等平台过渡到OPhone平台的软件开发人员阅读,也可以作为高校师生的参考教材。

本书特色全书结合30多个经典案例,阐述了OPhone平台的运行环境、应用程序模型、用户界面与图形引擎、数据持久化存储方案、移动多媒体框架、Service、联网接口、高级通信技术以及访问硬件层能力等内容。

在介绍OPhone这一崭新的移动开发平台的同时,作者融入了大量经典设计模式、工程项目开发技巧的介绍,使得本书在实际项目开发中具有重要的参考价值。

丛书介绍“中国移动创新系列丛书”的目标是:加强基础理论与企业应用及行业发展的聚合力,展现先进文化思想,推动产业科技创新。这套丛书在科学理论与产业应用之间的成功结合填补了国内图书市场相关领域的空白,全层面多角度适应了广大读者的渴求,对于提高社会大众对我国信息通信产业的理解,增强工业界对信息通信业发展愿景的关注度,培养业内各类技术和管理人才都具有十分重要的战略和实践意义。

作者介绍丛书主编:黄晓庆

现任中国移动通信研究院院长,在信息通信业拥有超过25年的从业经验,在信息通信各个领域都具有丰富的经验和独到的见解,是技术创新的倡导者和践行者。带领中国移动研发团队在国际标准化、科技创新、终端平台开放、基础网络架构、融合新业务等方面引领了行业发展。发起设立了“中国移动创新系列丛书”出版项目。

作者是OPhone研发团队一线开发人员

詹建飞,中国移动通信研究院终端技术研究所项目经理,毕业于北京邮电大学,硕士。6年Java编程经验,熟悉 Java ME、Symbian、OPhone等多种移动开发平台,具有丰富的客户端软件开发和设计经验,先后出版了《J2ME开发精解》和《Java ME核心技术与最佳实践》等书籍。

田淼,中国移动通信研究院终端所项目经理,毕业于大连理工大学。长期从事互联网研发及手机终端软件研发,在J2EE、互联网技术及OPhone技术方面有丰富的经验。在中国移动通信研究院,主要从事互联网社区建设及OPhone系统研发,对OPhone UI系统有深入研究。

吴博,中国移动通信研究院项目经理,硕士毕业于华中理工大学,通信与信息系统专业,拥有多年VxWorks/Linux环境下的开发经验,申请专利3项。现专注于OPhone软件平台的研究、数据业务的运营及开发,负责制定中国移动快讯业务终端规范。

吕志虎,中国移动通信研究院OPhone项目负责人。硕士毕业于重庆邮电大学。8年移动终端研发及项目管理经验,负责OPhone总体技术、产品设计等工作,曾多次荣获中国移动通信集团科技进步奖和国家标准化协会奖。

前 言本书主要为在OPhone平台上开发应用程序的开发者提供指导,帮助读者快速熟悉OPhone平台的体系结构、应用程序模型,掌握OPhone应用程序开发所需的主要知识。尽管设计模式、多媒体和网络通信协议等内容不是本书的介绍重点,但是考虑到这些知识对实际项目开发有重要的参考意义,笔者将其作为OPhone应用开发的外延和补充,融入到各个章节中,目的是呈献给读者一本内外兼修的“权威指南”。

伴随各种智能终端平台发展的关键词是“设备分裂”和“功能受限”。设备分裂导致一款应用程序可能需要多次移植才可能覆盖尽可能多的终端设备,为了适配软件环境和硬件参数的差异,源代码中可能包含了大量的if/else语句,甚至是宏标记,使得代码难以维护;功能受限使得开发者巧妇难为无米之炊,如果平台没有提供所需要的API,那么再好的想法也只能是空想。在设计之初,OPhone平台就考虑到了上述问题。OPhone包含了丰富的本地库,并将这些底层接口通过JNI提供给应用程序开发者,在OPhone平台上编写应用程序会有一种如鱼得水、游刃有余的感觉。丰富的API、强大的功能在一定程度上避免了在API层面造成设备分裂;在资源管理方面,OPhone也是尽善尽美,良好的设计节省了大量代码维护和设备适配的工作。关于OPhone平台的优点,这里不再一一列举,读完本书您会喜欢上在OPhone上开发应用程序。

本书主要内容

结合丰富的案例,系统全面地介绍OPhone应用程序开发的知识是本书追求的目标。全书包括的30多个案例,其中不乏俄罗斯方块、铃声DIY等完整的案例,是学习OPhone应用程序开发的重要参考。在内容安排上,不但详细地介绍了OPhone应用程序开发的主要内容,包括Activity、Service、Content Provider和BroadcastReceiver,还在多媒体、联网应用程序开发中适当深入,帮助读者提高工程项目的开发能力。本书共有11章,主要内容如下:

第1章“OPhone平台概述”,介绍了OPhone平台的体系结构、OPhone SDK和OPhone开发者社区。除此之外,还介绍了Mobile Market的商务合作流程。

第2章“OPhone开发环境和流程”,主要介绍了如何搭建OPhone应用程序开发环境和开发流程。其中,调试技巧和OPhone SDK提供的工具是应用程序开发过程中的有益补充。

第3章“OPhone应用程序模型”,深入介绍了OPhone应用程序的运行环境、OPhone应用程序的组成部分,包括Activity、Service、Content Provider和BroadcastReceiver,以及OPhone的安全体系和数字签名。

第4章“图形用户界面”,深入介绍了OPhone的用户界面接口和2D图形引擎,包括XML布局文件、事件处理、常用UI组件、自定义View、动画和资源文件管理等。

第5章“OpenGL ES编程”,深入介绍了OPhone平台的OpenGL ES编程,包括OpenGL ES设计准则、3D空间观察与变换、颜色和光照、纹理贴图、帧缓存操作、反走样及EGL使用等。

第6章“数据持久化存储”,介绍了OPhone平台提供的文件、Preference、关系型数据库SQLite和Content Provider四种数据持久化存储方案。

第7章“移动多媒体编程”,介绍了OPhone平台的多媒体框架,如何使用OPhone提供的音频和视频的播放、音频的录制等功能开发丰富多彩的移动多媒体应用程序。最后还深入分析了MP3文件格式,提供了MP3文件切割的解决方案。

第8章“让程序在后台运行”,深入介绍了OPhone平台的Service组件,包括如何创建和启动Service,如何在单独线程处理耗时的任务,如何使用AIDL语言等。

第9章“访问网络数据和服务”,主要介绍了OPhone平台连接互联网的能力,重点介绍了基于HTTP的联网应用程序开发。除了介绍开发联网应用程序常见的API之外,还介绍了设计通信数据格式及内容编码检测等高级话题。

第10章“高级通信技术”,主要介绍了OPhone平台提供的通信层API,借助这些API可以方便地访问电话和短信等功能。

第11章“访问硬件层”,介绍了如何使用OPhone提供的API访问设备的硬件层,包括Camera、位置服务和传感器。

如何使用光盘中的代码

本书的案例代码全部基于Eclipse开发完成,读者可以参考附录A“如何导入源代码”将案例导入到Eclipse中。

OPhone开发者的财富之路

中国移动推出的Mobile Market为开发者提供了广阔的发展空间,而OPhone作为Mobile Market支持的旗舰平台有着非凡的“钱”景。开发者可以免费注册成为中国移动的开发者用户,编写OPhone应用程序并上传到Mobile Market,你的应用将可以被中国移动的5亿用户下载使用,销售收入的70%归开发者所有。本书将是OPhone开发者通往财富之路的一把钥匙。

OPhone开发者社区

读者在阅读本书过程中,如果有任何疑问,都可以登录OPhone开发者社区寻求帮助。OPhone开发者社区提供最新的SDK下载、在线技术文档、论坛和博客等多项服务,目的是加强开发者之间的交流,提高开发者的能力。相信您在阅读过程中遇到的问题可以在OPhone开发者社区及时地得到解决。

目 录第1章 OPhone平台概述 1

1.1 OPhone的由来 1

1.1.1 移动互联网模式的转变 1

1.1.2 手机应用商店的崛起 2

1.1.3 OPhone的诞生 2

1.2 OPhone的架构 3

1.2.1 Linux内核 3

1.2.2 本地库 4

1.2.3 OPhone运行环境 5

1.2.4 Widget运行环境 1.2.5 应用程序框架 6

1.2.6 应用程序 7

1.3 开发OPhone应用程序 7

1.3.1 开发语言 7

1.3.2 OPhone SDK 8

1.3.3 OPhone开发者社区 8

1.4 将OPhone应用上传到Mobile Market 9

1.4.1 Mobile Market的商业模式 9

1.4.2 Mobile Market发布流程 10

1.5 小结 13

第2章 OPhone开发环境和流程 14

2.1 安装Eclipse和ODT 14

2.1.1 安装Java SDK 14

2.1.2 安装Eclipse 15

2.1.3 安装OPhone SDK 15

2.1.4 安装和配置ODT插件 16

2.2 第一个OPhone应用程序 18

2.2.1 新建OPhone项目 18

2.2.2 运行OPhone项目 20

2.2.3 更新资源文件 22

2.3 调试OPhone应用程序 26

2.3.1 设置断点 27

2.3.2 启动调试 27

2.3.3 单步跟踪 28

2.4 在命令行下开发OPhone程序 29

2.4.1 创建项目 29

2.4.2 用Ant编译项目 30

2.4.3 运行应用程序 31

2.5 OPhone SDK介绍 32

2.5.1 OPhone模拟器 32

2.5.2 模拟SD卡 33

2.5.3 ADB 34

2.5.4 DDMS 35

2.6 小结 36

第3章 OPhone应用程序模型 37

3.1 OPhone应用程序基础 37

3.1.1 OPhone应用程序运行环境 37

3.1.2 OPhone应用程序的组成 38

3.2 Activity 44

3.2.1 Activity创建与声明 45

3.2.2 Activity的生命周期 50

3.2.3 启动Activity 56

3.2.4 Activity和Task 60

3.3 Content Provider 63

3.4 BroadcastReceiver 66

3.5 Service 68

3.6 安全与许可 68

3.6.1 安全架构 68

3.6.2 许可 69

3.7 数字签名 72

3.7.1 签名策略 72

3.7.2 签名步骤 73

3.8 小结 74

第4章 图形用户界面 75

4.1 用户界面概述 75

4.1.1 手机软硬件特性的发展 75

4.1.2 如何影响应用程序开发 76

4.1.3 OPhone图形引擎 76

4.2 用户界面设计 77

4.2.1 声明布局文件 77

4.2.2 编写XML文件 77

4.2.3 加载XML文件 79

4.2.4 将数据绑定到AdapterView 79

4.2.5 创建菜单 80

4.2.6 创建Dialog 83

4.2.7 通知用户 85

4.2.8 处理用户输入 86

4.2.9 样式与主题 87

4.3 常用Widget 89

4.3.1 TextView 89

4.3.2 Button 91

4.3.3 ImageView 93

4.3.4 ProgressBar 94

4.3.5 DatePicker/TimePicker 97

4.3.6 GridView 98

4.3.7 Spinner 101

4.3.8 Gallery 102

4.3.9 TabHost 104

4.4 高级图形用户界面技术 107

4.4.1 图形系统类结构 107

4.4.2 常用布局类 110

4.4.3 绘制图形 117

4.4.4 构建自己的组件 126

4.5 图形动画 133

4.5.1 Animation 134

4.5.2 Interpolator 139

4.5.3 AnimationSet 140

4.5.4 自定义动画 141

4.6 Resource介绍 146

4.6.1 资源类型 146

4.6.2 使用资源 147

4.6.3 资源适配 149

4.7 俄罗斯方块实例 150

4.7.1 方块的数据结构 150

4.7.2 方块渲染 153

4.7.3 游戏区域设计 155

4.7.4 碰撞检测 159

4.7.5 输入处理 161

4.7.6 积分排行榜 163

4.8 小结 164

第5章 OpenGL ES编程 165

5.1 OpenGL ES概述 165

5.1.1 OpenGL ES设计准则 165

5.1.2 OpenGL ES 与OpenGL的不同 166

5.1.3 一个简单的OpenGL ES程序 169

5.2 3D观察与变换 172

5.2.1 一个简单的例子:绘制立方体 172

5.2.2 理解变换 178

5.2.3 投影变换 180

5.2.4 视口变换 182

5.2.5 矩阵堆栈 183

5.3 绘制图元 183

5.3.1 图元种类 183

5.3.2 指定顶点数据 185

5.3.3 绘制图元 189

5.4 颜色和光照 189

5.4.1 设置颜色和材质 190

5.4.2 光照 191

5.5 光栅化和片元处理 196

5.5.1 背面剪裁 196

5.5.2 纹理映射 196

5.5.3 雾 208

5.5.4 反走样 210

5.5.5 像素测试 212

5.5.6 将片元合并到颜色缓存 215

5.6 帧缓存操作 219

5.6.1 清空缓存 219

5.6.2 读取颜色缓存 219

5.6.3 强制完成绘图指令 220

5.7 其他 220

5.7.1 行为控制函数 220

5.7.2 状态查询 221

5.8 EGL简介 221

5.9 小结 225

第6章 数据持久化存储 226

6.1 文件存储 226

6.1.1 存储至默认文件夹 227

6.1.2 存储至指定文件夹 229

6.1.3 存储至SD卡 230

6.1.4 读取资源文件 231

6.2 SharePreference 232

6.3 SQLite 237

6.3.1 创建数据库 237

6.3.2 SQLiteOpenHelper 240

6.3.3 创建触发器 243

6.3.4 创建索引 244

6.3.5 创建视图 245

6.3.6 操作数据 246

6.3.7 将Cursor绑定到AdapterView 253

6.4 Content Provider 258

6.4.1 概述 258

6.4.2 Content Provider加载机制 259

6.4.3 创建Content Provider 260

6.4.4 Content Provider更新的通知机制 270

6.4.5 DAO接口及实现 272

6.4.6 在新线程内处理数据 273

6.5 小结 276

第7章 移动多媒体编程 277

7.1 多媒体文件格式与编码 277

7.1.1 多媒体文件格式 277

7.1.2 编码 278

7.1.3 OPhone平台支持的媒体格式 279

7.1.4 选择合适的媒体文件 280

7.2 音频和视频播放 280

7.2.1 三种不同的数据源 281

7.2.2 MediaPlayer的状态 284

7.2.3 音乐播放器实例 287

7.2.4 播放视频 299

7.3 录制音频 302

7.3.1 MediaRecorder的状态图 302

7.3.2 录音器实例 304

7.4 MP3文件格式分析 309

7.4.1 MP3文件介绍 310

7.4.2 ID3V1标签 310

7.4.3 ID3V2标签 313

7.4.4 MP3帧结构 319

7.4.5 分割MP3文件 326

7.5 案例分析——铃声DIY 330

7.5.1 切割MP3 330

7.6 小结 332

第8章 让程序在后台运行 333

8.1 Service概述 333

8.2 Service编程实践 334

8.2.1 创建Service 334

8.2.2 启动和停止Service 336

8.2.3 通知用户 338

8.2.4 不阻塞用户操作 340

8.2.5 Service与Activity通信 346

8.3 后台播放音乐 348

8.3.1 跨进程调用 348

8.3.2 创建AIDL接口文件 349

8.3.3 实现AIDL接口 350

8.3.4 绑定Service 354

8.3.5 调用IPC方法 355

8.4 小结 356

第9章 访问网络数据和服务 357

9.1 HTTP协议简介 357

9.1.1 HTTP协议的主要特点 357

9.1.2 HTTP连接过程 358

9.1.3 HTTP消息格式 358

9.2 线程管理 361

9.2.1 匿名Thread 361

9.2.2 java.util.concurrent框架 362

9.2.3 AsyncTask 372

9.3 网络编程接口 376

9.3.1 HttpClient API介绍 376

9.3.2 GET方法的使用和限制 381

9.3.3 使用POST方法上传附件 385

9.3.4 从服务器端下载图片 393

9.4 设计C/S通信数据格式 395

9.4.1 对象序列化 399

9.4.2 使用XML传输对象 404

9.5 小结 412

第10章 高级通信技术 413

10.1 电话 413

10.1.1 电话呼叫 413

10.1.2 监听电话状态 415

10.1.3 查询电话属性 419

10.1.4 读取通话记录 419

10.2 短消息 423

10.2.1 发送短信 424

10.2.2 接收短消息 425

10.3 小结 429

第11章 访问硬件层 430

11.1 访问相机 430

11.1.1 创建Camera对象 430

11.1.2 设置Camera参数 431

11.1.3 预览 432

11.1.4 拍摄照片 432

11.2 访问位置服务 434

11.2.1 创建LocationManager 434

11.2.2 LocationProvider类 435

11.2.3 监听位置更新 436

11.2.4 接近警报 437

11.3 访问传感器 438

11.3.1 SensorManager类 438

11.3.2 监听传感器事件 439

11.3.3 方向传感器应用——指南针 440

11.3.4 模拟传感器 443

11.4 小结 446

附录A 如何导入源代码 447

附录B Resin安装与Servlet部署 449

参考文献 453

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有