Android 4高级编程

出版社:清华大学出版社
出版日期:2013-4-1
ISBN:9787302315582
作者:(美)迈耶(Meier, R.) 著
页数:703页

前言

对移动开发人员来说,现在是一个令人心潮澎湃的时代。手机从来没有像今天这样流行,强大的智能手机产品已经为消费者所普遍接受,而且Android生态系统已经扩展到了平板电脑和电视设备,进一步增加了您的Android应用程序的受众。现在,外观时尚且用途广泛的手机带有GPS、加速计、NFC和触摸屏等硬件功能,并且具有固定费率且定价合理的数据计划,因此,它们成为了吸引越来越多的开发者创建各种新颖有趣的Android应用程序的平台。Android为移动应用程序开发提供了一个开放的平台。因为没有了人为制造的障碍,所以Android开发人员可以自由地编写能够充分利用日益强大的手机硬件的应用程序,并在一个开放的市场上销售它们。因此,随着移动设备的销售量不断增长,开发者对Android设备的兴趣也出现了爆炸性的增长。截止到2012年,市场上有数百个手机和平板电脑OEM,包括HTC、Motorola、LG、Samsung、ASUS和Sony Ericsson。有超过3亿的Android设备已被激活,并且这个数字仍在以每天新激活850000个设备的速度增长。通过使用Google Play,开发人员可以利用开放的市场向所有兼容的Android设备发布免费或者收费的应用程序,而不需要经历审查过程。Android构建在一个开源框架之上,并且有强大的SDK库,已经使开发人员在Google Play上发布了超过450000个应用程序。本书将指导你使用Android SDK的版本4来构建移动应用程序。每章的讲解将通过一系列示例项目帮助你逐步掌握Android中的各种新功能和技术,以便你能够最大限度地利用Android。本书介绍了Android编程入门所需的所有基础知识,同时为有经验的移动开发人员讲解了如何利用Android的独特功能来增强现有应用程序或者创建新的、创造性的应用程序。Google的理念是尽快发布,然后不断更新。自从2008年10月Android第一次完整发布以来,共推出了19个平台和SDK版本。由于发布周期如此之快,软件和开发库很可能会有定期的修改和丰富。虽然Android的开发团队会尽可能地保持向后兼容性,但在未来的版本中,本书提供的某些信息仍可能会过时。类似地,并不是每个用户的Android设备都在运行最新的平台版本。只要有可能,本书就会指出哪些平台版本支持书中所介绍的功能,以及可以使用哪些方法为早期设备的用户提供支持。本书的内容和示例提供了如何使用当前SDK来编写优秀的移动应用程序所需要的基础知识,同时也保持了快速适应未来版本更强大功能的灵活性。0.1读者对象本书适合所有对在Android移动手机平台上创建应用程序感兴趣的人。不管是经验丰富的移动开发人员,还是想通过Android开发移动应用程序的新手,都能够从本书中获得十分有价值的信息。如果读者使用过手机(特别是运行Android的手机),那么这些使用经验会对阅读本书有所帮助,但这不是必需的。同样,如果以前有过手机开发经验,那么也有一定的帮助,但这也不是必需的。不过希望读者具有一定的软件开发经验,并且熟悉基本的面向对象开发实践。对Java语法的了解是必需的。深入理解Java并具有Java开发经验会带来明显的优势,不过没有这些知识和经验也没太大影响。第1章和第2章简要介绍移动应用程序的开发过程,并包含如何在Android上开始开发的说明。除了这两章之外,对其他章节的阅读顺序不做要求。如果对第3~9章中描述的基本组件有所理解,将有利于你对其他章节的学习。第10章和第11章详细介绍了如何创建应用程序来提供丰富而一致的用户体验。第12~19章讨论了各种可选功能和高级功能,可以按照顺序阅读,也可以按需阅读。0.2本书内容第1章简要介绍Android,包括它是什么,以及它如何适应当前的移动开发。然后详细讲述了Android作为一个开发平台能够提供什么功能,并解释了它为什么是一个创建移动应用程序的良机。第2章讲述了移动开发的一些最佳实践,并解释了如何下载Android SDK和开始开发应用程序。该章同时也介绍了Android开发工具,并说明了如何从头创建新的应用程序。第3~9章深入探讨了基本的Android应用程序组件。首先讲述了组成Android应用程序和它的生命周期的每个部分,然后介绍了应用程序清单和外部资源,以及活动及其生存期与生命周期。之后将学习如何使用布局、视图和Fragment创建用户界面,并且还将了解在应用程序组件之间执行动作和发送消息的Intent和Broadcast Receiver机制。接着将介绍Internet资源,之后详细讲述了数据存储、检索和共享。读者在此将了解首选项保存机制、文件处理、数据库和游标。还将学习如何使用内容提供器来共享应用程序数据,以及如何访问原生内容提供器的数据。这一部分最后介绍了如何使用Service和后台线程在后台工作。第10章和第11章以第4章介绍的UI知识为基础,介绍了如何使用操作栏、菜单系统和通知来增强用户体验。在这里将学习如何让应用程序适合各种显示屏(针对多种屏幕尺寸和分辨率进行优化),如何使应用程序更易于访问,以及如何在应用程序内使用语音识别。第12~18章涉及较高级的主题。在这里将学习如何使用罗盘、加速计和其他硬件传感器来让应用程序能够对环境做出响应,然后介绍了地图以及基于位置的服务。接着介绍了如何使用动态Widget、Live Wallpaper和快速搜索框,使你的应用程序通过主屏幕与用户直接交互。在介绍了播放和录制多媒体以及使用摄像头以后,你将了解到Android的通信功能。在介绍了蓝牙、NFC、Wi-FiDirect和网络管理(包括Wi-Fi和移动数据连接)之后,讨论了电话服务和用来发送及接收SMS消息的API。第18章介绍几个高级开发主题,其中包括安全、IPC、Cloud to Device Messaging、License Verification Library和Strict Mode。最后,第19章介绍了在发布和分发应用程序以及利用应用程序盈利时面临的机会和可以采用的选择,重点讨论了Google Play。0.3本书结构本书按照一种合理的顺序进行组织,从而帮助具有不同开发背景的读者更好地学习编写高级Android应用程序的方法。尽管对阅读每个章节的顺序不做要求,但是请注意,某些示例项目是跨越多个章节开发的,在其中每个阶段都会添加一些新功能并做一些改进。富有移动开发经验且拥有能正常工作的Android开发环境的开发人员可以跳过前两章的内容——这两章简要介绍了移动开发的基本知识以及如何创建开发环境——直接学习第3~9章。因为这几章涵盖了Android开发的基础知识,所以深入理解这几章所讲述的概念非常重要。在学习这几章之后,读者就可以继续学习其余章节了,它们主要介绍了地图、基于位置的服务、后台应用程序以及诸如硬件交互和联网这样的更高级主题。0.4使用本书的要求要使用本书中的示例代码,你需要通过下载Android SDK库和开发工具以及Java开发包,来创建一个Android开发环境。你可能还希望通过下载和安装Eclipse和Android开发工具插件来简化开发工作,但是这些都不是必需的。Windows、Mac OS和Linux系统环境都支持Android开发,可以从Android站点下载相应的SDK。学习本书内容或者开发Android应用程序并不需要Android设备,但是有一台Android设备的帮助很大,尤其是在测试应用程序时。

后记

如今的智能手机,功能越来越强大。CUP主频1.5G、双核甚至四核已经成为主流,智能手机已然成为一个“小型PC”。在PC上能够完成的应用功能,手机上基本都可以完成,这给从事手机端应用开发的程序员提供了很大的空间和挑战。智能手机最核心的部分当然是操作系统,目前使用最多的操作系统包括Android、iOS、Symbian、Windows Phone和BlackBerry OS。Android是一种以Linux为基础的开放源代码操作系统。Google于2011年10月19日正式发布Android4.0(代号:Ice Cream Sandwich),距离Android操作系统中的第一个正式版本(于2008年9月23日发布,代号为铁臂阿童木(Astro))的发布,仅仅过去四年。该版本在前一个版本的基础上修复了bug并且添加了一些新功能。较之前的版本,Android4.0统一了手机和平板电脑使用的系统,UI更加人性化,速度也有了很大的提升。对于Android应用开发者而言,他们更关注Android4.0支持的新功能,以开发出更炫、更实用的应用。本书可谓是学习Android4.0的少见的精品,结构清晰、内容新颖且覆盖面广。不仅涵盖了开发Android应用所需的基本知识,如Android平台的基本概念、构建用户界面、消息和广播机制、网络资源的使用、文件系统、构建多任务应用、数据库和数据的搜索,而且还介绍了Android应用开发的高级深入的技术和经验,如怎样才能开发出拥有良好而高级的用户体验和个性UI的应用、地图、人脸识别、传感器、摄像头、蓝牙WIFINFC等硬件的使用,以及多媒体、云客户端开发、应用程序内收费等。书中的代码示例,通用性很强,甚至可以直接应用到项目当中。该书非常适合要进一步提高自己Android开发水平的从业人员和对Android开发有兴趣的读者,也适合作为高校的教材。在翻译本书的过程中,我们尽量遵照作者的原意。一些新的Android词汇我们甚至保留为英文单词,这样更利于开发人员理解!为了保证翻译技术的准确性,大部分的技术点我们都亲自编码上机调试,确保给广大的读者提供最准确的翻译内容和技术指导。确保翻译技术的准确性之外,我们也在内容的通俗易懂上下了功夫,常把译稿交给第一线的开发人员阅读,不断听取他们的意见,期望能给读者带来一本Android编程方面的精品书籍。在这期间,我投入了几乎所有的业余时间,感谢我的爱人对我工作的支持和理解,更要感谢我的翻译合作伙伴的鼎力相助。特别要感谢的是清华大学出版社编辑,他们给了我很多的指导。没有大家的帮助本书就不可能得以成功出版。我们希望广大的读者能够从该书中受益。虽然,我们竭尽所能让译文准确通俗,但由于水平有限,时间有限,书中难免有疏漏的地方,敬请广大读者给予批评和指正。译者

内容概要

Reto Meier 目前是Google Android 团队的一名Android 开发人员倡导者,帮助Android 开发人员创建最优秀的应用程序。Reto 是一位经验丰富的软件开发人员,拥有逾10 年的GUI 应用程序开发经验。进入Google 之前,他曾在多种行业中工作过,包括海洋石油、天然气以及金融业。
Reto 始终不渝地追求掌握新技术,从2007 年Android 发布之初Reto 就迷恋上了此项技术。在Reto 的个人网站Radioactive Yak(http://blog. radioactiveyak.com) 上可以了解Reto 的兴趣和爱好。他还在Google+(http://profiles.google.com/reto.meier) 和Twitter(www.twitter.com/retomeier) 上分享各种信息。
技术编辑简介
Dan Ulery 是一名软件工程师,具有.NET、Java 和PHP 的开发经验,并且十分熟悉软件部署。他毕业于爱达荷大学,获得了计算机科学学士学位,并且辅修了数学专业。

书籍目录

目 录
第1章 Android简介
1
1.1 一些背景信息
2
1.1.1 不远的过去
2
1.1.2 未来的前景
2
1.2 对Android的误解
3
1.3 Android:开放的移动开发平台
3
1.4 原生Android应用程序
4
1.5 Android SDK的特征
5
1.5.1 访问硬件(包括摄像头、GPS和
传感器)
5
1.5.2 使用Wi-Fi、蓝牙技术和NFC
进行数据传输
6
1.5.3 地图、地理编码和基于位置的
服务
6
1.5.4 后台服务
6
1.5.5 使用SQLite数据库进行数据
存储和检索
7
1.5.6 共享数据和应用程序间通信
7
1.5.7 使用Widget和Live Wallpaper
增强主屏幕
7
1.5.8 广泛的媒体支持和2D/3D图形
7
1.5.9 Cloud to Device Messaging
8
1.5.10 优化的内存和进程管理
8
1.6 开放手机联盟简介
8
1.7 运行Android的环境
9
1.8 从事移动开发的原因
9
1.9 从事Android开发的原因
9
1.9.1 推动Android普及的因素
10
1.9.2 Android的独到之处
10
1.9.3 改变移动开发格局
11
1.10 开发框架简介
11
1.10.1 开发包中的资源
12
1.10.2 理解Android软件栈
12
1.10.3 Dalvik虚拟机
14
1.10.4 Android应用程序架构
14
1.10.5 Android库
15
第2章 开始入手
17
2.1 Android开发
18
2.1.1 开始前的准备工作
18
2.1.2 创建第一个Android应用程序
24
2.1.3 Android应用程序的类型
31
2.2 面向移动设备和嵌入式设备的
开发
32
2.2.1 硬件限制带来的设计考虑事项
32
2.2.2 考虑用户环境
35
2.2.3 Android开发
36
2.3 Android开发工具
40
2.3.1 Android虚拟设备管理器
41
2.3.2 Android SDK管理器
42
2.3.3 Android模拟器
42
2.3.4 Dalvik调试监控服务(DDMS)
42
2.3.5 Android调试桥(ADB)
43
2.3.6 Hierarchy Viewer和Lint工具
43
2.3.7 Monkey和Monkey Runner
43
第3章 创建应用程序和Activity
45
3.1 Android应用程序的组成部分
46
3.2 应用程序Manifest文件简介
47
3.3 使用Manifest编辑器
54
3.4 分离资源
55
3.4.1 创建资源
55
3.4.2 使用资源
63
3.4.3 为不同的语言和硬件创建
资源
66
3.4.4 运行时配置更改
68
3.5 Android应用程序生命周期
70
3.6 理解应用程序的优先级和进程
状态
70
3.7 Android Application类简介
72
3.7.1 扩展和使用Application类
72
3.7.2 重写应用程序的生命周期
事件
73
3.8 深入探讨Android Activity
74
3.8.1 创建Activity
74
3.8.2 Activity的生存期
76
3.8.3 Android Activity类
81
第4章 创建用户界面
83
4.1 Android UI基本设计
84
4.2 Android UI的基础知识
84
4.3 布局简介
85
4.3.1 定义布局
86
4.3.2 使用布局创建设备无关的UI
87
4.3.3 优化布局
90
4.4 To-Do List示例
93
4.5 Fragment介绍
100
4.5.1 创建新的Fragment
101
4.5.2 Fragment的生命周期
101
4.5.3 Fragment Manager介绍
105
4.5.4 向Activity中添加Fragment
105
4.5.5 Fragment和Activity之间的
接口
110
4.5.6 没有用户界面的Fragment
111
4.5.7 Android Fragment 类
112
4.5.8 对To-Do List示例使用
Fragment
112
4.6 Android widget 工具箱
116
4.7 创建新视图
117
4.7.1 修改现有的视图
118
4.7.2 创建复合控件
122
4.7.3 使用布局创建简单的复合
控件
124
4.7.4 创建定制的视图
124
4.7.5 使用定制的控件
137
4.8 Adapter简介
137
4.8.1 部分原生Adapter简介
138
4.8.2 定制ArrayAdapter
138
4.8.3 使用Adapter绑定数据到
视图
139
第5章 Intent和Broadcast Receiver
145
5.1 Intent简介
145
5.1.1 使用Intent来启动Activity
146
5.1.2 Linkify简介
153
5.1.3 使用Intent广播事件
155
5.1.4 Local Broadcast Manager
159
5.1.5 Pending Intent简介
160
5.2 创建Intent Filter和Broadcast
Receiver
161
5.2.1 使用Intent Filter为隐式Intent
提供服务
161
5.2.2 使用Intent Filter作为插件和
扩展
170
5.2.3 监听本地Broadcast Intent
173
5.2.4 使用Broadcast Intent监控设备的
状态变化
174
5.2.5 在运行时管理Manifest
Receiver
176
第6章 使用Internet资源
177
6.1 下载和分析Internet资源
177
6.1.1 连接Internet资源
178
6.1.2 使用XML Pull Parser分析
XML
179
6.1.3 创建一个地震查看器
180
6.2 使用Download Manager
186
6.2.1 下载文件
186
6.2.2 自定义Download Manager
Notification
187
6.2.3 指定下载位置
188
6.2.4 取消和删除下载
189
6.2.5 查询Download Manager
189
6.3 使用Internet服务
192
6.4 连接到Google App Engine
192
6.5 下载数据而不会耗尽电量的
最佳实践
194
第7章 文件、保存状态和首选项
195
7.1 保存简单的应用程序数据
195
7.2 创建并保存Shared Preference
196
7.3 检索Shared Preference
197
7.4 为地震查看器创建一个设置
Activity
197
7.5 首选项框架和Preference Activity
概述
205
7.5.1 在XML中定义一个
Preference Screen布局
206
7.5.2 Preference Fragment简介
208
7.5.3 使用Preference Header定义
Preference Fragment的层次
结构
208
7.5.4 Preference Activity简介
209
7.5.5 向后兼容性与Preference
Screen
210
7.5.6 找到并使用Preference Screen
设置的Shared Preference
210
7.5.7 Shared Preference Change
Listener简介
211
7.6 为地震查看器创建一个标准的
Preference Activity
211
7.7 持久化应用程序实例的状态
215
7.7.1 使用Shared Preference保存
Activity状态
215
7.7.2 使用生命周期处理程序保存和
还原Activity实例
215
7.7.3 使用生命周期处理程序保存和
还原Fragment实例状态
216
7.8 将静态文件作为资源添加
218
7.9 在文件系统下工作
218
7.9.1 文件管理工具
218
7.9.2 使用特定于应用程序的文件夹
存储文件
219
7.9.3 创建私有的应用程序文件
219
7.9.4 使用应用程序文件缓存
220
7.9.5 存储公共可读的文件
220
第8章 数据库和Content Provider
223
8.1 Android数据库简介
223
8.1.1 SQLite数据库简介
224
8.1.2 Content Provider简介
224
8.2 SQLite简介
224
8.3 Content Value和Cursor
225
8.4 使用SQLite数据库
225
8.4.1 SQLiteOpenHelper简介
226
8.4.2 在不使用SQLiteOpenHelper的
情况下打开和创建数据库
228
8.4.3 Android数据库设计注意
事项
228
8.4.4 查询数据库
228
8.4.5 从Cursor中提取值
229
8.4.6 添加、更新和删除行
230
8.5 创建Content Provider
232
8.5.1 注册Content Provider
233
8.5.2 发布Content Provider的URI
地址
233
8.5.3 创建Content Provide的
数据库
234
8.5.4 实现Content Provider查询
235
8.5.5 Content Provider事务
236
8.5.6 在Content Provider中存储
文件
239
8.5.7 一个Content Provider的实现
框架
240
8.6 使用Content Provider
244
8.6.1 Content Resolver简介
244
8.6.2 查询Content Provider
244
8.6.3 使用Cursor Loader异步查询
内容
247
8.6.4 添加、删除和更新内容
249
8.6.5 访问Content Provider中存储的
文件
251
8.6.6 创建一个To-Do List数据库和
Content Provider
253
8.7 将搜索功能添加到应用程序中
260
8.7.1 使Content Provider可搜索
261
8.7.2 为应用程序创建一个搜索
Activity
261
8.7.3 将搜索Activity设置为应用
程序的默认搜索Provider
263
8.7.4 使用搜索视图微件
266
8.7.5 由Content Provider支持搜索
建议
267
8.7.6 在快速搜索框中显示搜索
结果
270
8.8 创建可搜索的地震Content
Provider
270
8.8.1 创建Content Provider
270
8.8.2 使用地震Content Provider
276
8.8.3 搜索EarthquakeContent
Provider
279
8.9 本地Android Content Provider
285
8.9.1 使用Media StoreContent
Provider
285
8.9.2 使用Contacts Contract Content
Provider
286
8.9.3 使用Calendar Content
Provider
293
第9章 在后台操作
297
9.1 Service简介
298
9.1.1 创建和控制Service
298
9.1.2 将Service绑定到Activity
302
9.1.3 地震监控Service示例
304
9.1.4 创建前台Service
308
9.2 使用后台线程
309
9.2.1 使用AsyncTask运行异步任务
310
9.2.2 Intent Service简介
312
9.2.3 Loader简介
313
9.2.4 手动创建线程和GUI线程
同步
313
9.3 使用Alarm
315
9.3.1 创建、设置和取消Alarm
316
9.3.2 设置重复Alarm
317
9.3.3 使用重复Alarm调度网络
刷新
318
9.4 使用Intent Service简化Earthquake
更新Service
320
第10章 扩展用户体验
323
10.1 操作栏简介
324
10.1.1 自定义操作栏
325
10.1.2 自定义操作栏来控制应用
程序的导航行为
328
10.1.3 操作栏操作简介
333
10.2 向地震监控程序添加一个
操作栏
333
10.3 创建并使用菜单和操作栏
操作项
339
10.3.1 Android菜单系统简介
340
10.3.2 创建菜单
341
10.3.3 指定操作栏的操作
342
10.3.4 菜单项选项
343
10.3.5 添加操作View和操作提供
程序
344
10.3.6 在Fragment中添加菜单项
345
10.3.7 使用XML定义菜单层次
结构
345
10.3.8 动态更新菜单项
347
10.3.9 处理菜单选择
347
10.3.10 子菜单和上下文菜单简介
348
10.4 更新地震监控程序
351
10.5 全屏显示
353
10.6 对话框简介
355
10.6.1 创建一个对话框
356
10.6.2 使用AlertDialog类
356
10.6.3 使用专门的输入对话框
357
10.6.4 通过Dialog Fragment管理和
显示对话框
358
10.6.5 通过Activity事件处理程序
管理和显示对话框
360
10.6.6 将Activity用作对话框
361
10.7 创建Toast
361
10.7.1 自定义Toast
362
10.7.2 在工作线程中使用Toast
364
10.8 Notification简介
365
10.8.1 Notification Manager简介
366
10.8.2 创建Notification
366
10.8.3 设置和自定义通知托盘UI
369
10.8.4 配置持续和连续的
Notification
373
10.8.5 触发、更新和取消
Notification
374
10.9 向地震监控程序中添加
Notification和对话框
376
第11章 高级用户体验
381
11.1 为每个屏幕尺寸和分辨率做
设计
382
11.1.1 分辨率无关
382
11.1.2 为不同的屏幕大小提供支持和
优化
383
11.1.3 创建可缩放的图形资源
386
11.1.4 创建优化的、自适应的、
动态的设计
390
11.1.5 反复测试
390
11.2 确保可访问性
391
11.2.1 为非触屏设备提供导航
391
11.2.2 为每个View提供文本
描述
391
11.3 Android Text-to-Speech简介
392
11.4 使用语音识别
394
11.4.1 使用语音识别进行语音
输入
395
11.4.2 使用语音识别进行搜索
396
11.5 控制设备振动
396
11.6 使用动画
397
11.6.1 补间View动画
397
11.6.2 创建和使用逐帧动画
400
11.6.3 插值属性动画
400
11.7 强化View
404
11.7.1 高级Canvas绘图
404
11.7.2 硬件加速
419
11.7.3 Surface View简介
420
11.7.4 创建交互式控件
423
11.8 高级Drawable资源
428
11.9 复制、粘贴和剪贴板
431
11.9.1 向剪贴板中复制数据
431
11.9.2 粘贴剪贴板数据
431
第12章 硬件传感器
433
12.1 使用传感器和传感器
管理器
433
12.1.1 受支持的Android传感器
434
12.1.2 虚拟传感器简介
435
12.1.3 查找传感器
435
12.1.4 监视传感器
436
12.1.5 解释传感器值
438
12.2 监视设备的移动和方向
439
12.2.1 确定设备的自然方向
440
12.2.2 加速计简介
441
12.2.3 检测加速度变化
442
12.2.4 创建一个重力计
443
12.2.5 确定设备方向
446
12.2.6 创建一个指南针和人工
地平仪
450
12.2.7 陀螺仪传感器简介
453
12.3 环境传感器简介
454
12.3.1 使用气压计传感器
454
12.3.2 创建气象站
455
第13章 地图、地理编码和基于位置的
服务
461
13.1 使用基于位置的服务
461
13.2 在模拟器中使用基于位置的
服务
462
13.2.1 更新模拟器位置提供器中的
位置
463
13.2.2 配置模拟器来测试基于位置的
服务
463
13.3 选择一个位置提供器
464
13.3.1 查找位置提供器
464
13.3.2 通过指定条件查找位置
提供器
464
13.3.3 确定位置提供器的能力
465
13.4 确定当前位置
466
13.4.1 位置的隐私性
466
13.4.2 找出上一次确定的位置
466
13.4.3 Where Am I示例
466
13.4.4 刷新当前位置
469
13.4.5 在Where Am I中跟踪
位置
472
13.4.6 请求单独一次位置更新
473
13.5 位置更新的最佳实践
474
13.6 使用近距离提醒
477
13.7 使用地理编码器
478
13.7.1 反向地理编码
479
13.7.2 前向地理编码
480
13.7.3 对“Where Am I”示例
进行地理编码
481
13.8 创建基于地图的Activity
482
13.8.1 MapView和MapActivity
简介
482
13.8.2 获得地图的API key
483
13.8.3 创建一个基于地图的
Activity
483
13.8.4 地图和Fragment
485
13.8.5 配置和使用MapView
486
13.8.6 使用MapController
486
13.8.7 对“Where Am I”示例使用
地图
487
13.8.8 创建和使用覆盖(Overlay)
490
13.8.9 MyLocationOverlay简介
497
13.8.10 ItemizedOverlay和
OverlayItem简介
498
13.8.11 将视图固定到地图和地图的
某个位置上
500
13.9 对Earthquake示例添加地图
功能
501
第14章 个性化主屏幕
507
14.1 主屏幕Widget简介
507
14.2 创建App Widgets
509
14.2.1 创建Widget的XML
布局资源
509
14.2.2 定义Widget设置
511
14.2.3 创建Widget Broadcast Receiver
并将其添加到应用程序的
manifest文件中
512
14.2.4 AppWidgetManager和
RemoteView简介
513
14.2.5 刷新Widget
518
14.2.6 创建并使用Widget配置
Activity
521
14.3 创建地震Widget
522
14.4 Collection View Widget简介
528
14.4.1 创建Collection View Widget的
布局
529
14.4.2 创建RemoteViewsService
530
14.4.3 创建一个RemoteViews-
Factory
531
14.4.4 使用RemoteViewsService
填充CollectionViewWidget
533
14.4.5 向Collection View Widget
中的项添加交互性
534
14.4.6 将Collection View Widget
绑定到Content Provider
535
14.4.7 刷新Collection View
Widget
537
14.4.8 创建Earthquake Collection
View Widget
537
14.5 Live Folder简介
543
14.5.1 创建Live Folder
544
14.5.2 创建Earthquake Live Folder
548
14.6 使用快速搜索框显示应用程序
搜索结果
551
14.6.1 在快速搜索框中显示搜索
结果
551
14.6.2 将Earthquake示例的搜索
结果添加到快速搜索框中
552
14.7 创建Live Wallpaper
553
14.7.1 创建Live Wallpaper定义
资源
553
14.7.2 创建Wallpaper Service
554
14.7.3 创建Wallpaper Service
引擎
555
第15章 音频、视频以及摄像头的
使用
557
15.1 播放音频和视频
558
15.1.1 Media Player简介
559
15.1.2 准备音频播放
559
15.1.3 准备视频播放
560
15.1.4 控制Media Player的
播放
564
15.1.5 管理媒体播放输出
566
15.1.6 响应音量控制
566
15.1.7 响应Media播放控件
567
15.1.8 请求和管理音频焦点
569
15.1.9 当音频输出改变时暂停
播放
571
15.1.10 Remote Control Client简介
572
15.2 操作原始音频
574
15.2.1 使用AudioRecord录制
声音
574
15.2.2 使用AudioTrack播放音频
575
15.3 创建一个Sound Pool
577
15.4 使用音效
578
15.5 使用摄像头拍摄照片
579
15.5.1 使用Intent拍摄照片
579
15.5.2 直接控制摄像头
581
15.5.3 读取并写入 JPEG EXIF图像
详细信息
588
15.6 录制视频
589
15.6.1 使用Intent录制视频
589
15.6.2 使用MediaRecorder录制
视频
590
15.7 使用媒体效果
593
15.8 向媒体库中添加新媒体
594
15.8.1 使用媒体扫描仪插入媒体
594
15.8.2 手动插入媒体
595
第16章 蓝牙、NFC、网络和Wi-Fi
597
16.1 使用蓝牙
597
16.1.1 管理本地蓝牙设备适配器
598
16.1.2 可发现性和远程设备发现
600
16.1.3 蓝牙通信
604
16.2 管理网络和Internet连接
609
16.2.1 Connectivity Manager简介
609
16.2.2 支持用户首选项以进行后台
数据传输
609
16.2.3 查找和监视网络连接
611
16.3 管理Wi-Fi
612
16.3.1 监视Wi-Fi连接
613
16.3.2 监视活动的Wi-Fi连接的
详细信息
613
16.3.3 扫描热点
613
16.3.4 管理Wi-Fi配置
614
16.3.5 创建Wi-Fi网络配置
615
16.4 使用Wi-Fi Direct传输数据
615
16.4.1 初始化Wi-Fi Direct框架
615
16.4.2 启用Wi-Fi Direct并监视其
状态
617
16.4.3 发现对等设备
618
16.4.4 连接对等设备
618
16.4.5 在对等设备之间传输数据
620
16.5 近场通信
621
16.5.1 读取NFC标签
622
16.5.2 使用前台分派系统
623
16.5.3 Android Beam简介
625
第17章 电话服务和SMS
629
17.1 电话服务的硬件支持
629
17.1.1 将电话功能指定为必需的
硬件功能
629
17.1.2 检查电话硬件
630
17.2 使用电话服务
630
17.2.1 启动电话呼叫
630
17.2.2 替换本机拨号程序
631
17.2.3 访问电话服务的属性及状态
632
17.2.4 使用PhoneStateListener
监视电话状态的变化
635
17.2.5 使用Intent Receiver监视传入的
电话呼叫
639
17.3 SMS和MMS简介
640
17.3.1 在应用程序中使用SMS和
MMS
640
17.3.2 使用Intent从应用程序中
发送SMS和MMS
640
17.3.3 使用SMS Manager发送
SMS消息
641
17.3.4 监听传入的SMS消息
644
17.3.5 紧急响应程序SMS示例
646
17.3.6 自动紧急响应程序
654
17.4 SIP和VOIP简介
662
第18章 Android高级开发
663
18.1 Android的安全性
664
18.1.1 Linux内核安全
664
18.1.2 权限简介
664
18.2 Cloud to Device Messaging简介
666
18.2.1 C2DM的局限性
667
18.2.2 注册使用C2DM
667
18.2.3 在C2DM服务器上注册
设备
667
18.2.4 向设备发送C2DM消息
670
18.2.5 接收C2DM消息
672
18.3 使用License Verification Library
实现版权保护
673
18.3.1 安装License Verification
Library
673
18.3.2 获得License Verification
公钥
673
18.3.3 配置License Validation
Policy
674
18.3.4 执行许可验证检查
674
18.4 应用程序内收费
675
18.4.1 应用程序内收费的局限性
676
18.4.2 安装IAB库
676
18.4.3 获得公钥和定义可购买的
物品
676
18.4.4 开始IAB交易
677
18.4.5 处理IAB购买请求的响应
678
18.5 使用Wake Lock
679
18.6 使用AIDL支持Service的
IPC
680
18.7 处理不同硬件和软件的可用性
686
18.7.1 指定硬件的要求
686
18.7.2 确认硬件可用性
687
18.7.3 构建向后兼容的应用程序
687
18.8 利用STRICT模式优化UI
性能
689
第19章 推广和发布应用程序并从中
获利
691
19.1 签名和发布应用程序
691
19.2 发布应用程序
693
19.2.1 Google Play简介
693
19.2.2 开始使用Google Play
694
19.2.3 发布应用程序
695
19.2.4 开发者控制台上的应用程序
报告
697
19.2.5 查看应用程序错误报告
697
19.3 如何通过应用程序赚钱
698
19.4 应用程序销售、推广和分发的
策略
699
19.4.1 应用程序的起步策略
699
19.4.2 在Google Play上推广
700
19.4.3 国际化
700
19.5 分析数据和跟踪推荐人
701
19.5.1 使用移动应用程序的Google
Analytics
702
19.5.2 使用Google Analytics追踪
推荐
703

编辑推荐

《Android 4高级编程(第3版)》由Android权威专家编写,涵盖了所有最新的内容,是学习使用Android 4 SDK开发移动应用程序的理想指南,经典图书升级版本!

作者简介

《Android 4高级编程(第3版)》由Android权威专家编写,涵盖了所有最新的内容,是学习使用Android 4 SDK开发移动应用程序的理想指南。本书见解深刻,帮助经验丰富的Android开发人员充分挖掘Android 4的新特性的潜力,同时讲解了Android开发的基础知识,使初学者也可以借助本书入门。作为一本以实用性为目的的指导图书,本书带领您逐步完成复杂程度越来越高的Android项目,每个项目中都引入一种新的Android平台特性,并着重指出有助于编写引人入胜的应用程序的技术和最佳实践。
本书特色
◆ 深入分析了Android应用程序的组件和生命周期
◆ 探讨了Android的UI原理、设计理念和UI API,使用户界
面在手机、平板电脑和电视上都引人注目
◆ 介绍了创建基于地图的应用程序和使用基于位置的服务
的相关知识
◆ 解释了如何创建后台服务、通知和Cloud to Device Messaging
◆ 演示了如何创建动态的、交互式的主屏幕微件和Live
Wallpaper
◆ 探索了硬件和通信API,包括蓝牙、电话、Wi-Fi Direct、
NFC和Android Beam
◆ 讲解了摄像头和硬件传感器的使用
◆ 详述了新的动画框架和其他增强用户体验的特性,包括
拖放、Action Bar和Fragment
◆ 新增了关于应用程序发布的一章内容
◆ 介绍了License Verification和应用程序内收费服务


 Android 4高级编程下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计4条)

  •     初学Android就看了这本书,看完算是整体了解了Android应用程序的系统结构和执行原理,但是从出版社网站上down下来的代码有很多问题,最基本的一个所有工程的最低API级别都是1。不知道国内怎么翻译的,感觉不管啥书一经清华大学出版社的手质量就哗哗下降
  •     对移动开发人员来说,现在是一个令人心潮澎湃的时代。手机从来没有像今天这样流行,强大的智能手机产品已经为消费者所普遍接受,而且Android 生态系统已经扩展到了平板电脑和电视设备,进一步增加了您的Android 应用程序的受众。现在,外观时尚且用途广泛的手机带有GPS、加速计、NFC 和触摸屏等硬件功能,并且具有固定费率且定价合理的数据计划,因此,它们成为了吸引越来越多的开发者创建各种新颖有趣的Android 应用程序的平台。Android 为移动应用程序开发提供了一个开放的平台。因为没有了人为制造的障碍,所以Android 开发人员可以自由地编写能够充分利用日益强大的手机硬件的应用程序,并在一个开放的市场上销售它们。因此,随着移动设备的销售量不断增长,开发者对Android 设备的兴趣也出现了爆炸性的增长。截止到2012 年,市场上有数百个手机和平板电脑OEM,包括HTC 、Motorola 、LG、Samsung 、ASUS 和Sony Ericsson 。有超过3 亿的Android 设备已被激活,并且这个数字仍在以每天新激活850 000 个设备的速度增长。通过使用Google Play ,开发人员可以利用开放的市场向所有兼容的Android 设备发布免费或者收费的应用程序,而不需要经历审查过程。Android 构建在一个开源框架之上,并且有强大的SDK 库,已经使开发人员在Google Play 上发布了超过450 000 个应用程序。本书将指导你使用Android SDK 的版本4 来构建移动应用程序。每章的讲解将通过一系列示例项目帮助你逐步掌握Android 中的各种新功能和技术,以便你能够最大限度地利用Android 。本书介绍了Android 编程入门所需的所有基础知识,同时为有经验的移动开发人员讲解了如何利用Android 的独特功能来增强现有应用程序或者创建新的、创造性的应用程序。Google 的理念是尽快发布,然后不断更新。自从2008 年10 月Android 第一次完整发布以来,共推出了19 个平台和SDK 版本。由于发布周期如此之快,软件和开发库很可能会有定期的修改和丰富。虽然Android 的开发团队会尽可能地保持向后兼容性,但在未来的版本中,本书提供的某些信息仍可能会过时。类似地,并不是每个用户的Android 设备都在运行最新的平台版本。只要有可能,本书就会指出哪些平台版本支持书中所介绍的功能,以及可以使用哪些方法为早期设备的用户提供支持。本书的内容和示例提供了如何使用当前SDK 来编写优秀的移动应用程序所需要的基础知识,同时也保持了快速适应未来版本更强大功能的灵活性。0.1 读者对象本书适合所有对在Android 移动手机平台上创建应用程序感兴趣的人。不管是经验丰富的移动开发人员,还是想通过Android 开发移动应用程序的新手,都能够从本书中获得十分有价值的信息。如果读者使用过手机(特别是运行Android 的手机),那么这些使用经验会对阅读本书有所帮助,但这不是必需的。同样,如果以前有过手机开发经验,那么也有一定的帮助,但这也不是必需的。不过希望读者具有一定的软件开发经验,并且熟悉基本的面向对象开发实践。对Java 语法的了解是必需的。深入理解Java 并具有Java 开发经验会带来明显的优势,不过没有这些知识和经验也没太大影响。第1 章和第2 章简要介绍移动应用程序的开发过程,并包含如何在Android 上开始开发的说明。除了这两章之外,对其他章节的阅读顺序不做要求。如果对第3~9 章中描述的基本组件有所理解,将有利于你对其他章节的学习。第10 章和第11 章详细介绍了如何创建应用程序来提供丰富而一致的用户体验。第12~19 章讨论了各种可选功能和高级功能,可以按照顺序阅读,也可以按需阅读。0.2 本书内容第1 章简要介绍Android ,包括它是什么,以及它如何适应当前的移动开发。然后详细讲述了Android 作为一个开发平台能够提供什么功能,并解释了它为什么是一个创建移动应用程序的良机。第2 章讲述了移动开发的一些最佳实践,并解释了如何下载Android SDK 和开始开发应用程序。该章同时也介绍了Android 开发工具,并说明了如何从头创建新的应用程序。第3~9 章深入探讨了基本的Android 应用程序组件。首先讲述了组成Android 应用程序和它的生命周期的每个部分,然后介绍了应用程序清单和外部资源,以及活动及其生存期与生命周期。之后将学习如何使用布局、视图和Fragment 创建用户界面,并且还将了解在应用程序组件之间执行动作和发送消息的Intent 和Broadcast Receiver 机制。接着将介绍Internet 资源,之后详细讲述了数据存储、检索和共享。读者在此将了解首选项保存机制、文件处理、数据库和游标。还将学习如何使用内容提供器来共享应用程序数据,以及如何访问原生内容提供器的数据。这一部分最后介绍了如何使用Service 和后台线程在后台工作。第10 章和第11 章以第4 章介绍的UI 知识为基础,介绍了如何使用操作栏、菜单系统和通知来增强用户体验。在这里将学习如何让应用程序适合各种显示屏(针对多种屏幕尺寸和分辨率进行优化),如何使应用程序更易于访问,以及如何在应用程序内使用语音识别。第12~18 章涉及较高级的主题。在这里将学习如何使用罗盘、加速计和其他硬件传感器来让应用程序能够对环境做出响应,然后介绍了地图以及基于位置的服务。接着介绍了如何使用动态Widget 、Live Wallpaper 和快速搜索框,使你的应用程序通过主屏幕与用户直接交互。在介绍了播放和录制多媒体以及使用摄像头以后,你将了解到Android 的通信功能。在介绍了蓝牙、NFC、Wi-Fi Direct 和网络管理(包括Wi-Fi 和移动数据连接)之后,讨论了电话服务和用来发送及接收SMS 消息的API。第18 章介绍几个高级开发主题,其中包括安全、IPC、Cloud to Device Messaging 、License Verification Library 和Strict Mode 。最后,第19 章介绍了在发布和分发应用程序以及利用应用程序盈利时面临的机会和可以采用的选择,重点讨论了Google Play 。VI 0.3 本书结构本书按照一种合理的顺序进行组织,从而帮助具有不同开发背景的读者更好地学习编写高级Android 应用程序的方法。尽管对阅读每个章节的顺序不做要求,但是请注意,某些示例项目是跨越多个章节开发的,在其中每个阶段都会添加一些新功能并做一些改进。富有移动开发经验且拥有能正常工作的Android 开发环境的开发人员可以跳过前两章的内容——这两章简要介绍了移动开发的基本知识以及如何创建开发环境——直接学习第3~9 章。因为这几章涵盖了Android 开发的基础知识,所以深入理解这几章所讲述的概念非常重要。在学习这几章之后,读者就可以继续学习其余章节了,它们主要介绍了地图、基于位置的服务、后台应用程序以及诸如硬件交互和联网这样的更高级主题。0.4 使用本书的要求要使用本书中的示例代码,你需要通过下载Android SDK 库和开发工具以及Java 开发包,来创建一个Android 开发环境。你可能还希望通过下载和安装Eclipse 和Android 开发工具插件来简化开发工作,但是这些都不是必需的。Windows 、Mac OS 和Linux 系统环境都支持Android 开发,可以从Android 站点下载相应的SDK。学习本书内容或者开发Android 应用程序并不需要Android 设备,但是有一台Android 设备的帮助很大,尤其是在测试应用程序时。0.5 源代码读者在学习本书中的示例时,既可以手工输入所有代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/ 或http://www.tupwk.com. cn/downpage 上下载。只要登录到站点http://www.wrox.com/ ,使用Search 工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code 链接,就可以获得所有源代码。下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx 上的Wrox 代码下载主页,查看本书和其他Wrox 图书的所有代码。0.6 勘误表尽管我们已经尽了最大的努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免走入误区,当然,这还有助于提供更高质量的信息。要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com ,通过Search 工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata 链接。在这个页面上可以查看到Wrox 编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml 。如果你在勘误表上没有找到错误,那么可以到www.wrox.com/contact/techsupport.shtml 上,完成上面的表格,并把找到的错误发送给我们。我们将会核查这些信息,如果无误的话,会把它放置到本书的勘误表中,并在本书的后续版本中更正这些问题。0.7 p2p.wrox.com 要与作者和同行讨论,请加入p2p.wrox.com 上的P2P 论坛。这个论坛是一个基于Web 的系统,便于你发布与Wrox 图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你传送感兴趣的论题。Wrox 作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。在http://p2p.wrox.com 上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:(1) 进入p2p.wrox.com,单击Register 链接。(2) 阅读使用协议,并单击Agree 按钮。(3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,并单击Submit 按钮。(4) 你会收到一封电子邮件,其中的信息描述了如何验证账户和完成加入过程。加入论坛后,就可以发布新消息,回复其他用户发布的消息。可以随时在Web 上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum 图标。关于使用Wrox P2P 的更多信息,可阅读P2P FAQ ,了解论坛软件的工作情况以及P2P 和Wrox 图书的许多常见问题。要阅读FAQ ,可以在任意P2P 页面上单击FAQ 链接。P2P.WROX.COM 要与作者和同行讨论,请加入p2p.wrox.com 上的P2P 论坛。这个论坛是一个基于Web 的系统,便于您张贴与Wrox 图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox 作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。在http://p2p.wrox.com 上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:(1) 进入p2p.wrox.com,单击Register 链接。(2) 阅读使用协议,并单击Agree 按钮。(3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit 按钮。(4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web 上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum 图标。关于使用Wrox P2P 的更多信息,可阅读P2P FAQ ,了解论坛软件的工作情况以及P2P 和Wrox 图书的许多常见问题。要阅读FAQ ,可以在任意P2P 页面上单击FAQ 链接。
  •     很不错的android书,比较全面,但是代码有不少小毛病,可能是翻译过程中的问题。p33 嵌入式和移动式设备的限制使得开发人员失去了摩尔定律的优势。p174 细节错误还挺多涉及了很多方面,但详略有点不均衡。p355 对话框是系统级的,不能轻易使用。p700 注重质量而非功能。举报

精彩短评 (总计40条)

  •     非常不错,不过有时需要和着源代码一起看才能知道放到啊。
  •     作为整体了解安卓的结构以及所包含的内容还是不错的,可以作为复习书。
  •     内容可以,纸的质量不咋的
  •     讲Android4开发最好的基础书,讲的很全。比市面上其他书要好上不止一筹。不过翻译真心一般。
  •     还没怎么看,具体情况不知道,看着样子还行
  •     翻译水平太中国化,好像中学生翻译的一样,建议买原注的。
  •     不知道是翻译的不好还是作者叙事能力太差劲,各种晕,还是看下组件的大体介绍,看看别人的完整项目源码,有问题再去翻doc比较好。
  •     看了,讲的很不错。推荐
  •     还可以,之前没学过java,不知道看的懂不
  •     刚刚收到书,内容还没有看,感觉纸张非常非常差,很粗糙,很磨手,建议年纪小的MM们戴手套阅读。
  •     块头能唬人。翻译太生硬。初学不实用,熟手不解渴。
  •     没看过原著,不知道原著写的怎么样。但是感觉内容该可以。就是翻译,看着挺累的。一点都不自然。
  •     略微简单了,不够叫高级编程
  •     大概读了一些基本篇章,感觉还行,就是总会感觉有些地方比较生涩
  •     内容很充实,但是纸张质量很差啊。首先纸张不结实,感觉要散一样。而且纸张颜色发黄。
  •     移动开发,我选了Andorid
  •     书本的内容看了下,适合初级入门的,没多少高级的内容,哎·
  •     很好一本书,挺实用!
  •     书一看就是盗版的,而且还是残书,书质一点不好,印刷也不好,根本就是盗版书欺骗消费者
  •     很好,之前一直直接使用android development文档,但此书更适合作为android开发内容的索引,内容齐全而且穿插经验点。开发文档与此书结合着看很完美。
  •     android4我想我能在这本书学到一些
  •     不知为何有人说纸张不好,这个不要紧吧,而且我觉得纸张还不错啊。开始说正事。之前我在网上下载过很多pdf电子书,这些书有一个普遍的问题,就是版本不新,要知道Android3及4带来了很多的不同,增加了很多的内容,所以一定要Android3以上,最好Android4,而本书是4.此书深度为中偏上,对已经学Android开发几个月的同学很适合,特别适合作为按主题查阅学习的参考书,本书比较细致了,更细致就得上Android官网了。讲解上,先讲原理,然后从头到尾贯穿几个实例,这种学习方法非常好。原理和实例都有代码下载,各处还有各种重点和难点提示,可以看出编者非常有心。内容上,讲的都是容易迷糊的重点,没有讲最基础的那些东西,比如一个按钮怎么用,所以新手切莫期望学此书来入门,而应该买一本基础书籍。在本书的官网上有电子版下载,不过是英文的,如果你读中文比读英文快,还是建议你买此书。我给此书最高评分。
  •     haha,我的目标是写android 版陈琦要你命3000的单词软件,陈琦老师等我。。
  •     这本书对于初学者而言,可能会稍微难一些,但是对于有安卓基础的人而言,是合适的一本书。建议可以先看完《疯狂Android讲义》后再来看本书,更为合适。
  •     Android不错的一本教材,可惜翻译本读起来有点拗口的感觉,书籍有些部分,比如actionbar,比官方文档描述的更加详细,读后可以加深了解Android的使用
  •     感觉很乱,有时候还不如直接谷歌方便
  •     很多概念都没讲清楚 也没个有意义的例子,翻译的也很不通畅,没看的别看了 浪费时间
  •     书是好书,不过,感觉印刷的好像是山寨的一样。晕。。。没法,市面上android的书太少了。
  •     略了一遍,很全的样子
  •     泛泛而谈的入门读物.根本看出高级二字,也不适合新手入门
  •     入门必备,国外的书翻译过来的一个特点就是带有“高级”二字的,基本都是最好的入门书籍
  •     跟其他红宝书一样,大而全。
  •     此书译者的水平应该说极差,语序竟然是英文的语序,读起来非常费劲,感觉在读古文不流畅。你们要翻译,能不能认真点?翻译符合中文的阅读风格?? 就你们这破水平,哎,还不如把钱给我,我来翻译。
  •     书很厚,内容也翔实,请不要因为厚就望而生畏,真正的程序员只会喜欢细致的书籍,而不是讲解一知半解的书。Android开发所涉及到的东西基本都讲到了,喜欢Android,有至于Android开发的朋友可以看一看。
  •     不过内容还不错,可以作参考书
  •     很一般的书,当成字典还可以
  •     入门OK的。真的
  •     内容很全
  •     已经搞了两年android开发,初次看到这本书便决定买下来(之前一直在看英文版)。目前已经读到第七章,我想我应该是有发言权的。英文原版书籍很不错,细致系统较为深入;翻译版相对来说就不能用经典来形容了,语句不通顺歧义难以理解的地方还是比较多的,最主要的是作为一本专业的Android书籍,这本书的翻译显得实在不专业,举一例来说明。第七章的第一页:“Shared Preference是一种简单的、轻量级的名称/值对(NVP)机制,用于保存原始应用程序数据,最常见的是用户的应用程序首选项。”大家先看看读起来是否通顺,语法对不对,再看看“名称/值对”是翻译成“键值对”专业呢,还是他这种专业!70多元的价格,这种不够专业和严谨的翻译以及译者序中的“CUP”,等等,让我觉得译者真是践踏了这么经典的书籍。写不出来没关系,但翻译的时候麻烦能用点心思,搞学术的多用点脑袋做事才是正道啊。
  •     速度很快,昨天拍的今天就到了,还是货到付款。书的质量不是特别好,书太厚了700多页,质量不好也情有可原。总体好评!
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024