描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121309083
产品特色
编辑推荐
内容简介
本书首先介绍了安卓开发的基础知识,包括如何搭建环境、一般的开发流程、给App添加测试用例等。接下来是组成安卓框架的各个模块和组件,包括应用的结构,如何使用widget和component,以及怎么使用view。然后介绍了应用的设计模式,以及如何创建一个方便管理和更新的App,包括如何添加多媒体和网络连接等。本书后面部分也覆盖了可选hardware组件、安卓Wear和安卓TV。*后介绍了一些关键的优化策略,以及如何打包App去通过企业系统、邮箱和Google Play Service进行发布。
目 录
目录
1 开发工具………………………………………………………………………1
Android Studio ………………………………………………………………………1
安装Android Studio ………………………………………………………………………2
使用Android Studio ………………………………………………………………………4
启动一个新项目 ……………………………………………………………………………6
独立的SDK工具 ……………………………………………………………………9
安卓设备模拟 ………………………………………………………………………10
安卓虚拟设备 ………………………………………………………………………………11
GenyMotion ………………………………………………………………………………12
Xamarin安卓播放器 ………………………………………………………………………13
版本控制系统 ………………………………………………………………………14
Subversion …………………………………………………………………………………14
Git …………………………………………………………………………………………15
Mercurial ……………………………………………………………………………………15
总结 …………………………………………………………………………………16
2 测试和调试…………………………………………………………………17
单元测试 ……………………………………………………………………………17
集成测试 ……………………………………………………………………………20
调试 …………………………………………………………………………………25
Profiling ……………………………………………………………………………………25
Tracing …………………………………………………………………………………… 28
Messaging ………………………………………………………………………………… 29
总结 ………………………………………………………………………………… 32
3 应用结构…………………………………………………………………… 33
Manifest …………………………………………………………………………… 34
Java ………………………………………………………………………………… 37
Res(Resources) ………………………………………………………………… 37
Drawable …………………………………………………………………………………… 37
Layout ……………………………………………………………………………………… 39
Menu ……………………………………………………………………………………… 40
Values ……………………………………………………………………………………… 40
其他Resource ……………………………………………………………………………… 41
Gradle ……………………………………………………………………………… 42
总结 ………………………………………………………………………………… 43
4 组件………………………………………………………………………… 45
Intent ……………………………………………………………………………… 45
Intent Filter ………………………………………………………………………………… 46
Broadcast Receiver ………………………………………………………………………… 47
Activity …………………………………………………………………………… 48
创建一个Activity ………………………………………………………………………… 49
Activity 生命周期 ………………………………………………………………………… 50
Fragment …………………………………………………………………………… 52
创建一个Fragment ……………………………………………………………………… 53
与Fragment 通信 ………………………………………………………………………… 56
Loader ……………………………………………………………………………………… 57
总结 ………………………………………………………………………………… 59
5 View… …………………………………………………………………… 61
View 类 …………………………………………………………………………… 61
AnalogClock 子类 ……………………………………………………………………… 62
ImageView 子类 …………………………………………………………………………… 62
KeyboardView 子类 ……………………………………………………………………… 63
MediaRouteButton 子类 ………………………………………………………………… 64
ProgressBar 子类 ……………………………………………………………………… 65
Space 子类 ………………………………………………………………………………… 66
SurfaceView 子类 ……………………………………………………………………… 67
TextView 子类 …………………………………………………………………………… 68
TextureView 子类 ……………………………………………………………………… 68
ViewGroup 子类 …………………………………………………………………………… 69
ViewStub 子类 …………………………………………………………………………… 71
创建一个定制的View …………………………………………………………… 71
总结 ………………………………………………………………………………… 74
6 Layout… ………………………………………………………………… 75
Layout 基础 ………………………………………………………………………… 75
Layout Measurement ……………………………………………………………………… 76
Layout 坐标 ……………………………………………………………………………… 77
Layout Container …………………………………………………………………… 78
Linear Layout ……………………………………………………………………………… 79
Relative Layout …………………………………………………………………………… 80
Table Layout ……………………………………………………………………………… 83
Frame Layout ……………………………………………………………………………… 86
WebView …………………………………………………………………………………… 87
总结 ………………………………………………………………………………… 88
7 App Widget… …………………………………………………………… 89
App Widget Layout ………………………………………………………………… 90
AppWidgetProviderInfo 对象 ………………………………………………… 93
App Widget 尺寸 ………………………………………………………………………… 94
更新频率 …………………………………………………………………………………… 94
预览图片 …………………………………………………………………………………… 95
Widget Category …………………………………………………………………………… 96
Widget Category 布局 …………………………………………………………………… 97
Resizable 模式 …………………………………………………………………………… 97
AppWidgetProviderInfo 对象实例 …………………………………………………… 98
AppWidgetProvider 类 ………………………………………………………………… 98
应用Manifest 条目 …………………………………………………………………… 101
总结 ………………………………………………………………………………… 102
8 应用设计:使用MVC … ……………………………………………… 103
Model ……………………………………………………………………………… 104
View………………………………………………………………………………… 105
Controller ………………………………………………………………………… 106
异步处理 …………………………………………………………………………… 108
AsyncTask ……………………………………………………………………………… 109
总结 ………………………………………………………………………………… 110
9 绘图和动画……………………………………………………………… 111
图形 ………………………………………………………………………………… 111
Bitmap …………………………………………………………………………………… 111
NinePatch ……………………………………………………………………………… 113
Drawable ………………………………………………………………………………… 115
OpenGL ES ……………………………………………………………………………… 118
动画 ………………………………………………………………………………… 122
View 动画 ……………………………………………………………………………… 122
Property 动画 …………………………………………………………………………… 123
Drawable 动画 ………………………………………………………………………… 127
Transition 框架 ………………………………………………………………………… 128
总结 ………………………………………………………………………………… 131
10 网络… …………………………………
1 开发工具………………………………………………………………………1
Android Studio ………………………………………………………………………1
安装Android Studio ………………………………………………………………………2
使用Android Studio ………………………………………………………………………4
启动一个新项目 ……………………………………………………………………………6
独立的SDK工具 ……………………………………………………………………9
安卓设备模拟 ………………………………………………………………………10
安卓虚拟设备 ………………………………………………………………………………11
GenyMotion ………………………………………………………………………………12
Xamarin安卓播放器 ………………………………………………………………………13
版本控制系统 ………………………………………………………………………14
Subversion …………………………………………………………………………………14
Git …………………………………………………………………………………………15
Mercurial ……………………………………………………………………………………15
总结 …………………………………………………………………………………16
2 测试和调试…………………………………………………………………17
单元测试 ……………………………………………………………………………17
集成测试 ……………………………………………………………………………20
调试 …………………………………………………………………………………25
Profiling ……………………………………………………………………………………25
Tracing …………………………………………………………………………………… 28
Messaging ………………………………………………………………………………… 29
总结 ………………………………………………………………………………… 32
3 应用结构…………………………………………………………………… 33
Manifest …………………………………………………………………………… 34
Java ………………………………………………………………………………… 37
Res(Resources) ………………………………………………………………… 37
Drawable …………………………………………………………………………………… 37
Layout ……………………………………………………………………………………… 39
Menu ……………………………………………………………………………………… 40
Values ……………………………………………………………………………………… 40
其他Resource ……………………………………………………………………………… 41
Gradle ……………………………………………………………………………… 42
总结 ………………………………………………………………………………… 43
4 组件………………………………………………………………………… 45
Intent ……………………………………………………………………………… 45
Intent Filter ………………………………………………………………………………… 46
Broadcast Receiver ………………………………………………………………………… 47
Activity …………………………………………………………………………… 48
创建一个Activity ………………………………………………………………………… 49
Activity 生命周期 ………………………………………………………………………… 50
Fragment …………………………………………………………………………… 52
创建一个Fragment ……………………………………………………………………… 53
与Fragment 通信 ………………………………………………………………………… 56
Loader ……………………………………………………………………………………… 57
总结 ………………………………………………………………………………… 59
5 View… …………………………………………………………………… 61
View 类 …………………………………………………………………………… 61
AnalogClock 子类 ……………………………………………………………………… 62
ImageView 子类 …………………………………………………………………………… 62
KeyboardView 子类 ……………………………………………………………………… 63
MediaRouteButton 子类 ………………………………………………………………… 64
ProgressBar 子类 ……………………………………………………………………… 65
Space 子类 ………………………………………………………………………………… 66
SurfaceView 子类 ……………………………………………………………………… 67
TextView 子类 …………………………………………………………………………… 68
TextureView 子类 ……………………………………………………………………… 68
ViewGroup 子类 …………………………………………………………………………… 69
ViewStub 子类 …………………………………………………………………………… 71
创建一个定制的View …………………………………………………………… 71
总结 ………………………………………………………………………………… 74
6 Layout… ………………………………………………………………… 75
Layout 基础 ………………………………………………………………………… 75
Layout Measurement ……………………………………………………………………… 76
Layout 坐标 ……………………………………………………………………………… 77
Layout Container …………………………………………………………………… 78
Linear Layout ……………………………………………………………………………… 79
Relative Layout …………………………………………………………………………… 80
Table Layout ……………………………………………………………………………… 83
Frame Layout ……………………………………………………………………………… 86
WebView …………………………………………………………………………………… 87
总结 ………………………………………………………………………………… 88
7 App Widget… …………………………………………………………… 89
App Widget Layout ………………………………………………………………… 90
AppWidgetProviderInfo 对象 ………………………………………………… 93
App Widget 尺寸 ………………………………………………………………………… 94
更新频率 …………………………………………………………………………………… 94
预览图片 …………………………………………………………………………………… 95
Widget Category …………………………………………………………………………… 96
Widget Category 布局 …………………………………………………………………… 97
Resizable 模式 …………………………………………………………………………… 97
AppWidgetProviderInfo 对象实例 …………………………………………………… 98
AppWidgetProvider 类 ………………………………………………………………… 98
应用Manifest 条目 …………………………………………………………………… 101
总结 ………………………………………………………………………………… 102
8 应用设计:使用MVC … ……………………………………………… 103
Model ……………………………………………………………………………… 104
View………………………………………………………………………………… 105
Controller ………………………………………………………………………… 106
异步处理 …………………………………………………………………………… 108
AsyncTask ……………………………………………………………………………… 109
总结 ………………………………………………………………………………… 110
9 绘图和动画……………………………………………………………… 111
图形 ………………………………………………………………………………… 111
Bitmap …………………………………………………………………………………… 111
NinePatch ……………………………………………………………………………… 113
Drawable ………………………………………………………………………………… 115
OpenGL ES ……………………………………………………………………………… 118
动画 ………………………………………………………………………………… 122
View 动画 ……………………………………………………………………………… 122
Property 动画 …………………………………………………………………………… 123
Drawable 动画 ………………………………………………………………………… 127
Transition 框架 ………………………………………………………………………… 128
总结 ………………………………………………………………………………… 131
10 网络… …………………………………
前 言
序言
自从Cupcake发布以来,安卓的发展速度非常惊人。如今,安卓不仅已经运行在手机上,它也成为音频设备、平板电脑、电视机、汽车和其他制造商的方案。
随着安卓的使用越来越普遍,对于熟悉安卓的开发人员的需求量也越来越大。若要设计出下一批令人惊讶的和必须有的应用,我们需要懂安卓系统设计、技术优势和使用的开发人员。
全世界的许多人都是次使用安卓,作为开发人员的我们需要确保安卓提供给用户一流的体验,要使用户感到满意,而且让他们明白安卓系统是真的多么神奇。
为什么有开发模式?
在快速发展的开发世界,模式一般是比较省时的方案,开发者能用这些方案化他们的产出和小化方案失败浪费的时间。
安卓开发是很特殊的,很多Java和面向对象程序员感到既熟悉又陌生。它与Java语言和结构的联系有助于那些有经验的开发人员几乎不花多少时间就可以更快地熟悉安卓。但是,有一些优化和内存处理技术对富有经验的Java开发人员来说并不是。
本书是帮助有经验的工程师理解安卓构建和思维方式的一个桥梁。写本书是为了帮助刚接触安卓开发的人能了解这个平台的基础知识,以及如何处理安卓带来的多面性和复杂性,同时也针对高级开发人员给出一些必需的比较深入的提示和策略帮助他们做出一个成功的App。
谁应该读这本书?
任何对安卓开发感兴趣的人都会发现这本书既有意思,也非常有用。那些刚开始接触安卓的人可能不会发现这本书的内容非常完整,但是一些开发经验应该会有所帮助。但是,对于一些比较执着的人来说,他们并不介意多花些时间做尝试,因此,他们在追求完美App 的过程中会发现这是可以接受的。
开始对那些刚接触安卓应用开发的人来说,至少需要一台运行OS X、Windows 或者Linux的电脑。在这些系统中, 你应该从 下载一个AndroidStudio。当然,还有安卓SDK。
若要充分利用安卓SDK,需要下载和开发使用相对应的版本和示例代码。虽然你可以只下载某一个指定版本,但是你应该下载所有App 需要运行的版本的SDK。
你还应该用安卓SDK 去下载模拟器的系统镜像或者安卓虚拟设备(Android Virtual Device,简称AVD)。这些系统镜像允许你在没有安卓设备的情况进行测试。
强烈推荐你至少要有一个安卓设备用于测试。当然,好能有多个形状不同的设备,这样你就能像用户那样更准确地测试、监控和体验你的App。
访问下面的网站可以得到的安卓信息,以及查看新功能何时发布和如何使用它们。
●● StackOverflow :
●● 安卓开发者官网 :
●● 安卓开发者博客 :
●● YouTube谷歌开发者 :
●● 安卓官方源代码(AOSP) :
本书结构
本书首先介绍了安卓开发的基础知识,包括如何搭建环境。根据重要性,依次介绍了创建一个正确的开发流程给App 添加测试,确保代码能以预期的方式正常工作。
接下来逐步介绍了组成安卓框架的各个模块和组件。这包括应用的结构是什么,如何使用widget 和component,以及学习怎么使用和创建view。
而后,我们还介绍了应用的设计模式,以及学习如何创建一个方便管理和更新的App。这包括如何添加多媒体和网络连接,并使它们不会终浪费宝贵的电池电源,尽可能提供给用户准确和的信息。
书的后面部分也覆盖到了可选hardware 组件、安卓Wear 和安卓TV,这有助于帮你把App 提升到下一个更高的级别,以及探索新的机会。随着安卓出现在越来越多的设备上,你逐渐会明白如何和为什么把App 提供给投资这些平台的用户是你的利益。
后,你还会学到一些关键的优化策略,以及如打包App 去通过企业系统、邮箱和Google Play Service 进行发布。
当你看完这本书时,你将会理解安卓系统是如何工作的,然而,更重要的是如何制作一个优化的、可以发布的和成千上万用户满意的App。
在网站“informit.com”注册这本书的副本,将可以非常方便地访问和获取相关下载、更新和修正的内容。如要注册流程,请到网站“informit.com/register”,然后登录或者注册一个账号。输入产品ISBN 9780133923681,然后单击“Submit”。一旦注册流程完成,你将会在“Registered Products”下面发现可用的奖励内容。
致谢
创作一本书是需要极大的工作量的, 如果没有一个优秀团队的帮助、努力、指导和勤奋工作,这是不可能完成的。如果没有三个非常牛的技术编辑帮忙修改,我不可能完成这个工作。非常感谢Romin Irani、Douglas Jones和Ray Rischpater,你们每个人都提供了非常有个人特点的帮助,使这本书变得更加完美,也确保我始终没有偏离既定的轨道太远。
我也要感谢我的开发编辑Sheri Replin。和Sheri一起工作是一件非常开心的事情,她忍受了很多疯狂的时刻,尤其是当我确定要选择一些来自于咖啡因过多而胡言乱语的开发人员的词组成完整的句子时。而信誉度这一点要归功于我的文字编辑Bart Reed。他奇迹般地把我的疯狂思维管理得既聪明又勤奋,使这本书读起来像我大脑里预想的那样好,同时也使它对读者显得非常清晰。
与往常一样,Pearson的团队应该得到比我想的更多的感谢。我尤其要感谢这些人:Laura Lewin、Olivia Basegio、Elaine Wiley、 Kristy Hart、 Mark Taub,以及整个制作团队。弄这些技术文档不是一晚上就能完成的任务,我们团队的同事们经历了很长时间的会议、邮件、电话等才能确保读者读到这本的书。
我要感谢我的家人,在过去的几年中,他们允许我几乎每个晚上和每个周末都不在家。使这本书如期发行真的是一件非常不容易的事情,有时候是需要加班的,并且我还要参加很多相关的活动。我相信没有你们,我不可能很好地平衡工作和生活的关系。
后,我要感谢你!谢谢你选择这本书,谢谢你在书架(电脑或其他)上给它留了一个位置。能和这么多优秀的人一起工作,我感到非常荣幸。我相信,这本书能够让你在创建人们可以长期使用的安卓应用的道路上前行。
自从Cupcake发布以来,安卓的发展速度非常惊人。如今,安卓不仅已经运行在手机上,它也成为音频设备、平板电脑、电视机、汽车和其他制造商的方案。
随着安卓的使用越来越普遍,对于熟悉安卓的开发人员的需求量也越来越大。若要设计出下一批令人惊讶的和必须有的应用,我们需要懂安卓系统设计、技术优势和使用的开发人员。
全世界的许多人都是次使用安卓,作为开发人员的我们需要确保安卓提供给用户一流的体验,要使用户感到满意,而且让他们明白安卓系统是真的多么神奇。
为什么有开发模式?
在快速发展的开发世界,模式一般是比较省时的方案,开发者能用这些方案化他们的产出和小化方案失败浪费的时间。
安卓开发是很特殊的,很多Java和面向对象程序员感到既熟悉又陌生。它与Java语言和结构的联系有助于那些有经验的开发人员几乎不花多少时间就可以更快地熟悉安卓。但是,有一些优化和内存处理技术对富有经验的Java开发人员来说并不是。
本书是帮助有经验的工程师理解安卓构建和思维方式的一个桥梁。写本书是为了帮助刚接触安卓开发的人能了解这个平台的基础知识,以及如何处理安卓带来的多面性和复杂性,同时也针对高级开发人员给出一些必需的比较深入的提示和策略帮助他们做出一个成功的App。
谁应该读这本书?
任何对安卓开发感兴趣的人都会发现这本书既有意思,也非常有用。那些刚开始接触安卓的人可能不会发现这本书的内容非常完整,但是一些开发经验应该会有所帮助。但是,对于一些比较执着的人来说,他们并不介意多花些时间做尝试,因此,他们在追求完美App 的过程中会发现这是可以接受的。
开始对那些刚接触安卓应用开发的人来说,至少需要一台运行OS X、Windows 或者Linux的电脑。在这些系统中, 你应该从 下载一个AndroidStudio。当然,还有安卓SDK。
若要充分利用安卓SDK,需要下载和开发使用相对应的版本和示例代码。虽然你可以只下载某一个指定版本,但是你应该下载所有App 需要运行的版本的SDK。
你还应该用安卓SDK 去下载模拟器的系统镜像或者安卓虚拟设备(Android Virtual Device,简称AVD)。这些系统镜像允许你在没有安卓设备的情况进行测试。
强烈推荐你至少要有一个安卓设备用于测试。当然,好能有多个形状不同的设备,这样你就能像用户那样更准确地测试、监控和体验你的App。
访问下面的网站可以得到的安卓信息,以及查看新功能何时发布和如何使用它们。
●● StackOverflow :
●● 安卓开发者官网 :
●● 安卓开发者博客 :
●● YouTube谷歌开发者 :
●● 安卓官方源代码(AOSP) :
本书结构
本书首先介绍了安卓开发的基础知识,包括如何搭建环境。根据重要性,依次介绍了创建一个正确的开发流程给App 添加测试,确保代码能以预期的方式正常工作。
接下来逐步介绍了组成安卓框架的各个模块和组件。这包括应用的结构是什么,如何使用widget 和component,以及学习怎么使用和创建view。
而后,我们还介绍了应用的设计模式,以及学习如何创建一个方便管理和更新的App。这包括如何添加多媒体和网络连接,并使它们不会终浪费宝贵的电池电源,尽可能提供给用户准确和的信息。
书的后面部分也覆盖到了可选hardware 组件、安卓Wear 和安卓TV,这有助于帮你把App 提升到下一个更高的级别,以及探索新的机会。随着安卓出现在越来越多的设备上,你逐渐会明白如何和为什么把App 提供给投资这些平台的用户是你的利益。
后,你还会学到一些关键的优化策略,以及如打包App 去通过企业系统、邮箱和Google Play Service 进行发布。
当你看完这本书时,你将会理解安卓系统是如何工作的,然而,更重要的是如何制作一个优化的、可以发布的和成千上万用户满意的App。
在网站“informit.com”注册这本书的副本,将可以非常方便地访问和获取相关下载、更新和修正的内容。如要注册流程,请到网站“informit.com/register”,然后登录或者注册一个账号。输入产品ISBN 9780133923681,然后单击“Submit”。一旦注册流程完成,你将会在“Registered Products”下面发现可用的奖励内容。
致谢
创作一本书是需要极大的工作量的, 如果没有一个优秀团队的帮助、努力、指导和勤奋工作,这是不可能完成的。如果没有三个非常牛的技术编辑帮忙修改,我不可能完成这个工作。非常感谢Romin Irani、Douglas Jones和Ray Rischpater,你们每个人都提供了非常有个人特点的帮助,使这本书变得更加完美,也确保我始终没有偏离既定的轨道太远。
我也要感谢我的开发编辑Sheri Replin。和Sheri一起工作是一件非常开心的事情,她忍受了很多疯狂的时刻,尤其是当我确定要选择一些来自于咖啡因过多而胡言乱语的开发人员的词组成完整的句子时。而信誉度这一点要归功于我的文字编辑Bart Reed。他奇迹般地把我的疯狂思维管理得既聪明又勤奋,使这本书读起来像我大脑里预想的那样好,同时也使它对读者显得非常清晰。
与往常一样,Pearson的团队应该得到比我想的更多的感谢。我尤其要感谢这些人:Laura Lewin、Olivia Basegio、Elaine Wiley、 Kristy Hart、 Mark Taub,以及整个制作团队。弄这些技术文档不是一晚上就能完成的任务,我们团队的同事们经历了很长时间的会议、邮件、电话等才能确保读者读到这本的书。
我要感谢我的家人,在过去的几年中,他们允许我几乎每个晚上和每个周末都不在家。使这本书如期发行真的是一件非常不容易的事情,有时候是需要加班的,并且我还要参加很多相关的活动。我相信没有你们,我不可能很好地平衡工作和生活的关系。
后,我要感谢你!谢谢你选择这本书,谢谢你在书架(电脑或其他)上给它留了一个位置。能和这么多优秀的人一起工作,我感到非常荣幸。我相信,这本书能够让你在创建人们可以长期使用的安卓应用的道路上前行。
媒体评论
对于所有想开始认真做安卓开发的开发人员,这是一本必须要看的书。
—Justin Anderson, 安卓自由开发者从开始到结束,这本书包含了各种伟大的技巧和对于安卓设计的*重要属性的深刻洞察。
—Cameron Banga, 联合创始人, 9magnets, LLC
—Justin Anderson, 安卓自由开发者从开始到结束,这本书包含了各种伟大的技巧和对于安卓设计的*重要属性的深刻洞察。
—Cameron Banga, 联合创始人, 9magnets, LLC
在线试读
评论
还没有评论。