Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1524233
  • 博文数量: 465
  • 博客积分: 8915
  • 博客等级: 中将
  • 技术积分: 6365
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-30 15:05
文章分类

全部博文(465)

文章存档

2017年(33)

2016年(2)

2015年(4)

2014年(29)

2013年(71)

2012年(148)

2011年(178)

分类: 嵌入式

2012-10-24 13:59:28

Learning Android(中文版)

(美)加尔根塔(Gargenta,M.)著

李亚舟,任中龙,杜钢译.

ISBN 978-7-121-17263-2

20127月出版

定价:49.00

16

284

宣传语

想为Android设备开发应用程序吗?这本书就是帮助你入门的最佳途径。

本书为Android开发入门图书,循序渐进地介绍了如何利用Android基本构件来实现构造用户界面、存储数据、连接网络等实践中必不可少的需求。本书以亲手实现一个类Twitter的应用为主线,通过不断为其添加功能展开讲解。而这一学习过程积累出的代码模式库,可以灵活运用于真实Android应用开发。本书内容包括但不限于:Android平台概览、Android设计架构、Android开发环境配置、基本Android的用户界面构建、UI元件组织方法、构建执行后台任务与更新数据的服务、AIDLNDK介绍等。

作者介绍

Marko Gargenta是旧金山Marakana培训公司的创始人与首席Android专家。他创建了Android BootcampAndroidInternals两门课程,并培训了来自四大洲超过1000名开发者。他的客户包括高通、索尼爱立信、摩托罗拉、夏普、思科与美国国防部。

译者序

2008Google宣布Android SDK 1.0发布的时候,相信大家还不会想到,短短两三年间,这只不起眼的小机器人便已占据了手机市场的半壁江山——凭借开放的策略,使得智能手机真正平民化,彻底改变了手机市场的版图。面对变局,各大厂商得以发掘新的商机,开发者则得到了另一次一展身手的机会。我想,面对新的可能性,做点事情总是好的。

所幸在决定学习Android开发时,发现了O'Reilly的这本Open Book——Learning Android。此书篇幅不长,重视实践,正适合入门。了解过基本概念,搭好开发环境,随即就可以动手。顺着书中的主线,从一个Hello World程序出发,慢慢为它加血加肉,并不断重构,最后最终成型,从而基本概念也都已有亲身体会——最好的学习就是动手实践,这也正是贯彻此书全篇的主旨。如果读者正徘徊在Android开发的门口,那就向你推荐这本书好了,它可以助你迈过第一道门槛。

后经电子工业出版社编辑张春雨介绍,便立即联系到熊叔、iEle,开始了这本书的合作翻译。期间得到了张春雨、付睿两位编辑以及huangznullcckingsamchen等朋友的热情帮助,并由豆瓣的su27、朗讯的dashPOLYCOMfei对译稿进行了再三的细致修订,在此一并致谢。如今良译难求,批斗译者俨已蔚然成风。身为读者,都是怀着期望打开书本,对翻译再如何挑剔也是无可厚非的;但是身为译者,就倍感针芒在背了,在翻译中不敢不小心,唯恐这些文字让读者失望。可惜尽力之余,依然限于自身水平,行文中难免会留下一些疏漏,恳请广大读者批评指正。

译者

2011116

 

 

本书源自于Marakana Android 训练营几年来的培训课程,其学员包括数千名工作于全球四大洲中顶尖移动设备公司的软件开发人员。在教授这门课程的过程中,随着时间的推移,我逐渐发现了其中有效与无效的内容。在Marakana开发了Android训练营培训课程之后,我又对其进行了数次巨大的调整,终于将其中的精华凝结为此书。

Java还未被称为Java之前,我就已经开始使用它了。从一开始,我就对嵌入式开发非常感兴趣,因为这样我就可以在日常生活中的各种设备上编程。后来JavaWeb应用开发领域中得到极大发展,因此我之前十年的经验主要集中在构建大型企业系统上。然后Android出现了,我再一次兴奋地投入到为非计算机设备开发软件的工作中。而我现在的兴趣,是在那些甚至不是手机的设备上使用Android

本书会向了解Java(或者某种相似的语言)的人,讲解如何开发一个适度复杂的Android应用程序。我希望你能够感到本书非常容易理解,并且以实例为基础的学习过程能让你感到相当有动力。本书的目标是使你按照Android的方式来思考

内容简介

1章,Android概述

简单介绍Android及其历史。

2章,Android的架构

从全局的角度概括地介绍了Android操作系统及其各部分。

3章,快速入门

帮助你配置Android应用程序开发环境。

4章,基本构件

讲解开发人员用于创建一个应用程序的Android组件。

5章,Yamba项目简介

讲解我们会贯穿全书的Yamba应用程序,并通过一个例子来学习Android的诸多特性。

6章,Android用户界面

讲解如何为你的应用程序设计用户界面。

7章,首选项、文件系统、选项菜单及Intent

介绍一些操作系统中能够简化开发人员工作的特性。

8章,服务

介绍如何创建一个Android服务来处理后台任务。

9章,数据库

讲解Android框架对内置SQLite数据库的支持,以及如何在你的应用程序中使用其来保存数据。

10章,列表与适配器

介绍Android的一个重要特性,它允许大数据集合高效地链接较小的屏幕。

11章,广播接收器(Broadcast Receiver

介绍了如何应用Android中的发布订阅机制来响应系统和用户定义的各种消息。

12章,内容提供器(Content Provider

介绍如何设计一个内容提供器在应用程序之间共享数据,在本章中,我们将通过它来让应用程序小部件在主屏幕上显示数据。

13章, 系统服务

介绍可供开发者利用的一些系统服务。

14章,Android接口描述语言(AIDL

介绍如何构建一个进程间通信机制,使得另一个应用程序可以远程访问一个服务。

15章,Native Development KitNDK

介绍在你的应用程序中编写本地C代码。

致谢

本书之付梓面世离不开大家的协作。首先,要感谢O’Reilly的编辑Andy OramBrianJepsonAndy,你的建议总是一针见血,让我受益良多。Brian,感谢你说服我开始本书的写作。

感谢我的所有技术编辑:Dan BornsteinHervé GuihotFrank Maker IIIBill Schrickel。感谢你们孜孜不倦地审读我未成形的原稿,以及你们提供的宝贵建议。

没有我们在大量客户端上所做的实际测试,本书肯定不是现在的样子。你们绝对是Android的先驱者,你们的项目令人印象深刻。感谢你们的信任。

感谢我在Marakana的团队:Aleksandar (Saša) GargentaKen JonesLaurent Tonon。你们使用本书的原稿作为Android Bootcamp的教材,并给了我第一手的反馈。这里要特别感谢曾多次督促我回到写字台的Saša:如果没你深刻的技术评论,本书很可能几个月就草草了事了。

最后,深深地感谢我深爱的妻子Lisa和女儿Kylie。我知道当我一心扑在写作上时你们所做出的牺牲。感谢你们对我一如既往的支持。

 

前言 .................................................................................. xvii

1 Android概述 ............................................................ 1

概述 ..............................................................................................................................1

完整性 .................................................................................................................1

开源平台 .............................................................................................................2

为移动设备而设计 .............................................................................................2

历史 ..............................................................................................................................3

Google的动机 ......................................................................................................3

开放手持设备联盟 .............................................................................................3

Android的版本 ............................................................................................................4

总结 ..............................................................................................................................5

2 Android的架构 ......................................................... 7

架构概述 ......................................................................................................................7

Linux系统 ....................................................................................................................7

可移植性 .............................................................................................................7

安全性 .................................................................................................................8

丰富的特性 .........................................................................................................8

本地库 ..........................................................................................................................9

Dalvik 虚拟机 ..............................................................................................................9

AndroidJava ...................................................................................................10

应用程序框架 ............................................................................................................11

应用程序 ....................................................................................................................12

APK文件 ...........................................................................................................12

应用程序签名 ...................................................................................................12

应用程序发布 ...................................................................................................12

总结 ............................................................................................................................13

3 快速入门 ............................................................... 15

安装Android SDK .....................................................................................................15

设置PATH环境变量 ..........................................................................................16

安装 Eclipse .......................................................................................................16

Eclipse的工作区 ................................................................................................17

安装Android 开发工具 .....................................................................................17

Hello, World程序 .......................................................................................................18

创建新项目 .......................................................................................................18

Manifest文件 .....................................................................................................20

Layout(布局)XML代码 ...............................................................................21

Strings(字符串)文件 ....................................................................................21

R(资源)文件 .................................................................................................22

Java源码文件 ....................................................................................................22

仿真器 ........................................................................................................................23

仿真器和真机 ...................................................................................................25

总结 ............................................................................................................................26

4 基本构件 ............................................................... 27

什么是基本构件 ........................................................................................................27

一个实际的例子 ........................................................................................................27

活动(Activity ......................................................................................................28

活动的生命周期 ...............................................................................................28

Intent ..........................................................................................................................30

服务(Service ........................................................................................................31

内容提供器(Content Provider ............................................................................32

广播接收器(Broadcast Receiver ........................................................................34

应用程序上下文(Application Context ...............................................................34

总结 ............................................................................................................................35

5 Yamba项目简介 .................................................... 37

Yamba 应用程序 .......................................................................................................37

设计原则 ....................................................................................................................39

项目设计 ....................................................................................................................40

1部分:Android用户界面 ....................................................................................41

构建一个活动 ...................................................................................................41

网络和多线程 ...................................................................................................41

调试Android 程序 .............................................................................................41

2部分:首选项、文件系统、选项菜单及Intent ................................................41

活动 ...................................................................................................................42

菜单系统与Intent ..............................................................................................42

文件系统 ...........................................................................................................42

3部分:Android服务 ............................................................................................42

服务 ...................................................................................................................42

应用程序对象 ...................................................................................................42

4部分:使用数据库 ..............................................................................................43

SQLiteAndroid对它的支持 ...........................................................................43

再次重构代码 ...................................................................................................43

5部分:列表(List)与适配器(Adapter ......................................................43

时间轴(Timeline)活动 .................................................................................43

再重构一次 .......................................................................................................44

6部分:广播接收器(Broadcast Receiver ......................................................44

启动接收器与网络连接接收器 .......................................................................44

时间轴(Timeline)接收器 .............................................................................44

权限 ...................................................................................................................44

7部分:内容提供器(Content Provider ..........................................................44

状态数据 ...........................................................................................................45

Android小部件 ..................................................................................................45

8部分:系统服务 ..................................................................................................45

指南针与位置 ...................................................................................................45

Intent服务、提醒及通知 ..................................................................................45

总结 ............................................................................................................................46

6 Android用户界面 ................................................... 47

创建用户界面的两种方法 ........................................................................................47

声明式的用户界面 ...........................................................................................47

编程式的用户界面 ...........................................................................................48

各取所长 ...........................................................................................................48

控件与布局 ................................................................................................................48

LinearLayout ......................................................................................................49

TableLayout .......................................................................................................50

FrameLayout ......................................................................................................50

RelativeLayout ...................................................................................................50

AbsoluteLayout ..................................................................................................50

启动Yamba项目 ........................................................................................................50

StatusActivity布局 .....................................................................................................52

控件的重要属性 ...............................................................................................54

字符串资源 .......................................................................................................56

StatusActivity Java .................................................................................................56

编写具体应用的对象,以及初始化相关代码 ...............................................57

保存文件:编译代码和构建项目 ...................................................................59

添加库jtwitter.jar ...............................................................................................60

更新Manifest文件,获取Internet权限 .............................................................61

Android的日志机制 ..................................................................................................62

LogCat................................................................................................................63

Android的线程机制 ..................................................................................................65

单线程执行 .......................................................................................................65

多线程执行 .......................................................................................................66

AsyncTask ..........................................................................................................67

其他UI事件 ...............................................................................................................70

添加图片与色彩 ........................................................................................................75

添加图片 ...........................................................................................................75

添加色彩 ...........................................................................................................78

多版本资源文件 ........................................................................................................80

优化用户界面 ............................................................................................................81

Hierarchy Viewer 工具 ......................................................................................82

总结 ............................................................................................................................83

7 首选项、文件系统、选项菜单及Intent .................. 85

首选项 ........................................................................................................................85

资源文件 ...........................................................................................................86

PrefsActivity ..................................................................................................89

修改Manifest文件 .............................................................................................90

选项菜单 ....................................................................................................................91

菜单的资源文件 ...............................................................................................92

Android系统资源 ..............................................................................................93

更新StatusActivity,加载菜单 .........................................................................93

更新StatusActivity,捕获菜单事件 .................................................................94

字符串资源 .......................................................................................................95

Shared Preferences .....................................................................................................96

文件系统简介 ............................................................................................................98

浏览文件系统 ...................................................................................................98

文件系统的分区 ...............................................................................................99

系统分区 .........................................................................................................100

SDCard 分区 ....................................................................................................100

用户数据分区 .................................................................................................100

文件系统的安全机制 .....................................................................................101

总结 ..........................................................................................................................102

8 服务 ..................................................................... 103

YambaApplication对象 ........................................................................................104

YambaApplication .......................................................................................104

更新Manifest文件 ...........................................................................................106

简化 StatusActivity ..........................................................................................107

UpdaterService .........................................................................................................108

创建 UpdaterService Java............................................................................108

更新Manifest文件 ...........................................................................................110

添加菜单项 .....................................................................................................111

更新选项菜单的事件处理 .............................................................................111

测试服务 .........................................................................................................112

在服务中循环 ..........................................................................................................113

测试服务 .........................................................................................................116

Twitter 读取数据 ................................................................................................117

测试服务 .........................................................................................................121

总结 ..........................................................................................................................121

9 数据库 ................................................................. 123

关于 SQLite .............................................................................................................123

DbHelper ..............................................................................................................124

数据库模式及其创建 .....................................................................................124

4种主要操作 ...................................................................................................125

游标 .................................................................................................................126

第一个例子 ..............................................................................................................127

修改UpdaterService .................................................................................................129

测试服务 .........................................................................................................133

数据库约束 .....................................................................................................135

重构数据库访问 ......................................................................................................136

总结 ..........................................................................................................................142

10 列表与适配器 .................................................... 145

TimelineActivity ......................................................................................................145

TimelineActivity的基本布局 ..................................................................................146

ScrollView简介................................................................................................146

创建TimelineActivity ..................................................................................147

关于适配器 ..............................................................................................................150

TimelineActivity添加ListView ...................................................................151

创建一个单行消息布局 .................................................................................152

TimelineActivity.java中创建适配器 ...........................................................153

TimelineAdapter ......................................................................................................155

ViewBinder: 取代TimelineAdapter的更好选择 .....................................................158

更新Manifest文件 ...................................................................................................160

程序初始设置 .................................................................................................162

Base Activity ............................................................................................................163

服务开关 .........................................................................................................163

总结 ..........................................................................................................................170

11 广播接收器(Broadcast Receiver ................. 171

关于Broadcast Receiver ..........................................................................................171

BootReceiver ............................................................................................................172

BootReceiver注册到AndroidManifest文件 ................................................173

测试 Boot Receiver..........................................................................................173

TimelineReceiver .....................................................................................................173

广播Intent ................................................................................................................175

Network Receiver ....................................................................................................177

添加用于发送和接收广播的自定义权限 ..............................................................180

Manifest文件中声明权限 ...........................................................................180

为更新服务应用权限机制 .............................................................................181

TimelineReceiver应用权限机制 .................................................................183

总结 ..........................................................................................................................183

12 内容提供器(Content Provider...................... 185

创建Content Provider ..............................................................................................185

定义URI ...........................................................................................................186

插入数据 .........................................................................................................187

更新数据 .........................................................................................................188

删除数据 .........................................................................................................189

查询数据 .........................................................................................................190

获取数据类型 .................................................................................................191

更新Android Manifest文件 .............................................................................192

在小部件中使用Content Provider ..........................................................................192

实现YambaWidget .......................................................................................193

创建XML布局 .................................................................................................196

创建AppWidgetProviderInfo文件 ...................................................................197

更新Manifest文件 ...........................................................................................197

测试小部件 .....................................................................................................198

总结 ..........................................................................................................................198

13 系统服务 ........................................................... 201

实例:指南针 ..........................................................................................................201

使用系统服务的一般步骤 .............................................................................201

获取指南针的更新 .........................................................................................202

指南针的主活动 .............................................................................................203

自定义的表盘小部件 .....................................................................................206

位置服务 ..................................................................................................................208

实例: Where Am I ............................................................................................208

用上位置服务,重构Yamba ..................................................................................213

更新首选项 .....................................................................................................213

更新Yamba程序 ..............................................................................................214

更新Status Activity ..........................................................................................215

Intent服务 ................................................................................................................219

Alarms ..............................................................................................................222

在首选项中添加Interval选项 .........................................................................223

更新BootReceiver............................................................................................224

发送通知 ..................................................................................................................226

总结 ..........................................................................................................................229

14 Android接口描述语言 ........................................ 231

实现远程服务 ..........................................................................................................231

编写AIDL ........................................................................................................232

实现服务 .........................................................................................................233

实现一个Parcel................................................................................................235

注册到Manifest文件 .......................................................................................236

实现远程客户端 ......................................................................................................237

绑定到远程服务 .............................................................................................238

测试运行 .........................................................................................................241

总结 ..........................................................................................................................242

15 Native Development Kit (NDK) ......................... 243

NDK是什么 .............................................................................................................243

NDK的功能 .............................................................................................................244

工具链 .............................................................................................................244

打包库文件 .....................................................................................................244

文档与标准头文件 .........................................................................................244

NDK实例:计算菲波那契数列 .............................................................................245

FibLib ...............................................................................................................246

JNI 头文件 .......................................................................................................247

C 实现 ..............................................................................................................249

Makefile ...........................................................................................................251

构建共享库 .....................................................................................................251

Fibonacci Activity ............................................................................................251

测试所有的工作 .............................................................................................253

总结 ..........................................................................................................................254

索引 ................................................................................. 255

 

阅读(784) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~