首页>参考读物>计算机科学与技术>软件与程序设计

Android程序设计(第2版)
作者 : (美)Zigurd Mednieks, Laird Dornin, G. Blake Meike, Masumi Nakamura 著
译者 : 祝洪凯 李妹芳 译
出版日期 : 2014-06-27
ISBN : 978-7-111-46758-8
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 507
开本 : 16
原书名 : Programming Android
原出版社: OReilly Media, Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书旨在全面了解Android程序设计,学习如何为手机和平板电脑创造最佳用户体验。第2版做了全面修订,重点探讨Android工具和编程基础,包括使用Android 4 API的最佳实践。如果你熟悉Java或Objective-C编程,通过本书,将会了解如何构建良好的工程应用。
本书的内容组织如下:
第一部分会帮助有一定Java或iOS开发经验的编程人员快速入门,了解如何使用Android SDK和Android编程基础。
第二部分会深入Android框架,专注于用户界面和图形类层次结构、并发和数据库。理解这部分内容将为了解Android应用如何工作奠定了坚实的基础。
第三部分介绍代码骨架和模式,理解它们有助于开发使用Web数据以及Android 4 用户界面规范和API的应用开发。
第四部分涵盖一些非常实用的内容,包括Android多媒体、搜索、定位、传感器和账户API,以及原生开发工具箱,支持开发人员添加高级功能。

本书专注于探讨成功的Android开发项目相关的知识和技巧。
Zigurd Mednieks曾是D2 Technologies的首席架构师,现在主要作为咨询顾问为创建基于Android系统和软件的公司提供建议和咨询。
Laird Dornin移动开发架构师,在Java、Android、J2ME、SavaJe和WebKit浏览器库方面有丰富的经验。
G. Blake Meike Amazon高级软件开发工程师,在移动和服务器端平台构建Java应用方面有丰富的经验。
Masumi Nakamura Where Inc.的Big Data和Recommendations组首席架构师,在移动技术领域有丰富的软件工程经验。

“对于那些不但想掌握Android编程且想探索其内部架构的人而言,本书再好不过了。”
——Etienne Savard Amazon.com上对本书 (第1版)的评价

“本书不局限于Android的基础知识,而是深度探讨了各个方面的内容。此外,它重点介绍了Android的数据架构是如何作为使用Web服务的应用的模型,从而实现明显的性能提升以及更好的数据展现。”
——Ajit Jaokar Amazon.com上对本书 (第1版)的评价




封面介绍
本书的封面是一只松雀(Pinicola enucleator)。松雀是雀家族的一员,最大的这种“冬季雀”出现在整个北半球针叶林:阿拉斯加、加拿大、斯堪的纳维亚和西伯利亚。更罕见的是,在冬季,有些松雀会往南飞,直到美国的中西部和新英格兰区域,有时甚至到欧洲温带地区。
长大的松雀非常漂亮。雄性松雀和雌性松雀都萌出了黑色的尾巴和翅膀,翅膀上还有白色的羽边。雄性松雀的羽毛以红色为主,雌性松雀的头部和臀部是橄榄色,背部和腹部是灰色,而年轻的松雀颜色则明显更柔和一些。
松雀主要吃蔬菜类食物,包括芽、种子以及各种水果,虽然它们也会吃昆虫,但实际上一般是给年幼的松雀吃。有趣的是,喂养幼儿的松雀妈妈在嘴巴里会长出专门的“小袋子”,用来把食物送回到窝巢中给小松雀吃。

图书前言

本书旨在帮助你创建良好的能实际使用的Android应用,而不仅仅是一些小的示例应用。
本书适合不同背景的Android编程人员。如果你一直在用Objective-C为iPhone或Mac OS编写应用,你会发现本书介绍的Android工具和Java语言特性等以及Android编程相关内容能够帮助你理解Android移动应用开发。如果你是一名经验丰富的Java编程人员,会发现本书介绍的Android应用架构有助于你在这个新的充满活力的Java客户端应用开发中运用Java专业知识。简而言之,本书面向的是那些在面向对象语言、移动应用、REST应用及类似领域中有一定经验的人。从本书中,可以更深入地了解Android编程,而这些内容远超过入门书或者一些在线的教程所涵盖的内容。
本书组织方式
我们希望能够快速带你掌握本书的内容。本书第一部分将帮你逐步掌握SDK工具,使你能够访问本书的示例代码,通过该部分的SDK介绍,你甚至可以加深对SDK工具、Java和数据库设计的理解。如果你已经对第一部分所涉及的工具和基础知识非常熟悉,则可以跳过该部分直接进入本书第二部分,第二部分的目标是帮助你奠定构建较大型Android应用的基础。
本书的核心是一个应用实例,它使用Web服务给用户传送信息——这种方式用在很多应用的核心。还介绍了一种应用架构,以及一种使用Android框架类的新方法,它们能够帮助你非常高效地使用Android框架类。可以使用这个应用实例作为框架来创建自己的应用,也可以作为学习Android编程的工具。
本书最后一部分介绍Android在特定应用领域的API:多媒体、地理位置、传感器和通信等,从而帮助你在自己感兴趣的领域掌握Android应用编程。
当你阅读完本书时,希望你所掌握的不仅仅是参考资料知识和对一些例子的实践经验。希望你对如何创建优秀的Android应用也能有自己的思路。
本书约定
本书遵循以下字体体例:
斜体(Italic)
表示新的术语、URL、E-mail地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单及段落中的程序单元,如变量或函数名称、数据库、数据类型、环境变量、声明和关键字等。
等宽粗体(Constant width bold)
显示命令或者其他应该由用户逐字输入的文本。
等宽斜体(Constant width italic)
表示必须根据用户提供的值或者由上下文决定的值进行替代的文本。
注意: 这个图标表示提示、建议或一般性注意事项。
警告: 表示和附近文字相关的警告和注意事项。
使用本书的示例代码
本书旨在帮助你完成工作。通常来说,你可以在程序和文档中使用本书的代码。除非你使用了本书的大量代码,否则你无需联系我们获取许可。例如,编写一个用到本书中几段代码的程序就不需要获得许可,销售和分发 O'Reilly 丛书的代码CD-ROM需要获得许可,引用本书的示例代码来解决一个问题不需要获得许可,在你的产品文档中使用本书的大量代码需要获得许可。
我们不要求你引用本书时给出出处,但是如果你这么做,我们会对此表示感谢。出处通常包含标题、作者、出版社和 ISBN。例如:“Programming Android, Second Edition,by Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura. Copyright 2012 O扲eilly Media, Inc., 978-1-449-31664-8.”
如果你觉得你对本书示例代码的使用超出了这里给出的许可范围,请与我们联系:permissions@oreilly.com。
联系我们
有关本书的任何建议和疑问,可以通过下列方式与我们取得联系:
美国:
O'Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们会在本书的网页中列出勘误表、示例和其他信息。可以通过http://oreilly/prog_android_2e访问该页面。
要评论或询问本书的技术问题,请发送邮件到:
bookquestions@oreilly.com
有关我们的书籍、会议、资源中心以及O扲eilly网络,可以访问我们的网站:
http://www.oreilly.com
http://www.oreilly.com.cn
在Facebook上联系我们:http://facebook.com/oreilly
在Twitter上联系我们:http://twitter.com/oreillymedia
在You Tube上联系我们:http://youtube.com/oreillymedia
致谢
本书的部分内容改编自作者以前出版的《Android Application Development》一书(O'Reilly)。
本书的草稿发布在O扲eilly开放源反馈发布系统(OFPS)上,以便得到读者的反馈,我们希望了解本书是否以及如何满足读者的需求。我们非常感谢参与OFPS的读者,我们感谢他们纠正了我们的错误,提高我们的写作水平。公开审校草稿将成为未来版本中的一部分,我们欢迎您对本书提出的任何意见。
Zigurd Mednieks
我非常感谢我的妻子Terry以及孩子们Majijia和Charles,感谢你们体谅我为了写本书而牺牲了很多陪伴你们的时间。本书之所以得以出版,要归功于我们的代理商Carole Jelen(Waterside Productions)提议出版本书以及Mike Hendrickson(O'Reilly)启动了该项目。编辑Brian Jepson和Andy Oram的组织和努力才有了本书的产出。感谢Johan Van der Hoeven,他对本书提出了很多意见,使得本书更准确简洁。感谢所有使用OFPS帮助本书改进的所有热心读者!
Laird Dornin
感谢我的妻子Norah鼓励我参与本书,虽然她对写书要付出的巨大努力并不了解。Acadia旅行、New Hampshire旅行以及无数个夜晚埋头工作,都是美好的回忆。很高兴,本书没有耽误我们更重要的“项目”——美丽的女儿Claire来到了我们身边。感谢编辑Andy以及本书的其他作者给予我这个机会。感谢Larry审查本书,并鼓励我致力于本书的写作。最后,感谢我们的主编Vijay和Johan,你们为改进本书内容指明了方向。
G. Blake Meike
感谢我们的代理商Carole Jelen(Waterside Productions),没有他的提议,本书还只会停留在一个好想法上。感谢编辑Brain Jepson和Andy Oram,处事总是那么优雅。本书还要归功于Johan Van der Hoeven和Vijay Yellapragada的技术审查;还要感谢Sumita Mukherji、Adam Zaremba,O扲eilly团队的其他成员。感谢那些通过O扲eilly的OFPS,给我们提出很多充满智慧的评论并指出错误的热心读者。感谢大家!与其他三位作者共同完成本书实在是我的荣幸。最后,永远感谢我的妻子Catherine,在我风调雨顺的时候给我忠告,在黑暗时期陪我度过困难。当然,本书的工作还在继续。
Masumi Nakamura
感谢我的朋友和家庭对我因为本书需要作出的付出的理解。尤其感谢Jessamyn,感谢你一直陪伴我这么多年!感谢Brian和Andy为编写和出版本书给了很多宝贵的建议。感谢其他作者带我一起参与本书写作。感谢WHERE公司的所有人对我技术上的热心帮助。最后,感谢本书的读者以及Android开发人员,你们的辛勤工作使得Android成为一个伟大的平台!

上架指导

计算机\程序设计

封底文字

Android 程序设计
本书旨在全面了解Android程序设计,学习如何为手机和平板电脑创造最佳用户体验。本书(第2版)做了全面修订,重点探讨Android工具和编程基础,包括使用Android 4 API的最佳实践。如果你熟悉Java或Objective-C编程,通过本书,将会了解如何构建良好的工程应用。
Android程序设计(第二版)的内容组织如下:
第一部分会帮助有一定Java或iOS开发经验的编程人员快速入门,了解如何使用Android SDK和Android编程基础。
第二部分会深入Android框架,专注于用户界面和图形类层次结构、并发和数据库。理解这部分内容为了解Android应用是如何工作奠定了坚实的基础。
第三部分介绍代码骨架和模式,理解它们有助于开发使用Web数据以及Android 4 用户界面规范和API的应用开发。
第四部分涵盖一些非常实用的内容,包括Android多媒体、搜索、定位、传感器和账户API,以及原生开发工具箱,支持开发人员添加高级功能。
Android程序设计(第2版)专注于探讨成功的Android开发项目相关的知识和技巧。

“对于那些不但想掌握Android编程且想探索其内部架构的人而言,本书再好不过了。”
——Etienne Savard
Amazon.com上对本书(第1版)的评价

“本书不局限于Android的基础知识,而是深度探讨了各个方面的内容。此外,它重点介绍了Android的数据架构是如何作为使用Web服务的应用的模型,从而实现明显的性能提升以及更好的数据展现。”
——Ajit Jaokar
Amazon.com上对本书(第1版)的评价

作者简介

(美)Zigurd Mednieks, Laird Dornin, G. Blake Meike, Masumi Nakamura 著:暂无简介

译者简介

祝洪凯 李妹芳 译:暂无简介

图书目录

前言 1
第一部分 工具和基础
第1章 Android SDK的安装和系统需求 7
Android SDK的安装和系统需求 7
小试牛刀:确认安装是否能够正常工作 16
SDK的组件 24
保持版本最新 30
示例代码 32
关于代码阅读 34
第2章 Android开发之Java必备基础 35
Android正在重塑客户端Java 35
Java类型系统 36
作用域 57
Java编程惯例 61
第3章 Android应用的主要组件 76
活动、意图和任务 77
其他Android组件 79
组件生命周期 83
静态应用资源和上下文 86
Android应用时运行的环境 94
扩展Android 97
Android中的并发编程 102
序列化 116
Parcelable 118
第4章 应用发布之前的准备工作 124
应用签名 124
把应用投放到Android市场 132
其他发布 134
Google地图API密钥 138
指定API级别的兼容性 139
兼容不同的屏幕类型 139
第5章 Android软件开发工具Eclipse 141
Eclipse相关的概念和术语 142
Eclipse视图和透视图 146
Eclipse中的Java编程 149
Eclipse和Android 151
预防Bug并保持代码整洁 151
Eclipse特性和替代品 159
第二部分 Android框架
第6章 构建视图 163
Android GUI架构 163
组装图形界面 167
控制器布局 172
菜单栏和活动栏 190
视图调试和优化 193
第7章 Fragment和跨平台支持 195
创建Fragment 196
Fragment生命周期 199
Fragment管理器 200
Fragment事务 201
Support Package 206
Fragment和布局 207
第8章 二维和三维图形的绘制 214
自己动手开发部件 214
Bling 235
第9章 数据处理和数据持久化 249
关系数据库概览 249
SQLite 250
SQL语言 250
Android应用中的SQL和数据库为中心的数据模型 260
Android数据库类 261
Android应用的数据库设计 262
使用数据库API:MJAndroid 265
第三部分 Android的框架应用
第10章 运行良好的应用框架 279
对生命周期进行可视化 279
Fragment生命周期可视化 290
Activity类和运行良好的应用 293
Application类的生命周期方法 294
第11章 构建用户界面 297
Top-Level设计 298
用户界面的可视化编辑 300
从白板开始 301
Fragment布局 305
折叠和展开可扩展的UI界面 307
使得Activity、Fragment、Action Bar和多布局能够一起工作 314
其他活动 317
第12章 使用内容提供者 321
理解内容提供者 322
定义提供者的公用API 325
编写并集成内容提供者 330
文件管理和二进制数据 331
Android MVC和内容查看器 333
一个完整的内容提供者代码:SimpleFinchVideoContentProvider 334
声明自己的内容提供者 342
第13章 内容提供者作为RESTful Web服务的Facade 343
开发RESTful类型的Android应用 344
Network MVC 345
Network MVC方式的优点小结 346
代码实例:动态列出并缓存YouTube视频内容 348
Finch YouTube视频示例的源代码结构 348
视频搜索应用的各个步骤 349
步骤1:UI获取用户输入 350
步骤2:控制器监听事件 350
步骤3:控制器调用内容提供者(即模型)的managedQuery 351
步骤4:实现RESTful请求 351
第四部分 高级话题
第14章 搜索 373
搜索界面 373
查询建议 382
第15章 地理位置和地图定位 389
基于地理位置的服务 390
地图定位 391
Google Maps Activity 391
MapView和MapActivity 392
使用MapView 392
MapView和MyLocationOverlay初始化 393
暂停和恢复MapActivity 396
通过菜单按钮控制地图 397
通过键盘操作地图 399
没有地图的地理位置 400
街景(StreetView) 408
第16章 多媒体 410
音频和视频 410
播放音频和视频 411
录制音频和视频 415
存储的媒体内容 421
第17章 传感器、NFC、语音、手势和可访问性 422
传感器 422
近场通信 427
手势输入 438
可访问性 440
第18章 通信、身份认证、同步和社交媒体 442
账户信息 442
认证和同步 445
蓝牙 460
第19章 Android本地开发工具箱 476
本地方法和JNI调用 477
Android NDK 478
NDK提供的本地库文件和头文件 482
编译自己定制的库模块 484
本地Activity 487

教学资源推荐
作者: [美]Samuel P.Harbison Ⅲ,Guy L.Steele
作者: (美)Robert W.Sebesta
作者: [美]戴维 I. 施奈德(David I. Schneider) 著
参考读物推荐
作者: (美)Steven L.Halter, Steven J.Munroe
作者: [美]埃里克·S. 罗伯茨 (Eric S. Roberts) 著
作者: (美) Bruce Powel Douglass 著