Android 4编程入门经典—开发智能手机与平板电脑应用

时间:2022-12-04 15:53:20

Android 4编程入门经典

Android 4编程入门经典—开发智能手机与平板电脑应用

 

书名:

Android 4编程入门经典

原书名:

Beginning  Android 4 Application Development

重点指数

畅销书

作者:

(美)李伟梦著

ISBN:

978-7-302-30151-6

定价:

68.00元

出版日期:

2012.11

图书分类:

移动开发/android

样章试读:http://www.tupbook.com/BookView.aspx?id=2486

 

编辑推荐:

Wei-Meng Lee最新作品,国内首本译著android 4入门宝典

内容简介:

Android 4的问世,标志着Google将Android操作系统的大旗插到了智能手机和平板电脑的阵营中。这本指南书将教会您成功开发Android应用程序所需的一切。本书涵盖了Android应用程序开发的所有基础,包括用户界面、网络、SMS消息传递、数据库、基于位置的服务和部署等。资深作者Wei-Meng Lee为您铺就了一条成功开发和部署Android应用程序的康庄大道。

主要内容

◆讨论了如何适应不同的显示方向、如何理解屏幕的组件

以及如何处理用户界面通知

◆描述了在使用TextView、ProgressBar、AutoComplete-

TextView、TimePicker、ListView等视图设计用户界面时

涉及的元素

◆演示了如何使用视图显示图片和菜单

◆讲解了如何使用内容提供者和如何创建自己的内容提供者

◆示范了如何将长时间运行的任务放到单独的线程中

◆介绍了如何构建使用SMS消息传递跟踪位置的应用程序

◆阐述了如何使用JSON和套接字编程构建自己的聊天应用

程序

◆探讨了如何准备Android应用程序来发布到Android

Market

 

作 者简 介

Wei-Meng Lee是Developer Learning Solutions公司(www.learn2develop.net)的创始人和技术专家,这家技术公司专门从事最新移动技术的培训。Wei-Meng Lee具有多年的培训经验,他的培训课程特别强调实践学习法。这种动手学习编程的方法比通过阅读书籍、教程和文档来理解主题要容易得多。

Wei-Meng Lee还是Beginning iOS 5 Application Development(Wrox, 2010)和Beginning Android Application Development(Wrox, 2011)的作者。读者可以通过weimenglee@learn2develop.net与他联系。

技术编辑简介

Chaim Krause是US Army’s Command and General Staff College学院的模拟专家(Simulation Specialist),他为该学院开发了运行在多种平台(从iOS和Android设备到Windows桌面操作系统和Linux服务器)的各种各样的软件产品,并且还担负其他一些工作。Python是他最喜欢的语言,但是他本人擅长使用多种语言,比如使用Java和JavaScript/HTML5/CSS等编写代码。很幸运,他的软件开发职业生涯是在Borland开始的,当时他是Delphi语言的高级开发支持工程师。除了计算机相关的工作,Chaim喜欢techno音乐和dubstep音乐,以及和自己的两条雪橇犬Dasher和Minnie玩踏板车。

 

前    言

我最开始玩Android SDK是在其正式版本1.0发布以前。那时,工具还不完善,SDK中的API不稳定,文档也很缺乏。经过三年半时间的快速发展,现在的Android已经成为一个和iPhone相比毫不逊色的强大的移动操作系统。由于经历过Android成长的所有痛苦,我想现在是开始学习Android编程的最好时机—API已经稳定,工具也有了改善。但是仍然存在一个挑战:对许多人来说,入门仍是一个可望而不可及的目标。这一挑战在我脑海里徘徊许久,也成为我写本书的动力,它也许可以给Android初级程序员带来益处,并使他们能够逐步编写更复杂的应用程序。但是,对很多人来说学习Android仍然不太容易。而且,Google最近发布了Android SDK的最新版本—4.0,这是同时可用于智能手机和平板电脑的一个统一的移动操作系统。Android 4.0 SDK包含原来平板电脑开发人员可用的一些新功能,初学者理解这些新功能需要付出一些努力。

正是考虑到了初学者面临的这种挑战,我决定创作本书,让Android编程初学者能够逐步掌握开发复杂应用程序的方法。

由于本书是写给Android初级开发人员的,为的是使他们能够快速上手,因此我以线性方式涵盖了必要的主题,这样可以使您建立起自己的知识体系而不会被细节淹没。我采取的哲学观点是:最好的学习方法是实践—因此,每一章的“试一试”部分将首先教您如何构建一些东西,然后解释其工作原理。我利用创作本书的机会对本书的上一版进行了修订和更新,加入了读者的反馈和对Android初学者很重要的一些主题。

尽管Android编程是一个宏大的主题,但本书要实现三重目标:帮助读者从最基本的原理入手、使读者理解SDK的底层架构以及领会事情要按特定方式完成的原因。任何一本书都不能面面俱到地介绍有关Android编程的知识,但我确信当您阅读完此书(并做了练习)之后,将有充分的准备来应对下一个Android编程的挑战。

本书读者对象

本书针对的是打算使用Google的Android SDK来开发应用程序的Android初级开发人员。为了从本书中真正获益,您应该在编程方面具有一些背景知识,并且至少熟悉面向对象编程的概念。如果对Java(Android开发所用的语言)一无所知,那么您也许应该首先学习一门Java编程课程,或者阅读有关Java编程方面的优秀书籍。以我的经验,如果您已经了解C#或VB.NET,学习Java就比较轻松;只要按照“试一试”的步骤就可以使您的学习过程顺利进行。

对于那些对所有编程概念都一无所知的人来说,我知道开发移动应用程序并赚到钱是很有诱惑力的。然而,在尝试本书的示例之前,我想首先学习一些基本的编程知识才是更好的着手点。

本书主要内容

本书涵盖了使用Android SDK进行Android编程的基本概念,共分为12章和3个附录。

“第1章:Android编程入门”介绍了Android操作系统的基本概念和当前发展状况。您可以了解Android设备的各种功能以及市场上一些比较流行的设备。还可以学习如何下载和安装所有必需的工具来开发Android应用程序并在Android模拟器上进行测试。

“第2章:活动、碎片和意图”使您熟悉Android编程中的这三个最重要的概念。活动和碎片是Android应用程序的构建块。您将学习如何使用意图将活动链接起来形成一个完整的Android应用程序。这是Android操作系统的独特特征之一。

“第3章:Android用户界面”介绍了Android应用程序的用户界面的不同组成部分。您将学习到用来构建应用程序的用户界面的不同布局,以及当用户和应用程序交互时与用户界面相关联的多种事件。

“第4章:使用视图设计用户界面”介绍了可用于构建Android用户界面的各种基本视图。该章将学习3组主要的视图:基本视图、选取器视图和列表视图,还将学习Android 3.0和Android 4.0中可用的特殊碎片。

“第5章:使用视图显示图片和菜单”继续研究视图。您将了解到如何使用不同的图像视图来显示图像,以及在应用程序中显示选项和上下文菜单。该章最后将额外介绍一些很酷的视图,可以用它们来为您的应用程序锦上添花。

“第6章:数据持久化”教您如何在Android应用程序中保存或存储数据。除了学习使用不同的技术来存储用户数据外,您将学习到文件操作以及如何把文件保存到内部或外部存储器(SD卡)上。此外,还将学习到如何在Android应用程序中创建和使用SQLite数据库。

“第7章:内容提供者”讨论了在Android设备的不同应用程序间如何共享数据。您将学习如何使用内容提供者并自己创建一个。

“第8章:消息传递”研究了移动编程中最有趣的两个主题——发送SMS消息和电子邮件。您将学习如何以编程方式发送和接收SMS消息和电子邮件,以及如何拦截传入的SMS消息,使内置的Messaging应用程序不能收到任何消息。

“第9章:基于位置的服务”描述了如何使用Google Maps来构建基于位置的服务应用程序。您还将学习到如何获取地理位置数据并在地图上显示该位置。

“第10章:联网”研究了如何连接Web服务器来下载数据。您将看到如何在Android应用程序中使用XML和JSON Web服务。本章还将介绍套接字编程,以及如何在Android中构建一个聊天客户端。

“第11章:开发Android服务”将向您展示如何使用服务来编写应用程序。服务是运行于后台且没有用户界面的应用程序。您将了解如何在一个单独的线程中以异步方式运行您的服务,以及活动与之通信的方法。

“第12章:发布Android应用程序”讨论了您在准备好发布Android应用程序时可以采用的不同方法。您还将了解到在Android Market上发布并出售应用程序的必要步骤。

“附录A:使用Eclipse进行Android开发”简要概述了Eclipse中的许多功能。

“附录B:使用Android模拟器”提供了有关使用Android模拟器进行应用程序测试方面的一些提示和技巧。

“附录C:练习答案”包含了每章最后的练习的答案。

本书结构安排

本书将学习Android编程的任务分解为若干个更小的环节,使您能够在钻研更高级的内容之前消化每一个主题。

如果您对于Android编程完全是个新手,那就首先从第1章开始。一旦熟悉基本概念,就可以转到附录去阅读更多有关Eclipse和Android模拟器的知识。当完成这些之后,可以再从第2章继续,并按部就班地学习更高级的主题。

本书一大特色就是每章的所有示例代码都独立于先前章节所讨论的内容。这样,您可以灵活地转入到所感兴趣的主题并按照“试一试”的项目内容开始练习。

使用本书的前提条件

本书中的所有示例都在Android模拟器(作为Android SDK的一部分)中运行。当然,为了从本书中得到更多收获,拥有一个真实的Android设备还是很有益的(尽管这不是绝对必要的)。

源代码

在读者学习本书中的示例时,可以手动输入所有代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点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图书的所有代码。

勘误表

尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。

要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。

如果您发现的错误在我们的勘误表里还没有出现的话,请登录www.wrox.com/contact/techsupport.shtml并完成那里的表格,把您发现的错误发送给我们。我们会检查您的反馈信息,如果正确,我们将在本书的勘误表页面张贴该错误消息,并在本书的后续版本加以修订。

p2p. wrox.com

要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家以及读者都会到这个论坛上探讨问题。

在p2p.wrox.com上有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤。

(1) 进入p2p.wrox.com,单击Register链接。

(2) 阅读使用协议,并单击Agree按钮。

(3) 填写加入该论坛所需要的信息和自己希望提供的其他可选信息,单击Submit按钮。

(4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。

 

加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。

要想了解更多的有关论坛软件的工作情况,以及P2P和Wrox图书的许多常见问题的解答,就一定要阅读FAQ,只需要在任意P2P页面上单击FAQ链接即可。

目    录

 

第1章 Android编程入门 1

1.1  Android简介    2

1.1.1 Android版本  2

1.1.2 Android功能  3

1.1.3 Android架构  3

1.1.4 市场上的Android设备 4

1.1.5 Android Market   7

1.1.6  Android开发社区  7

1.2  获得所需工具   8

1.2.1  Android SDK  8

1.2.2  安装Android SDK工具 9

1.2.3  配置Android SDK

Manager 10

1.2.4  Eclipse  11

1.2.5  Android开发工具  12

1.2.6  创建Android虚拟

设备(AVD)   14

1.3  创建第一个Android应用

程序    17

1.4  Android应用程序剖析    24

1.5  本章小结   28

第2章  活动、碎片和意图    31

2.1  理解活动   31

2.1.1  如何对活动应用样式

和主题  36

2.1.2  隐藏活动标题 37

2.1.3  显示对话框窗口   38

2.1.4  显示进度对话框   43

2.1.5  显示更复杂的进度对话框   46

2.2  使用意图链接活动   50

2.2.1  解决意图筛选器的冲突 54

2.2.2  从意图返回结果   56

2.2.3  使用意图对象传递数据 59

2.3  碎片   65

2.3.1  动态添加碎片 70

2.3.2  碎片的生命周期   72

2.3.3  碎片之间进行交互 76

2.4  使用意图调用内置应用程序   80

2.4.1  理解意图对象 85

2.4.2  使用意图筛选器   86

2.4.3  添加类别 91

2.5  显示通知   93

2.6  本章小结   98

第3章 Android用户界面 101

3.1  了解屏幕的构成 101

3.1.1  视图和视图组 102

3.1.2  LinearLayout 103

3.1.3  AbsoluteLayout   109

3.1.4  TableLayout  110

3.1.5  RelativeLayout   111

3.1.6  FrameLayout  113

3.1.7  ScrollView   115

3.2  适应显示方向   118

3.2.1  锚定视图 119

3.2.2  调整大小和重新定位   121

3.3  管理屏幕方向的变化 124

3.3.1  配置改变时保持状态

信息    127

3.3.2  检测方向改变 128

3.3.3  控制活动的方向   129

3.4  使用Action Bar 130

3.4.1  向Action Bar添加动作项  132

3.4.2  定制动作项和应用

程序图标    138

3.5  以编程方式创建用户界面 139

3.6  侦听用户界面通知   142

3.6.1  重写活动中定义的方法 142

3.6.2  为视图注册事件   146

3.7  本章小结   149

第4章  使用视图设计用户界面    151

4.1  基本视图   151

4.1.1  TextView视图 152

4.1.2  Button、ImageButton、EditText、

CheckBox、ToggleButton、

RadioButton和RadioGroup

视图    152

4.1.3  ProgressBar视图  163

4.1.4  AutoCompleteTextView

视图    169

4.2  选取器视图 171

4.2.1  TimePicker视图   171

4.2.2  DatePicker视图   176

4.3  使用列表视图显示长列表 183

4.3.1  ListView视图 183

4.3.2  使用Spinner视图 191

4.4  了解特殊碎片   194

4.4.1  使用ListFragment 194

4.4.2  使用DialogFragment   199

4.4.3  使用PreferenceFragment   202

4.5  本章小结   206

第5章  使用视图显示图片和菜单  209

5.1  使用图像视图显示图片   209

5.1.1  Gallery和ImageView

视图    209

5.1.2  ImageSwitcher    217

5.1.3  GridView 222

5.2  将菜单和视图一起使用   225

5.2.1  创建辅助方法 226

5.2.2  选项菜单 228

5.2.3  上下文菜单   230

5.3  其他一些视图   233

5.3.1  AnalogClock和DigitalClock

视图    233

5.3.2  WebView  234

5.4  本章小结   240

第6章  数据持久化  243

6.1  保存和加载用户首选项   243

6.1.1 使用活动访问首选项    244

6.1.2  通过编程检索和修改首

选项值  250

6.1.3  修改首选项文件的默认

名称    252

6.2  将数据持久化到文件中   254

6.2.1  保存到内部存储器 254

6.2.2  保存到外部存储器

(SD卡)  259

6.2.3  选择最佳存储选项 262

6.2.4  使用静态资源 263

6.3  创建和使用数据库   264

6.3.1  创建DBAdapter辅助类 265

6.3.2  以编程方式使用数据库 270

6.3.3  预创建数据库 277

6.4  本章小结   281

第7章  内容提供者  283

7.1  在Android*享数据   283

7.2  使用内容提供者 284

7.2.1  预定义查询字符串常量 289

7.2.2  投影 292

7.2.3  筛选 293

7.2.4  排序 294

7.3  创建自己的内容提供者   295

7.4  使用内容提供者 304

7.5  本章小结   309

第8章  消息传递    311

8.1  SMS消息传递    311

8.1.1  以编程方式发送SMS

消息    312

8.1.2  发送消息后获取反馈   315

8.1.3  使用意图发送SMS消息 318

8.1.4  接收SMS消息 319

8.1.5  说明和警告   334

8.2  发送电子邮件   335

8.3  本章小结   338

第9章  基于位置的服务  339

9.1  显示地图   339

9.1.1  创建项目 340

9.1.2  获取Maps API密钥    340

9.1.3  显示地图 343

9.1.4  显示缩放控件 346

9.1.5  改变视图 349

9.1.6  导航到特定位置   350

9.1.7  添加标记 353

9.1.8  获取触摸的位置   356

9.1.9  地理编码和反向地理

编码    358

9.2  获取位置数据   362

9.3  监控一个位置   371

9.4  项目—创建一个位置跟踪

应用程序    372

9.5  本章小结   378

第10章  联网   381

10.1  通过HTTP使用Web服务 381

10.1.1  下载二进制数据  384

10.1.2  下载文本内容    390

10.1.3  通过GET方法访问Web

服务    392

10.2  使用JSON服务 397

10.3  套接字编程    405

10.4  本章小结  414

第11章  开发Android服务   417

11.1  创建自己的服务    417

11.1.1  在服务中执行长时间运行

的任务  421

11.1.2  在服务中执行重复的

任务    426

11.1.3  使用IntentService在单独的

线程上执行异步任务  430

11.2  在服务和活动之间通信  433

11.3  将活动绑定到服务  437

11.4  理解线程  442

11.5  本章小结  448

第12章  发布Android应用程序   451

12.1  为发布做准备  451

12.1.1  版本化  451

12.1.2  对Android应用程序进行

数字签名    454

12.2  部署APK文件  459

12.2.1  使用adb.exe工具    459

12.2.2  使用Web服务器  461

12.2.3  在AndroidMarket上

发布    462

12.3  本章小结  467

附录A  使用Eclipse进行Android

开发    469

附录B  使用Android模拟器   483

附录C  练习答案 595