关于我们
![]() ![]() |
Android程序设计 定 价:¥39 中 教 价:¥26.52 (6.80折) 库 存 数: 0 丛 书 名:21世纪高等学校计算机专业实用规划教材
本书介绍了Android应用程序设计的主要思想和方法。首先从Android的历史着手,使读者对Android这一开源系统的特点有基本的了解;然后深入讲解Android的系统架构,以避免读者对此系统只知其然不知其所以然。本书以Android Studio为开发工具,因此对该开发环境也做了详细介绍。
在对Android有了必要的认知后,本书由浅入深地介绍了Android项目的创建和目录结构。对Android四大组件、UI、数据持久化和网络编程等主要知识,本书从理论和实践两方面进行了全面的讲解,力求能探究到Android设计者的最初想法。 本书可以作为高等院校及各类培训机构Android系统课程的教材,也可以作为学习Android程序设计人员的自学用书。
理论与实践结合:从基础知识学习,*终能综合所学内容开发应用。
体现*Android Studio特性 精心设计的习题:在重点难点部分,为读者精心设计了习题。这些习题有助于读者更好地理解重点,提高分析代码的能力,同时在编程中规避常见错误。 前言 “这是最好的时代,这是最坏的时代”。 对如今的安卓开发界而言,两百年前,狄更斯说的这句话颇有道理。 这是最好的时代——互联网经济高速发展。雷军的一句“站在风口上,猪也会飞”,话粗理不粗,小米的成功也佐证了这一点。作为移动互联网最主要的载 体——智能手机如火山岩浆般喷涌,而安卓手机自然是当中最强势的一流。Statista的统计数据显示,2016年第二季度全球手机出货量中,安卓手机占有86.2%的份额。此番强势表现,对众多的安卓开发者,无疑是最好的时代。 然而,这也是最坏的时代。开放性的发展造成安卓碎片化问题严重。2016年3月,Google正式发布Android 7.0。令人尴尬的是,调查显示,截至发布之日,Android 6.0的市场普及率只有2.3%,更不要说各个厂商安卓手机的硬件、系统都有着诸多差别。因此,开发者不得不花费大量时间适配不同机型,初学者面临这些问题时,往往不知所措;而市面上多数安卓教材仍沿用过时的理论,基于古老的安卓4.X,甚至还在使用着官方目前已由Android Studio代替的Eclipse和已经停止更新的ADT。 本书旨在更好地解决上述问题,帮助初学者更加高效地接触、了解和熟悉安卓开发。在参阅了许多大同小异的相关书籍后,我们力求能直击安卓的本质,以清晰合理的逻辑,让初学者明白安卓设计的初衷,以设计出高效而不失优雅的安卓程序。对比其他安卓教材,本书具有以下优点: 目标针对性强。本书针对国内计算机、软件相关专业已先修Java程序设计课程的学生,旨在为具备良好Java编程能力的学生提供一本能够快速熟悉Android平台的教材,熟练掌握Android开发过程中必备的基础知识,为今后的课程学习和工作打下坚实的基础。 内容与时俱进。计算机学科发展异常迅速,内容更新很快。作为教材,一方面要反映本领域基础性、普遍性的知识,保持内容的相对稳定性;另一方面,也需要不断跟踪科技的发展,本书坚持使用最新的Android版本和2013年Google新推出的Android Studio作为开发环境;重点介绍使用新技术的案例,避免使用即将淘汰的设计方法。 结构合理,习题精要。本书体系结构严谨,概念清晰,内容由浅入深,符合学生的认知规律,易学易懂,且配有许多难度适中、逻辑合理、适于初学者和进阶者开拓思路、深入了解Android基础理论和开发技巧的习题以及切合实际的参考答案和章末要点总结,适合教学和自学,是学生掌握Android开发的必备书目。 理论结合实践。本书用实例讲授知识点,不局限于枯燥的理论介绍。与许多课程的规律类似,实践对于Android学习而言也是强化和提升学习效果的必由之途,否则无异于“入宝山而空返”。读者通过将书中代码手敲一遍或仿照书中实例自己编写小型应用进行练习,可切实强化编码能力,提高软件分析设计能力,真正领悟学习程序设计语言的真谛。 着眼整体认识,体现特色内容。本书注重系统思维,首先展现Android基础知识体系的整体框架,然后深入细节,便于读者在脑海中清晰地构建知识网络,实现融会贯通。在具体内容上,力求突出Android开发理论中最精华的部分,避免面面俱到、缺少重点,同时增加一些实际开发中可能会用到的高深知识和Android中的特色功能,以供读者进一步深入学习。 本书的作者为吕云翔、杨婧、谢文彬,曾洪立、吕彼佳、姜彦华参与了素材整理及配套资源制作。 由于我们的水平和能力有限,本书难免有疏漏之处。恳请各位同人和广大读 者给予批评指正,也希望各位能将实践过程中的经验和心得与我们交流(yunxianglu@hotmail.com)。
编 者 2017年12月于北航软件学院
第1章 Android概述... 1 1.1 了解Android. 1 1.1.1 Android起源与发展... 1 1.1.2 开放手持设备联盟... 3 1.1.3 Android市场占有率... 3 1.2 Android版本... 4 1.2.1 Android版本简介... 5 1.2.2 Android各版本市场份额... 8 1.3 Android的特征... 9 1.4 Android系统架构... 10 1.4.1 应用程序层... 10 1.4.2 应用程序架构层... 11 1.4.3 系统运行时库层... 11 1.4.4 Linux内核层... 13 1.5 Android四大组件... 14 1.5.1 Activity. 14 1.5.2 Service. 15 1.5.3 Broadcast Receiver 15 1.5.4 Content Provider 15 1.6 Android程序生命周期... 15 习题1. 17 第2章 构建Android程序... 18 2.1 Android项目创建... 18 2.2 Android目录结构... 20 2.3 Android项目资源... 24 2.3.1 创建资源... 24 2.3.2 使用资源... 25 2.3.3 资源本地化... 27 2.4 Gradle详解... 28 2.5 项目调试与运行... 29 2.5.1 Android项目运行... 29 2.5.2 Android项目调试... 31 习题2. 33 第3章 初级UI 34 3.1 Android UI基本概念... 34 3.2 基本控件... 35 3.2.1 TextView.. 35 3.2.2 Button和ImageButton. 37 3.2.3 EditText 40 3.3 Layout组件... 43 3.3.1 FrameLayout 44 3.3.2 LinearLayout 45 3.3.3 RelativeLayout 47 3.3.4 TableLayout 50 3.3.5 GridLayout 52 3.3.6 Layout布局小结... 54 3.4 复合按钮... 55 3.4.1 CheckBox. 55 3.4.2 RadioButton. 56 3.4.3 ToggleButton. 56 习题3. 57 第4章 Activity与Fragment 58 4.1 Activity详解... 58 4.2 Activity的生命周期... 60 4.2.1 Activity栈... 60 4.2.2 Activity状态... 61 4.2.3 Activity的生存期... 61 4.3 Activity启动模式... 63 4.4 Fragment详解... 66 4.5 Fragment的生命周期... 69 4.5.1 Fragment的状态... 69 4.5.2 Fragment的生命周期方法... 70 4.6 Fragment与Activity间通信... 71 习题4. 73 第5章 高级UI 74 5.1 Toast和Dialog. 74 5.1.1 Toast 74 5.1.2 Dialog. 77 5.2 Spinner 83 5.3 ListView.. 90 5.4 Menu. 92 5.5 Style和Theme. 102 5.5.1 使用Style. 102 5.5.2 继承Style. 103 5.5.3 使用Theme. 104 5.5.4 继承Theme. 105 习题5. 106 第6章 Intent与Broadcast 107 6.1 使用Intent启动Activity. 107 6.1.1 显式Intent 107 6.1.2 隐式Intent 108 6.2 使用Intent实现Activity间数据传递... 110 6.2.1 向下一个Activity传值... 110 6.2.2 获取上一个Activity的返回值... 111 6.3 使用Intent广播事件... 124 6.4 监听广播... 125 习题6. 127 第7章 Service与多线程... 128 7.1 创建Service. 128 7.2 启动和停止服务... 129 7.3 IntentService. 132 7.4 Android多线程编程与消息机制... 134 7.4.1 Android多线程编程... 134 7.4.2 Android消息机制... 136 7.4.3 使用AsyncTask. 139 7.4.4 线程池... 142 习题7. 146 第8章 数据持久化技术和ContentProvider. 147 8.1 SharedPreference. 147 8.1.1 获取SharedPreferences对象方法... 147 8.1.2 写入SharedPreferences 148 8.1.3 从SharedPreferences读取信息... 148 8.2 文件... 149 8.2.1 内部存储... 149 8.2.2 外部存储... 151 8.2.3 资源文件的读取... 156 8.3 SQLite. 159 8.3.1 数据库创建... 160 8.3.2 数据库操作... 161 8.4 ContentProvider简介... 165 8.4.1 ContentProvider的角色... 166 8.4.2 ContentResolver 166 8.4.3 ContentProvider中的URI 167 8.4.4 数据共享的实现... 168 习题8. 176 第9章 网络编程... 177 9.1 基于Socket的网络编程... 178 9.1.1 UDP套接字... 179 9.1.2 TCP套接字... 180 9.2 基于HTTP的网络编程... 189 9.3 WebView.. 193 习题9. 197 第10章 实战项目——2048游戏... 198 10.1 创建项目并编写界面样式... 198 10.2 定义方块样式与行为... 199 10.3 编写MainActivity. 203 附录A.. 212 参考文献................................................................................................................ 221
初级UI3.1 Android UI基本概念 用户界面(User Interface,UI)是用户与设备之间进行信息交流的直接媒介,是决定用户体验最重要的部分。相比于早期的计算机的主要交互界面——批处理界面和命令行界面,现在更为流行的是更简单直接的用户图形界面(Graphical User Interface, GUI)。GUI简单易用,受众面广,直接推动了个人计算机的发展。目前,主流大众的操作系统都采用了GUI,安卓也不例外。 通常GUI上会放置各种组件,这些组件通过巧妙的设计,便能组成灵活美观的界面。Android程序的UI组件分为widget控件和layout组件两大类,这两类的根类都是View类。* widget控件:UI的最基本单位,即不能在这类组件中放入其他UI组件。常见的widget组件有Button(按钮)、TextView(文本标签)、EditText(文字输入框)等。* layout组件:布局组件,像容器一般,其中可以加入其他layout组件或widget组件。常用的layout组件有LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(框架布局)、TableLayout(表格布局)、GridLayout(网格布局)等。 View类的常用xml文件元素属性如表3-1所示。表31 View类属性属 性对 应 方 法说 明android.idsetId(int id)设置组件的标识符android.background setBackGround(int color)设置背景颜色android.visibilitysetVisibility(int)设置组件的可见性android.clickablesetClickable(Boolean)设置组件是否响应单击事件android.alphasetAlpha(float)设置组件的透明度续表属 性对 应 方 法说 明android.layout_weightsetHeight(int)设置组件的宽度,一般有match_parent和wrap_content两个选项android.layout_heightsetWidth(int)设置组件的宽度,一般有match_parent和wrap_content两个选项
findViewById(int id)与id对应的组件匹配 基于MVC(Model-View-Controller)模型,Android程序开发采用界面设计与程序逻辑分离的策略。开发者应该使用XML文件对用户界面进行描述,将资源文件独立保存在资源文件夹中。Android的用户界面描述非常灵活,允许定义用户界面组件的大小、位置、外观甚至触发事件。 更上一层 MVC模型包括处理用户输入的控制器(Controller)、显示图像的视图(View)和模型(Model)。模型是应用程序的核心,数据和代码都保存在模型中。 Android的用户界面框架采用单线程用户界面(Single-threaded UI)的模式。在这种模式下,控制器从事件队列中获取事件和视图在屏幕上绘制用户界面采用的是同一进程。因此,用户不需要在控制器和视图之间进行同步,而且所有事件的处理都是按照其加入事件队列的顺序进行的,也就是事件处理函数具有原子性。但此模式也有弊端。子线程中不允许直接修改用户界面。而且如果事件处理函数过于复杂,可能会使用户界面失去响应,因此复杂的事件处理工作应该交给后台线程处理。3.2 基 本 控 件3.2.1 TextView TextView(文本标签)用于显示文本字符,是最常用的UI组件之一,支持多行文本和自动换行。常用的方法如下:* getText()——获取文本标签的文本内容;* setText(CharSequence text)——设置文本标签的文本内容;* setTextSize(float size)——设置文本标签的文本大小;* setText(int color)——设置文本标签的文本颜色。 常用的XML文件元素属性如下:* android:text——文本标签的文本内容;* android:textSize——文本标签的文本大小;* android:textColor——文本标签的文本颜色;* android:typeface——文本标签的字体样式,有normal、sans、serif、monospace等选项。 此外,适用于View类的元素属性也适用于TextView等所有组件,此处不再赘述。 【例3-1】 演示TextView组件的使用方法。 打开Android Studio,新建一个带空白Activity的项目,命名为TextViewDemo。 打开界面布局文件activity_main.xml。Android Studio已经自动在其中生成一个“Hello World!”的Textview。切换到代码视图,修改activity_main.xml的代码如下: 123456789101112131415
你还可能感兴趣
我要评论
|