Android应用开发入门
2013-1
人民邮电出版社
杰克逊
265
408000
周自恒
无
在过去两年中,Google的Android操作系统已经从一个几乎默默无闻的开源软件,发展成如今占据移动操作系统1/3市场份额的领导者,并且其份额还在快速攀升。Android已经开始占领平板电脑操作系统市场,并以GoogleTV向苹果iTV操作系统的基础发起挑战。目前看来,Android并没有停下其快速发展的脚步,对于本书的读者来说,这显然是一个好消息。 有很多人问我:“我有一个特别棒的智能手机应用的点子!你能帮我编出来吗?”我觉得与其自己坐在那里帮所有人编写应用程序,还不如写一本书出来呢。这本书面向初学者,介绍如何用免费下载、免费商用的开源工具来编写Android应用程序,以及如何用这些新学习的知识,让应用程序的点子为你带来收益。 对象:编程初学者 正如书名所言,本书假设你从未使用任何编程语言编写过任何程序。本书的读者对象是从来没有编写过一行代码,也不了解Oracle的Java这样的面向对象编程(简称OOP)语言,以及XML这样的标记语言的人。这两种开源的编程语言,在编写Android应用程序的过程中都要大量使用。 市面上有很多介绍Java和Android的书,但这些书都假定读者曾经编写过程序,而且了解关于OOP的知识。我想让对编程,甚至是对如何安装软件开发工具包(Software Development Kit,SDK)和集成开发环境(Integrated Development Environment, IDE)一无所知的读者,通过本书的学习,能够使用Java和XML来编写Android应用程序。 武器:Android,创新的移动开发环境 Android是我从事Internet 2.0开发的得力武器,因为我可以用它来为所有主流的Internet 2.0设备编写非常高级的应用程序,这些设备包括目前能带来最多收益的三大类平台: 智能手机 平板电脑 iTV(交互式电视) 我选择Android的另一个原因是它是开源的,免专利费用,且行事自由。在发布应用程序之前,我不需要提交给某个公司去征得他们的同意,只要我的应用程序不会对他人造成侵害就行。出于这个原因,以及开源软件可免费用于商业这一性质,为Android平台开发应用程序几乎不会有任何外在风险。 本书内容的组织方式 由于本书是面向初学者的,所以我们需要从零开始,先介绍到哪里去下载以及如何安装各种Android、Java和Eclipse环境,如何配置这些环境,以及如何用它们来开发和测试应用程序。这些工作可不简单,而且不能出错,因为这些工具是本书中一切Android开发、调试和测试工作的基础。 接下来我将带你了解Android是如何诞生的,Google收购它的原因、过程和时间,以及它与其他一些软件开发平台相比有哪些独特之处。然后,我将介绍XML、Java、OOP和Android的一些概念,还将涉及Android如何管理屏幕布局。在本书后半部分的章节中,我们会将这些概念付诸实践,这些章节将按照应用程序开发中最具逻辑的顺序,来解释Android中最重要的一些概念。 在本书的后半部分,我们将介绍如何设计用户界面(User Interface,UI)。用户界面是用户与Android应用程序进行交互的前端界面。接下来我们将通过事件处理机制,介绍UI是如何与应用程序交流的。为了让你的应用程序看上去更酷,我们会介绍图像、动画和视频的使用,然后还将介绍一些高阶的话题,如数据库和通信。 最后,我们将带你了解一些Android的高级特性。你可能需要在读完本书之后再学习这些内容,因为它们对于一本Android基础教程来说太过高深了,但是它们却能实现当今智能手机开发中一些非常酷的功能。 在讲解所有话题和概念时,我们会展示IDE的截图以及一些可视化的例子,然后带你一步一步地完成一些实例,加深你对这些概念的理解。有时候我们会回顾之前讲过的一些话题,以便你理解得更加深入,并对所学的技能举一反三。这种方式可以让初学编程的读者反复应用开发技能,并在进步中获得成就感。 成功的秘诀 学习开发Android应用程序的过程,就是你与本书中所介绍的工具和技术(Eclipse、XML、Java、Android等)进行交互的过程。正如学习一项体育运动一样,需要学习技能并且每天练习。要深入理解每一个概念,你需要亲手尝试书中的实例和练习,如果需要的话,最好多重复几次。 搞懂了一个概念,并不代表你懂得如何创造性地、有效地应用这一概念。你需要勤加练习,当最终在应用情景中理解了这个概念,并理解了与之相关的其他概念时,你就会体会到一种茅塞顿开的喜悦。 在这本基础教程中,你将学习一些Android的工作原理。通过书中的练习,你会了解更多Android内部的秘密。当你编译、运行、调试程序时,还将学到一些书中并没有特别提到的新知识。花点时间测试你的代码,搞清楚为什么它没有达到你所设想的效果,或者尝试增加些新的功能,总之,这个学习的过程是非常宝贵的。 当然,调试的过程对于初学者来说可能非常痛苦,你可能会抓狂到想对着显示器来一枪。你会怀疑自己到底为什么要这么做,以及自己是否有能力去解决所遇到的问题。在编程过程中受挫是很正常的,即便是最有经验的开发者也会遇到问题。 正如运动员一样,你练习得越刻苦,技术就会越好。作为一名Android开发者,你可以做很多了不起的事,整个世界都由你做主,而最令你欣慰的成就莫过于看到自己的应用在Android应用商店里上架。当然,要实现这些需要付出一些代价,那就是花时间不断磨练你的代码。 这里有一些成功的秘诀分享给你。 相信自己能行。你可能是世界上唯一一个说自己不行的人,所以千万别对自己说不行。 认真实践本书中所有的实例和练习,有必要的话可以做两遍,直到弄懂为止。 写代码,写更多的代码,一直写下去,不要停。你写的代码越多,学到的就越多。 要有耐心。也许你曾经是个尖子生,可以过目不忘,但Java和XML是不可能看一遍就学会的。你必须花很多的时间来编写代码,才能弄清楚在这个操作系统内部到底发生了什么。 无论做什么,都不要放弃! 所需的软件、材料和设备 Java、Android和Eclipse有一个很大的优点,它们可以提供32位和64位版本,并且可以用于目前使用最广泛的三种主流操作系统: Windows Mac Linux Java、Android和Eclipse的另一个优点就是,它们是免费的。你可以从网站下载Android。在设备方面,只要有一台主流配置的电脑就行。现在电脑非常便宜,而且你可以安装一个免费的操作系统,如SUSE Linux,来作为你的开发用操作系统。SUSE Linux V11可以从网站下载。当前的最新版本为11.4,它已经足够稳定了。 1. 操作系统和IDE 尽管Android可以运行在很多平台上,但Android开发者使用最多的Eclipse集成开发环境(IDE)一般是运行在Intel架构的Windows或Linux电脑上的。Eclipse IDE是免费的,可以从网站下载。要更好地运行Eclipse,你的操作系统应该是Windows XP以上,或者SUSE Linux 11.4以上。 2. 软件开发工具包 需要从Eclipse网站下载Eclipse IDE,从Google网站下载Android SDK。 3. 双屏显示 我建议开发者在电脑上连接两台显示器。拥有两台独立的显示器,可以让你在查看代码的同时,在另一台显示器上查看输出窗口和Android模拟器。如今的电脑硬件配置足以满足这一需求,只要将第二台显示器插在任何一台Intel架构的电脑的第二个显示端口上,并且电脑上正确安装了显示适配器,你就可以拥有两台独立工作的显示器了。注意,双屏显示不是必需的。如果你没有双屏显示,只要调整一下打开的窗口,使它们适合自己的屏幕就可以了。
《Android应用开发入门》为Android应用开发的入门课程,以深入浅出、循序渐进的方式讲述Android开发,并且结合实际例子讲解各个知识点。主要内容包括:机器部署;Java和XML简介;使用Eclipse的高效开发;应用框架概览;UI和图形设计;添加交互;内容提供程序、Intent、Intent
Filter;用Java和XML基础知识构建高级应用等。
《Android应用开发入门》适合移动开发人员以及所有对Android应用开发感兴趣的人员阅读。
Wallace Jackson Mind Taffy Design公司首席执行官。Mind
Taffy创立于1991年,是一家从事新媒体内容设计和制作的公司。在过去20多年里,Wallace一直引领i3D和富媒体应用设计领域的潮流,使用不超过512KB的数据容量来制作病毒式传播的数字内容。他曾为世界领先的国际品牌提供服务,为业界领先的公司(其中包括财富500强公司)制作定制化的数字新媒体项目。
Wallace拥有美国南加州大学营销战略专业MSBA学位、南加州大学马歇尔商学院管理信息系统设计与实施专业MBA学位,以及加州大学洛杉矶分校安德森管理学院商业经济学学士学位。
周自恒
生于天津,毕业于上海外国语大学,现居上海。IT、编程爱好者,自称伪Geek,初中时曾在NOI(国家信息学奥赛)天津赛区获一等奖。大学学习语言,毕业后曾任IT系统咨询顾问,精通英语和日语,译著有《30天自制操作系统》。新浪微博:@馒头家的花卷。
第1章 绪论
1.1 Android是什么
1.2 Android的优势
1.3 本书范围
1.3.1 本书所涉及的内容
1.3.2 本书未涉及的内容
1.4 下载SDK工具
1.4.1 Java
1.4.2 Eclipse
1.4.3 Android SDK
1.5 小结
第2章 本书内容梗概
2.1 Android集成开发环境
2.2 Java、XML以及Android的工作原理
2.3 Android应用程序框架
2.4 屏幕布局设计
2.5 用户界面设计
2.6 图像与动画设计
2.7 交互性
2.8 内容提供器
2.9 Intent和Intent过滤器
2.10 Android的未来
2.11 小结
第3章 配置Android开发环境
3.1 安装Java、Eclipse和Android
3.1.1 Java SE和JRE:应用程序开发的基础
3.1.2 Eclipse IDE:开发环境
3.1.3 Android SDK:用于Eclipse的Android工具包
3.1.4 Android开发工具:用于Eclipse的Android工具
3.1.5 Eclipse中的Android环境
3.2 升级Android SDK
3.3 配置AVD与智能手机连接
3.3.1 AVD:智能手机模拟器
3.3.2 USB智能手机驱动程序:外部设备
3.4 在64位平台上进行开发
3.5 小结
第4章 Android软件开发平台介绍
4.1 了解Java SE与Dalvik虚拟机
4.2 Android工程的目录结构
4.2.1 典型的默认资源目录
4.2.2 Values目录
4.3 用好Android XML(你的秘密武器)
4.3.1 屏幕尺寸
4.3.2 桌面时钟
4.4 使用Android应用程序资源
4.4.1 位图图片
4.4.2 可选资源目录
4.5 启动应用程序:AndroidManifest.xml文件
4.6 创建第一个Android应用
4.6.1 启动Eclipse
4.6.2 创建一个Android工程
4.6.3 查看并编辑应用程序文件
4.6.4 在strings.xml中设置一个变量的值
4.6.5 运行应用
4.6.6 添加应用程序图标
4.7 小结
第5章 Android框架概览
5.1 OOP的基础:对象
5.1.1 一些OOP术语
5.1.2 对象的设计图:类
5.1.3 为类赋予结构:继承
5.1.4 定义接口
5.1.5 将类组织起来:包
5.2 XML概览
5.3 剖析Android应用程序:APK文件
5.4 Android应用程序组件
5.4.1 Android活动:定义UI
5.4.2 Android服务:后台处理
5.4.3 广播接收器:消息和通知
5.4.4 内容提供器:数据管理
5.5 Android Intent对象:组件的通信
5.6 Android Manifest XML:组件的声明
5.7 小结
第6章 屏幕布局设计:视图与布局
6.1 Android视图结构
6.1.1 使用View类
6.1.2 嵌套视图:使用ViewGroup类
6.2 定义屏幕布局:使用XML
6.2.1 配置屏幕布局
6.2.2 使用线性布局
6.2.3 使用相对布局
6.2.4 滑动抽屉:扩展你的UI
6.2.5 在视图和布局中使用内外边距和外外边距
6.2.6 在View中设置内边距
6.2.7 在ViewGroup中设置外边距
6.3 小结
第7章 按钮、菜单与对话框
7.1 使用常见的UI元素
7.1.1 为布局添加图像按钮
7.1.2 为布局添加文本
7.1.3 添加图片
7.2 使用菜单
7.2.1 用XML创建菜单结构
7.2.2 定义菜单项文本
7.2.3 通过Java载入菜单结构
7.2.4 在Android模拟器中运行应用
7.2.5 让菜单发挥作用
7.3 添加对话框
7.3.1 使用自定义对话框子类
7.3.2 显示警告对话框
7.4 小结
第8章 Android图像资源介绍
8.1 图像资源简介
8.1.1 调用图片
8.1.2 核心图像资源子类
8.2 使用位图
8.2.1 PNG图片
8.2.2 JPEG和GIF图片
8.3 创建动画
8.3.1 基于帧的2D动画
8.3.2 补间动画
8.4 使用过渡
8.5 创建9-Patch自定义伸缩图片
8.6 播放视频
8.6.1 添加VideoView对象
8.6.2 为视频添加Java代码
8.7 小结
第9章 增加交互性:处理UI事件
9.1 UI事件概述
9.1.1 监听及处理事件
9.1.2 通过View类处理UI事件
9.1.3 事件回调方法
9.2 处理onClick事件
9.2.1 为UI元素实现onClick监听器
9.2.2 向活动添加onClick监听器
9.3 Android触摸屏事件:onTouch
9.4 触屏版右键点击:onLongClick
9.5 键盘事件监听器:onKeyUp和onKeyDown
9.5.1 添加用于键盘事件的XML代码
9.5.2 添加用于键盘事件的Java代码
9.6 上下文菜单:onCreateContextMenu
9.6.1 添加用于上下文菜单的XML代码
9.6.2 添加用于上下文菜单的Java代码
9.7 焦点控制
9.7.1 添加用于焦点控制的XML代码
9.7.2 添加用于焦点控制的Java代码
9.7.3 设置焦点可用性
9.8 小结
第10章 了解内容提供器
10.1 Android内容提供器概述
10.1.1 数据库和数据库管理系统
10.1.2 Android内置内容提供器
10.2 定义内容提供器
10.2.1 在Eclipse中创建内容提供器示例
10.2.2 定义安全权限
10.2.3 向联系人数据库添加数据
10.3 操作数据库
10.3.1 查询内容提供器
10.3.2 向内容提供器添加数据
10.3.3 修改内容提供器数据
10.3.4 删除内容提供器数据
10.4 小结
第11章 了解Intent和Intent过滤器
11.1 什么是Intent
11.2 通过Intent对象传递消息
11.3 Intent解析:显式Intent和隐式Intent
11.3.1 显式Intent
11.3.2 隐式Intent
11.4 在活动中使用Intent
11.4.1 编写数字时钟活动
11.4.2 连接到应用程序
11.4.3 发送Intent
11.5 Android服务:在自己的类中处理数据
11.5.1 在服务中使用Intent
11.5.2 创建服务
11.5.3 实现媒体播放功能
11.5.4 将按钮连接到服务
11.5.5 运行应用程序
11.6 在广播接收器中使用Intent
11.6.1 用XML创建定时器用户界面
11.6.2 创建一个定时广播接收器
11.6.3 配置AndroidManifest.xml文件的标签
11.6.4 实现Intent
11.6.5 在Android 1.5模拟器中运行定时器应用程序
11.7 小结
第12章 探索未来
12.1 创建自定义部件
12.2 位置服务
12.3 Google地图
12.4 Google搜索
12.5 数据存储
12.5.1 共享配置选项
12.5.2 内部存储
12.5.3 外部存储
12.5.4 使用SQLite
12.6 设备管理:IT安全部署
12.7 用Camera类控制摄像头
12.8 3D图形:使用OpenGL ES 1.x
12.9 面部识别
12.10 音频池
12.11 媒体录制
12.12 小结
版权页: 插图: 5.4.4内容提供器:数据管理 Android中的内容提供器可以在需要的情况下,让你的应用程序以及其他应用程序访问某些数据。这些数据可以是你自己的应用程序所创建的,也可以是你的应用程序可以访问,但是由其他应用程序甚至是Android手机工具所创建的。你的应用程序也可以将所创建的数据开放给其他应用程序进行访问。内容提供器组件功能强大,且十分灵活。 举个例子,Android手机工具可以使用内容提供器来访问智能手机中保存的通讯录数据库。Android中带有一些内置的内容提供器数据库,包括通讯录、照片、音乐和视频。通过编写代码,这些数据就可以由手机系统工具,或者是你的应用程序来访问。 内容提供器的数据可以保存在手机SD卡的文件系统中,也可以保存在远程HTTPH艮务器中,或者是在一个合适的数据库中。在Android中,推荐使用最后一种方式来保存和访问数据,你将在第10章中看到它是如何工作的,届时我们会介绍如何使用内容提供器。 要创建自己的内容提供器,可以派生ContentProvider类,这个类实现了一套标准的方法,用来保存和获取数据。应用程序可以通过一个ContentResolver对象来访问你的ContentProvider类中所定义的方法,ContentResolver对象用于和内容提供器进行沟通,并获取应用程序所需的数据。 内容提供器在接收到来自内容解析器的数据请求时才会被激活。另外三种组件——活动、服务和广播接收器——则由被称为Intent的异步消息来激活,接下来我们就来看看Intent。 5.5 Android Intent对象:组件的通信 Andorid中的Intent对象承载了在模块间传送的消息,基本上用于启动这些模块或者对它们发送新的任务指令。对于活动和服务,Intent对象提供了一个需要执行的动作以及执行这个动作所需要的数据,可能还包括更复杂的操作所需的详细附加信息。 对于每种类型的Androi组件(活动、服务和广播接收器),需要使用一些不同的方法来接收传递给它的Intent对象。因此,Intent对象很容易区分清楚并且定义明确,因为它们对于每种类型的Android组件来说都是不同的。 这些组件将会像下面这样使用Intent对象中的方法: 通过将一个Intent对象传递给Context.startActivity()方法可以启动一个活动,或者如果这个活动已经被启动了,则赋予它一个新的任务。Activity类可以通过getIntent()方法来查看Intent对象中的内容,并通过0nNewIntent()方法来查看后续的Intent对象。 通过将一个Intent对象传递给Context.startService()方法可以启动一个AndroidH艮务组件,接下来将会调用服务类中的0nStart()方法,并将包含服务要执行的动作和所需数据的Intent对象传递给它。 如果服务已经在运行,且Intent对象中包含新的指令,则这个Intent会被传递给Context.bindService()方法,用来在服务和调用它的组件之间建立一个打开的连接。这种在代码模块间一直打开的实时连接,在编程中通常被称为“绑定”(Binding)。 通过将一个Intent对象传递给Context.sendBroadcast()方法,或者Context.sendOrdered—Broadcast()以及Context.sendstickyBroadcast()方法,可以启动一个Android广播接收器组件。这里的Intent对象包含需要执行的动作,以及执行该动作所需的数据(消息)。 我们将在第11章中详细介绍如何对活动来使用Intent对象。
“我以前买的介绍Java和Android的书都默认读者已经了解了OOP的知识,而本书是面向编程初学者的,像我这样不了解Java的人也完全看得懂。如果你也没有编程基础,想从事Android编程,那么本书就是你的最佳选择!”——亚马逊读者评论“本书是进入Android应用开发领域的绝佳入门手册!内容浅显易懂,例子一学就会,阅读的过程一定会让你受益良多!”——亚马逊读者评论
零基础 轻松学会Android应用开发巧入门 从容探索移动开发新世界大视野 助力Android新起跑线
无
Android开发入门很好的教材,只是系统和软件平台有点老了。
因为是一本入门书籍,所以里面的讲解还是很浅显易懂的,面对的是无基础的人看的,书中的例子也都很简单,新手看的话还是很值得推荐的。同样也是因为是入门书籍,所以很多东西都没有讲到,想要在深入研究的话可以买一本《精通Android》之类的书。还要吐槽一句,这本书是在是太薄了,出乎意料......
适合初级开发人员,很实用,按照一步一步做应该可以学会开发
绝对的新手入门,连JAVA的基础都不需要
适合入门级的,前期看看,学习下
适合初学者使用。建议有java基础的学
非常适合入门的一本书
入门确实不错,很快上手
这本书看来是极好的.非常清楚.书里开篇就说这本书涉及什么,不涉及什么,特别适用于完全不知道JAVA的人....
简单易懂,很适合零基础的朋友
挺适合初学者的,例子比较详细。
内容很充实,很值得希望入手的朋友们一看。
书很好,就是角有点折,内容还算是满意,介绍的详细
可以结合网上视频
就是发货速度有些慢,书不错
书很好,正品,已经在当当网购物很多次了
此书一般,初级者入
本书原本不打算现在就读,收到书后,随手翻了几页,结果忍不住一口气读了3章。
不错。感觉不错
由浅到深,很容易理解,写的不错,是本好书。
物流挺快的,书也没有破损,很不错
入门级的书,可以翻翻
书里面的版本比网上的要落后一点,不过还是比较新
适合菜鸟级人物,学习中
看了这本书,只用了一周不到的时间就看完了,全文没什么难点,都很初级,适合新手看看,还可以。
还是挺不错的,以后还会在买
完全不适合零基础的初学者阅读,不知道是否翻译的问题,,书中所说的各种基本概念术语变得极其晦涩难懂
从零基础开始讲解,就是软件版本太旧了,很多地方有点过时。
还不错偶,这就是图铃出品
思路可以被放大,很受益!
这本书给了很多初学者,尤其是真正零基础的初学者一个很好的参考
8错,是一个好东西,而且物流效率也很好。
这本书不适合新手看, 而且讲的不够全面. 一些知识直接带过. 别买了..兼容1.5版本的..总之, 看了这本书入门.心里很蛋疼...
很一般,这些知识随便在网路上都有搜到的.
一直看“图灵”,感觉很有收获,不过建议初学者看看别的系列
刚拿到,不知道里面的内容怎么样,但是书的质量不好
入门好书!非常适合没有任何基础的人员学习android编程和操作,可快速入门!
刚买到还没看,希望物有所值。
很实用很实用的专业书籍 易读懂
很好123