新書推薦:
《
思考的框架3:风靡华尔街的思维训练法
》
售價:HK$
64.9
《
被记忆的西周史(中山大学中珠学术译丛)
》
售價:HK$
151.8
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:HK$
74.8
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:HK$
185.9
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:HK$
76.8
《
世界巨变:严复的角色(王中江著作系列)
》
售價:HK$
110.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:HK$
396.0
《
(棱镜精装人文译丛)思想的假死
》
售價:HK$
63.8
|
編輯推薦: |
*书中采用了以应用为中心的方法,包含8个完整编码的Android应用。
*专业的程序员开发者指南,讲解如何利用Android 6和Android Studio开发用于智能手机和平板电脑的应用。
*实用、例子丰富的Android教程。
|
內容簡介: |
本书是美国知名编程教材的作者针对Android系统下进行应用开发而编写的一本入门级教程,全书以"应用驱动的方法”为基础,详细讲解了17个完整的Android应用的开发过程,并提供了8个APP应用的完整的源代码。这些应用经过精心挑选,从不同侧面展现了Android系统各个功能模块的编程方法。这些功能包括音频、视频、动画、电话、蓝牙、语音识别、加速度计、GPS、指北针、应用窗件、3D图形等, 它们都是从事Android应用开发所必须熟知的基本技术。
|
關於作者: |
Paul Deitel和Harvey Deitel是全球畅销的编程语言教材和专业图书作家,他们成立的Deitel & Associates公司是一家国际知名的企业培训和写作公司,专门进行计算机编程语言、对象技术、移动应用开发及Internet和Web软件技术方面的培训和写作,出版了一流的编程专业的大学教材、 专业图书以及LiveLessons视频课程。
张君施,北京工商大学数理系副教授,党支部书记。研究方向为概率论与数理统计、计算机语言,翻译过多部经典编程教材。
|
目錄:
|
第1章Android简介1
1.1简介2
1.2Android世界领先的移动操作系统2
1.3Android的特点3
1.4Android操作系统5
1.4.1Android 2.2 Froyo5
1.4.2Android 2.3 Gingerbread6
1.4.3Android 3.0~3.2 Honeycomb6
1.4.4Android 4.0~4.0.4 Ice Cream Sandwich6
1.4.5Android 4.1~4.3 Jelly Bean7
1.4.6Android 4.4 KitKat8
1.4.7Android 5.0和5.1 Lollipop8
1.4.8Android 6 Marshmallow9
1.5从Google Play下载应用9
1.6包10
1.7Android软件开发工具集SDK11
1.8面向对象编程:简短回顾13
1.8.1汽车作为对象13
1.8.2方法与类13
1.8.3实例化14
1.8.4复用14
1.8.5消息与方法调用14
1.8.6属性与实例变量14
1.8.7封装14
1.8.8继承14
1.8.9面向对象的分析与设计OOAD14
1.9在AVD中测试Tip Calculator应用15
1.9.1在Android Studio中打开Tip Calculator应用的工程15
1.9.2创建Android虚拟设备AVD16
1.9.3在Nexus 6 AVD中运行Tip Calculator应用18
1.9.4在Android设备上运行Tip Calculator应用20
1.10 创建好的Android应用21
1.11Android开发资源22
1.12 小结23
第2章Welcome应用24
2.1简介25
2.2技术概览26
2.2.1Android Studio26
2.2.2LinearLayout,TextView和ImageView26
2.2.3可扩展标记语言XML26
2.2.4应用的资源26
2.2.5辅助性26
2.2.6国际化27
2.3创建应用27
2.3.1启动Android Studio27
2.3.2创建新工程27
2.3.3Create New Project对话框28
2.3.4Target Android Devices步骤28
2.3.5Add an Activity to Mobile步骤29
2.3.6Customize the Activity步骤30
2.4Android Studio窗口31
2.4.1Project窗口31
2.4.2编辑器窗口32
2.4.3Component Tree窗口33
2.4.4应用的资源文件33
2.4.5布局编辑器33
2.4.6默认GUI33
2.4.7默认GUI的XML34
2.5用布局编辑器构建应用的GUI35
2.5.1向工程添加图像35
2.5.2添加应用图标36
2.5.3将RelativeLayout 改成LinearLayout37
2.5.4改变LinearLayout的id和orientation属性38
2.5.5配置TextView的id和text属性39
2.5.6配置TextView的textSize属性40
2.5.7设置TextView的textColor属性41
2.5.8设置TextView的gravity属性41
2.5.9设置TextView的layout:gravity属性41
2.5.10 设置TextView的layout:weight属性43
2.5.11 添加ImageView,显示图像43
2.5.12 预览设计的效果46
2.6运行Welcome应用46
2.7为应用增加辅助功能48
2.8使应用国际化49
2.8.1本地化49
2.8.2为本地化资源命名文件夹49
2.8.3将字符串译文添加到工程中49
2.8.4本地化字符串50
2.8.5在AVD中测试西班牙语的应用50
2.8.6在设备中测试西班牙语的应用51
2.8.7TalkBack与本地化51
2.8.8本地化清单52
2.8.9专业翻译52
2.9小结52
第3章Tip Calculator应用53
3.1简介54
3.2测试驱动的Tip Calculator应用55
3.3技术概览56
3.3.1Activity类56
3.3.2Activity类的生命周期方法56
3.3.3AppCompat库与AppCompatActivity类57
3.3.4安排GridLayout中的视图57
3.3.5利用布局编辑器、Component Tree和Properties窗口创建并定制GUI58
3.3.6格式化数字,表示本地货币和百分比字符串58
3.3.7实现TextWatcher接口,处理EditText中的文本变化58
3.3.8实现OnSeekBarChangeListener接口,处理SeekBar中的滑块位置变化58
3.3.9材料主题58
3.3.10 材料设计:高度和阴影59
3.3.11 材料设计:颜色59
3.3.12AndroidManifest.xml60
3.3.13 在Properties窗口中搜索60
3.4构建GUI60
3.4.1GridLayout简介60
3.4.2创建TipCalculator工程61
3.4.3改成GridLayout布局61
3.4.4添加TextView,EditText和SeekBar62
3.4.5定制视图64
3.5默认主题及定制主题颜色66
3.5.1parent主题66
3.5.2定制主题颜色67
3.5.3样式的常用View属性值70
3.6添加应用的逻辑功能70
3.6.1package声明和import声明70
3.6.2AppCompatActivity的MainActivity子类71
3.6.3类变量与实例变量71
3.6.4重写Activity方法onCreate72
3.6.5MainActivity方法calculate74
3.6.6实现OnSeekBarChangeListener接口的匿名内部类74
3.6.7实现TextWatcher接口的匿名内部类75
3.7AndroidManifest.xml76
3.7.1manifest元素77
3.7.2application元素77
3.7.3activity元素77
3.7.4intent-filter元素78
3.8小结79
第4章Flag Quiz应用80
4.1简介81
4.2测试驱动的Flag Quiz应用83
4.2.1配置应用的设置83
4.2.2运行应用84
4.3技术概览86
4.3.1菜单86
4.3.2Fragment86
4.3.3Fragment生命周期方法87
4.3.4管理Fragment88
4.3.5首选项88
4.3.6assets文件夹88
4.3.7资源文件夹89
4.3.8支持不同屏幕尺寸和分辨率89
4.3.9确定设备方向90
4.3.10 用于显示消息的Toast90
4.3.11 使用Handler在未来执行一个Runnable对象90
4.3.12 将动画用于View90
4.3.13 使用ViewAnimationUtils创建环形缩放动画90
4.3.14 通过颜色状态表根据视图状态确定颜色90
4.3.15AlertDialog91
4.3.16 为异常消息做日志91
4.3.17 通过显示Intent启动另一个活动91
4.3.18Java数据结构92
4.3.19Java SE 7特性92
4.3.20AndroidManifest.xml93
4.4创建工程、资源文件和另外的类93
4.4.1创建工程93
4.4.2Blank Activity模板布局94
4.4.3配置对Java SE 7的支持94
4.4.4向工程添加国旗图像95
4.4.5strings.xml与格式化字符串资源95
4.4.6arrays.xml96
4.4.7colors.xml97
4.4.8button_text_color.xml98
4.4.9编辑menu_main.xml98
4.4.10 创建国旗飘扬动画99
4.4.11 指定应用设置的preferences.xml100
4.4.12 添加SettingsActivity类和SettingsActivityFragment类101
4.5构建应用的GUI102
4.5.1用于纵向模式设备的activity_main.xml布局102
4.5.2设计fragment_main.xml布局102
4.5.3Graphical Layout编辑器工具栏106
4.5.4用于横向设备的content_main.xml布局107
4.6MainActivity类108
4.6.1package声明和import声明109
4.6.2字段109
4.6.3重写的Activity方法onCreate109
4.6.4重写的Activity方法onStart111
4.6.5重写的Activity方法onCreateOptionsMenu112
4.6.6重写的Activity方法onOptionsItemSelected112
4.6.7实现OnSharedPreferenceChangeListener的匿名内部类113
4.7MainActivityFragment类114
4.7.1package声明和import声明114
4.7.2字段114
4.7.3重写的Fragment方法onCreateView116
4.7.4updateGuessRows方法118
4.7.5updateRegions方法118
4.7.6resetQuiz方法119
4.7.7loadNextFlag方法120
4.7.8getCountryName方法122
4.7.9animate方法122
4.7.10 实现OnClickListener的匿名内部类123
4.7.11disableButtons方法126
4.8SettingsActivity类126
4.9SettingsActivityFragment类127
4.10AndroidManifest.xml127
4.11 小结129
第5章Doodlz应用130
5.1简介131
5.2在AVD中测试Doodlz应用132
5.3技术概览135
5.3.1Activity和Fragment的生命周期方法135
5.3.2定制视图136
5.3.3使用SensorManager监听加速计事件136
5.3.4定制的DialogFragment136
5.3.5使用Canvas,Paint和Bitmap画图137
5.3.6处理多点触事件并在Path中保存线信息137
5.3.7保存图形138
5.3.8打印功能及Android支持库的PrintHelper类138
5.3.9Android 6.0的新许可模型138
5.3.10 利用Gradle构建系统添加依赖性138
5.4创建工程和资源138
5.4.1创建工程139
5.4.2Gradle:向工程添加支持库139
5.4.3strings.xml139
5.4.4为菜单项导入材料设计图标140
5.4.5MainActivityFragment菜单140
5.4.6在AndroidManifest.xml中添加许可142
5.5构建应用的GUI142
5.5.1MainActivity的content_main.xml布局142
5.5.2MainActivityFragment的fragment_main.xml布局143
5.5.3ColorDialogFragment的fragment_color.xml布局143
5.5.4LineWidthDialogFragment的fragment_line_width.xml布局145
5.5.5添加EraseImageDialogFragment类146
5.6MainActivity类146
5.7MainActivityFragment类147
5.7.1package声明、import声明与字段147
5.7.2重写的Fragment方法onCreateView148
5.7.3onResume方法和enableAccelerometerListening方法149
5.7.4onPause方法和disableAccelerometerListening方法150
5.7.5用于处理加速计事件的匿名内部类150
5.7.6confirmErase方法151
5.7.7重写的Fragment方法onCreateOptionsMenu和onOptionsItemSelected152
5.7.8saveImage方法153
5.7.9重写的onRequestPermissionsResult方法154
5.7.10getDoodleView方法和setDialogOnScreen5
|
內容試閱:
|
前 言
欢迎来到使用Android软件开发工具集SDK、Java编程语言以及快速发展的Android Studio集成开发环境IDE的充满活力的世界,进行Android智能手机和平板电脑应用的开发。书中讲解的许多Android开发技术,同样适用于Android Wear和Android TV应用的开发。这样在学习完本书之后,就为这些平台下的应用开发做好了充分准备。
本书将为专业软件开发人员提供前沿的移动计算技术。本书是以开发完整的、可运行的应用来讲解各种概念的,而没有采用只分析代码段的方式。第2~9章中的每一章都给出了一个应用。这些章的开头是应用的介绍,并通过测试给出了一个或者多个执行样本的结果,还给出了一个技术概览。然后,会详细分析源代码。全部源代码都可以从以下站点下载:
学习本书时,建议在IDE中打开相应的源代码。
对Android应用开发人员而言,机会无处不在。Android设备的销售以及应用的下载量,正呈现出指数级的增长。第一代Android手机于2008年10月面世。根据IDC公布的数据,到2015年3月底,全球智能手机市场Android占据78%的份额,Apple为18.3%,而Blackberry只有0.3% 。在2014年 ,Android设备的出货量超过10亿。2015年Google IO开发者大会上,Google宣布在过去12个月中,Google Play已经有500亿的应用安装量。Google Play是Google的Android应用市场 。主流的移动平台以及运营商之间激烈的市场竞争,导致了技术的快速更新和价格的下滑。此外,数百个Android设备厂商之间的竞争,也推动了Android社区里硬件和软件的创新。
关于版权以及代码许可的说明
本书中的全部代码以及Android应用的版权都由Deitel & Associates公司所有,书中样本程序的授权许可遵循Creative Commons Attribution 3.0 Unported License,但是它们不能在教育性的其他教程和课本中使用书本格式或者数字化格式。此外,作者及出版方并不以任何形式、明确或暗示地保证书中的程序或文档的正确性。对于使用这些程序而导致的直接或间接损失,作者和出版方不承担任何责任。欢迎读者将书中的这些应用作为你自己的应用的起点,在已有的这些功能上进行改动需满足前述版权条款。
读者对象
本书假定读者已经具备一定的Java编程基础,并了解面向对象编程。同时,读者还需熟悉XML。Android工程中包含许多XML文件,但通常是通过编辑器与它们交互,从而无须直接了解它们。书中使用的是完整的、可运行的应用,所以如果不了解Java,但具有以C语言为基础的面向对象编程语言的经验,比如C,C#,Swift或者Objective-C,则应当能够很快熟悉这些材料,学习到大量的Java知识以及Java风格的面向对象编程。
本书并非一本Java教程。如果对学习Java编程感兴趣,请参考作者的下列出版物:
? Java for Programmers, 3e
? Java Fundamentals, 2e视频课程。这些视频内容可通过SafariBooksOnline.com订阅,也可从Informit.com和Udemy.com购买。
? Java How to Program, 10e书号:0-13-380780-0
本书特点
以下为本书的一些主要特点。
应用驱动的方法。讲解应用的每一章第2~9章中都给出了一个完整的应用,探讨了每一个应用的用途,给出了运行应用时的屏幕输出,通过测试进行了检验,并概述了构建应用的技术和体系结构。接着,搭建出每个应用的GUI,给出了完整的代码并详细分析它们。探讨了应用中所用的Android API的编程概念并演示了它们的功能。
Android 6 SDK。本书讲解了Android 6中新推出的软件开发工具集SDK的各种特性。
Android Studio IDE。以IntelliJ IDEA社区版本为基础的免费Android Studio,是目前Google主推的Android应用开发IDE,而以前的Android开发工具以Eclipse IDE为基础。Android Studio加上免费的Android软件开发工具集SDK,以及免费的Java开发工具集JDK,提供了创建、运行、调试Android应用的所有软件,并可利用它们将应用输出和分发例如,将应用上载到Google Play。关于如何下载和安装这些软件的说明,请参见后面的学前准备小节。
材料设计。利用新的材料设计规范,Google在Android 5中引入了新的Android外观:
这个规范中,Google概述了材料设计的目标和原则,然后详细给出了各种要求,包括动画技术、屏幕元素样式、元素定位、特定用户界面组件的使用、用户界面模式、辅助性、国际化,等等。目前,Google在它的移动应用和基于浏览器的应用中,采用的就是这个材料设计规范。
材料设计是一个宏大的主题,本书中将主要关注如下几个方面:
? 使用Android内置的材料主题。这些材料主题可使Android内置的用户界面组件外观符合材料设计规范。
? 使用内置的Android Studio应用模板。这些模板由Google设计,因此满足材料设计规范。
? 针对特定需求,使用材料设计指南推荐的用户界面组件,比如FloatingActionButton、TextInputLayout和RecyclerView。
除了查看Google的材料设计规范之外,可能还需要参考图书:
本书由专业人士和Ian Clifton他为本书第一版写过评论编写。Ian写到:Google在2014年推出了材料设计指南,从而给出了一种设计系统,为应用的外观和行为提供了建议。这样做的目的是提供一种设计框架,以提升应用的可视化表现,并为应用创建了一种行为一致性,这在以前的应用中是不存在的。Android User Interface Design:Implemeating Material Design for Developers, 2e详细讲解了材料设计,为所有开发人员提供有关以用户为中心的设计、颜色原理、文字排列、交互模式以及其他方面的指导。
支持库及应用兼容性库。当使用新的Android特性时,开发人员会遇到的一个大挑战是与以前的Android平台的向后兼容性问题。现在的许多新特性都是通过支持库引入的,这些支持库使得开发人员能够在应用中使用新特性,对当前和以往的Android平台都提供支持。其中的一个支持库称为AppCompat库。Android Studio应用模板中可以使用这个库以及它的主题,使得所创建的应用能够在大多数Android设备上运行。如果从一开始就用AppCompat创建应用,就可以避免当需要支持旧版本的Android时重新部署代码的问题。
此外,2015年的Google IO开发人员大会上,还为Android 2.1及更高版本中使用材料设计而推出了Android设计支持库Android Design Support Library。参见
材料设计支持已经内置于大多数Android Studio应用模板中。
REST Web服务与JSON。第7章讲解的Weather Viewer应用,演示了如何调用表述性状态转移Representational State Transfer,RESTWeb服务应用中提供的16日天气预报服务,其数据来自于OpenWeatherMap.org。REST Web服务以JavaScript Object Notation JSON 的形式返回天气预报信息,JSON是一种流行的文本数据交换格式,用键值对数据表示对象。这个应用还使用了来自于org.json的几个类,以处理Web服务的JSON响应。
Android 6.0许可。Android 6.0采用一种新的许可模式,以达到更好的用户体验。在此之前,Android要求在安装时用户就已经获得了应用所需的全部许可,这经常导致用户不愿安装应用。在新模式下,安装应用时不需要任何许可,而是在首次运行相关的特性时才会要求用户已经获得了许可。第5章讲解了这种新的许可模式,并将它用于将一个图像保存到外部存储设备时。
Fragment。从第4章开始,将使用Fragment碎片来创建并管理每一个应用GUI的分区。可以组合多个Fragment来创建充分利用平板电脑屏幕尺寸的用户界面。也可以很容易地互换不同的Fragment,以使GUI更显动态。第9章中将这样做。
View-Holder模式,ListView和RecyclerView。第7~9章中的几个应用,都会显示可滚动的数据列表。第7章在ListView中呈现数据并
|
|