




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件开发工具Android Software Development Tool课程认识软件基本概念软件危机软件开发过程软件开发工具软件基本概念软件概念软件=程序+过程+算法+文档计算机系统的软件主要分成三大类系统软件(System software)编程软件(Programming software)应用软件(Application software)软件的其他分类方法基于软件功能的划分 系统软件应用软件基于软件工作方式的划分实时处理软件分时软件交互式软件批处理软件软件的其他分类方法基于软件运行环境划分单机运行软件网络运行软件嵌入式软件基于软件体系结构划分 单层、多层 C/S结构 B/S结构
2、多层架构 软件危机软件开发成本和进度失控由于软件是逻辑、智力产品,与其他产品的生产不一样的用户需求变化、盲目增加软件开发人员可能使项目管理等方面的问题更为严重 用户对软件产品(软件系统)不满意软件产品质量差软件产品可维护性差软件缺少相应文档资料软件成本上升、生产率低消除软件危机的途径采用科学的方法论使用软件工程思想和方法论开发过程的格式化、自动化培养高素质的开发人员借助先进的软件开发和管理工具采用先进的软件开发技术先进的软件体系结构:构件重用、层次化面向对象方法软件开发工具软件开发工具是一种软件,是辅助和支持其他软件研制和维护的工具,使用软件开发工具可以提高软件生产率和改进软件质量。支持整个软
3、件生存周期,而不仅限于编码:业务系统规划工具;项目管理工具;分析和设计工具;编程工具;测试与分析工具;原型工具; 维护工具。 当今软件开发的现状面向Internet:开发企业级应用面向对象(OO)OOA/OOD/OOP:Java,C#,Swift,Object-C面向移动设备:Android、iOS、Windows Phone等软件系统采用分层结构和设计模式:多层(客户层,中间层,数据层),MVC工厂化流水线开发模式:CVS, SVN可视化软件建模:UML, RUP, ROSE编程语言排行榜/tiobe_indexTIOBE is specialized in assessing and tr
4、acking the quality of software. TIOBE(The Importance Of Being Earnest)编程语言排行榜(Long Term)前10名编程语言趋势图年度最受关注语言Java语言的发展1995年,Sun公司推出Java技术。特点:跨平台、面向对象、多线程、半编译半解释等1999年,Java从一种语言发展成为一种开发平台,出现Sun ONE体系结构,以Java语言为核心,包括以下三个版本:J2SE StandardJ2ME MicroJ2EE Enterprise 2005年6月,JavaOne大会上,Sun公开了JavaSE6,从此Java版本取
5、消了数字2.J2EE更名为JavaEE。常用的集成开发工具与环境Eclipse跨平台的开源、可扩展集成开发环境;插件体系结构;NetBeansJava集成开发环境;完整支持Java EE标准;Android Studio ( IntelliJ IDEA)谷歌支持的基于JetBrains公司的产品;主要支持Java软件开发;无需鼠标即可完成大部分开发任务;IDE效率较快;智能提示丰富;Visual StudioWindows平台开发工具,支持C+,C#等的开发;XcodeApple公司的Mac OS X,iOS平台开发工具。课程内容和课程目的课程结合软件开发技术理论,讲述利用Android St
6、udio进行安卓软件开发的关键技术,包括Android开发环境、GUI开发、数据存储、地图开发、构建工具、测试部署工具和版本控制工具。教学目标:了解软件开发环境;熟悉软件开发工具的使用;能够熟练配置相关开发环境;能够利用软件开发工具进行高效的软件开发。课程安排以Android软件开发实例为主线,兼顾Web开发、GUI开发、建模、测试等功能,讲授软件开发工具的丰富功能。课堂授课: 32学时考试方式: 考查 考勤+课堂作业 1030%大作业 7090%第一章开发环境搭建第二章用户界面设计第三章组件通信第四章后台服务与广播消息第五章数据存储与访问第六章网络应用开发第七章图形图像处理第八章并发编程技术
7、第九章地图应用开发第十章高级界面技术第十一章手机客户端解析JSON第十二章项目构建和管理工具参考资料教材:Android 应用开发实践教程,韩冬主编, 电子工业出版社, 2016年, ISBN: 9787121276804。参考书目: Android应用程序开发权威指南(第四版),(美)安尼兹,(美)达西,(美)康德著, 电子工业出版社, 2015年, ISBN: 9787121251993。Android开源项目开发,师文轩著, 机械工业出版社, 2015年, ISBN: 9787111517054。课程特点和学习方法课程特点涉及的课程、内容较多理论联系实践授课时间短学习方法结合实践、主动学
8、习上课认真听讲,下课参阅课程相关资料并动手开发实际项目综合利用网络上的资源郑州大学信息工程学院第1章 开发环境搭建刘洋ieyangli本章导读Android是Google公司于2007年11月5日发布的基于Linux内核的移动平台,该平台早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)维护。本章作为课程导引,主要知识点有:(1)Android体系结构介绍和如何搭建Android开发环境;创 建并运行第一个Android程序;以及Android程序结构分析。(2)Android应用基本组件介绍;Activity的生命周期。(3)
9、Android应用如何进行程序调试。点击添加文本郑州大学信息工程学院1.1 Android简介1.2 搭建Android应用开发环境1.3 第一个Android程序1.4 Android程序结构1.5 Android应用的基本组件介绍点击添加文本郑州大学信息工程学院1.6 Activity的生命周期1.7 程序调试1.8 Android Studio 安装与配置1.9 相关阅读材料1.10 本章小结1.1.1 Android传奇2005年Google收购成立仅22个月的安卓公司;2008年9月23日,世界上第一部Android系统手机T-Mobile G1发布,标志着安卓时代的来临。Andro
10、id平台主要由三部分组成,底层基本功能、中间层函数库与虚拟机和最上层应用软件层。1.1 Android简介1.1 Android简介Android的中文意思是机器人,是一种基于Linux的开放源代码的操作系统。2007年11月,Google与另外的几十家硬件制造商、软件开发商及电信运营商组建了“开放手机联盟”,共同研发安卓系统,并且完全免费开源。Android的特性开源性个性化优质的开发环境应用程序之间沟通方便开发人员限定应用程序的权限与Web紧密相连1.1 Android简介1.1.2 Android体系结构Android的系统架构采用了分层架构的思想,如图1-1所示。从上层到底层共包括四层
11、,分别是应用层、应用框架层、系统运行库层以及Linux内核层。图1-1 Android体系结构Android简介安卓平台由操作系统、中间件、用户界面和应用软件组成,它采用软件堆层的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发;最上层是各种应用软件,包括通话程序,短信程序等,以Java作为编写程序的一部分。Android的系统架构自下而上依次是Linux内核层、系统运行库层、Android应用框架层和Android应用程序层1.1 Android简介1应用层Android平台不
12、仅仅是操作系统,也包含了许多应用程序,譬如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用。2应用框架层该层是Android应用开发的基础。应用框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。1.1 Android简介3系统运行库层从图1可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时。系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。Android运行时包括核心
13、库和Dalvik虚拟机,前者是Android的核心库,比如android.os、android.media等等。后者是一种基于寄存器的Java虚拟机,完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。1.1 Android简介每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的dx工具转化成.d
14、ex格式,由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。1.1 Android简介4Linux内核层Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。Android版本历程自2007年11月发布第一个版本Android 1.0 beta之后,Android系统已经发布了多个更新,每一次新版本都较之前版本进行了问题修复和功能增加。从2009年开始,Android操作系统采用甜点来作为版本代号,这些版本按照大写字母的顺序来进行命名。Android版
15、本历程版本对应的API级别和分布1.2 搭建Android应用开发环境1.2.1 Android 开发环境的安装1安装JDK在/technetwork/java/javase/downloads/index.html下载JDK 7,如图1-2所示。下载后直接安装即可。注意安装后,须配置环境变量,主要是JAVA_HOME、PATH和CLASSPATH的配置。可进入cmd窗口,输入:java version,看到如图1-3所示界面,表明JDK已经安装正确。 图1-2 JDK下载 图1-3 查看系统Java版本1.2 搭建Android应用开发环境(不推荐用Eclipse开发环境进行安卓开发)2下载
16、文件(ADT Bundle for Windows:ADT捆绑的软件包)1)方法1/sdk/index.html 下载文件ADT Bundle for Windows,如图1-4所示。选择32-bit的下载。 图1-4 下载ADT Bundle for Windows 图1-5 Android Studio中文组下载1.2 搭建Android应用开发环境2)方法2如果Android官网打不开,在这里公布IDE地址,可以用迅雷等软件直接下载。adt-bundle-windows-x86:/android/adt/adt-bundle-windows-x86-20140702.zip打开迅雷,新建
17、下载任务,把上面的URL粘贴上即可。3)方法3或者在Android Studio中文组的公网上进行下载。打开/,选择DOWNLOAD,进入如图1-5所示页面。下载32位Windows系统下的、版本号为23.0.2的ADT Bundle即可。下载完成后解压,出现eclipse和SDK文件夹。打开eclipse文件夹,直接运行eclipse.exe即可。1.2 搭建Android应用开发环境3下载Android SDK打开Android SDK Manager,显示当前可用的SDK版本,选择所需要的SDK版本进行下载。譬如可勾选Android 2.3.3和Android 4.4.2。亦可全部勾选。
18、如图1-7所示。 图1-6 下载Android SDK 图1-7 设置Android SDK Manager1.2 搭建Android应用开发环境1.2.2 如何解决安卓SDK无法下载Package的问题 安装好Android SDK后,打开Android SDK Manager下载API时有时会显示“Done loading packages”却无法下载SDK Package。应如何解决呢?方法如下。1在Android SDK Manager中进行设置 打开Android SDK Manager,点击“Tools”菜单中的“Options”选项即可打开设置窗体,如图1-7所示。勾选以Forc
19、e开头的复选框,在HTTP Proxy Server和HTTP Proxy Port输入框内填入和80然后点击“Close”按钮关闭窗口并保存。1.2 搭建Android应用开发环境2修改hosts文件以Win7为例,打开Windows资源管理器,再打开“C:WindowsSystem32driversetc”文件夹,注意System32下是drivers文件夹,不是driver文件夹。用“记事本”程序打开其中的hosts文件,将如下代码复制到后面:#google_android更新 46 46 localhost 1.2 搭建Android应用开发环境3重新加载回到Android SDK M
20、anager,选择“Packages”中的“Reload”,然后就会显示所有的Packages。这时,便可轻松下载各个安卓系统的Package包。注意:考虑到Android开发环境搭建的诸多不便,编者已制作好Android开发工具包放在教学资源包中,文件夹名为2015_6_18_android,把该文件夹拷贝到你自己的电脑上,单击其中eclipse文件夹里的eclipse.exe即可使用,但事先须先建好项目文件夹(或工作区)。该工具包是针对Android 4.4的。重要提醒:这里的Android开发环境的搭建和后文中Android Studio开发环境的搭建分别是在两个电脑上进行的;前者使用的
21、均是32位的JDK和Eclipse ADT,后者使用的是64位的JDK和Android Studio 。1.3 第一个Android程序1创建Android虚拟设备(Android Virtual Device)打开Android Virtual Device Manager,如图1-8所示,单击“New”按钮,在弹出的对话框“Create new Android Virtual Device(AVD)”中可创建Android虚拟设备AVD。AVD Name可任意。图1-8 创建AVD1.3 第一个Android程序2创建第一个Android应用并运行使用Eclipse创建Android应用一
22、般需要以下三步:(1)创建一个Android项目。(2)在XML布局文件中定义应用程序的用户界面。(3)在Java代码中编写业务实现。具体过程:(1)单击菜单中的“FileNewAndroid Application Project”,弹出“New Android Application”对话框,如图1-9所示。输入项目名称、包名称即可。单击“Next”按钮。 图1-9 创建FirstDemo应用 1.3 第一个Android程序 图1-10 运行FirstDemo 图1-11 FirstDemo工程目录1.3 第一个Android程序(2)在后续弹出的窗口中,所有选项均用默认值,单击“Fin
23、ish”按钮完成项目创建。(3)返回Eclipse界面,右击FirstDemo项目,选择“Run As1 Android Application”。1.8 Android Studio 安装与配置2015年6月27日,谷歌宣布Android Studio将取代Eclipse编译环境。Eclipse 里现有的Android工具会通过Eclipse基金会继续支持下去。今后,教材和课程将介绍安卓官方的开发工具:Android Studio 的安装、配置及开发方法。1.8 Android Studio 安装与配置1.8.1 WIN7 64位系统安装JDK并配置环境变量到官网/technetwork/j
24、ava/javase/downloads/index.html下载jdk-7u80-windows-x64.exe,按默认安装路径进行JDK安装即可。设置环境变量如图1-13所示JAVA_HOME= C:Program FilesJavajdk1.7.0_80CLASSPATH=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jarPATH=%PATH%;%JAVA_HOME%bin注意:%PATH%为原来的环境变量值,添加;和后面的内容到原来值的后面。1.8 Android Studio 安装与配置图1-13 安装JDK环境变量配置和验证验证是否配置成功
25、,可点击开始运行,输入cmd打开命令行窗口,输入java -version,显示版本1.7.0_80,如图1-13。说明JDK安装及环境变量配置成功。1.8 Android Studio 安装与配置1.8.2 Android Studio环境搭建到官网1Android Studio下载与安装在百度中输入关键字:Android Studio,找到Android Studio中文社区(中文组)官网/,下载Android Studio最新稳定版本Android Studio V2.*:android-studio-bundle-*-windows.exe,双击安装即可。如下图1-14所示,Andro
26、id Studio和Android SDK都安装在C:Android路径下,即C:AndroidAndroid Studio和C:Androidsdk。图1-14 Android Studio安装1.8 Android Studio 安装与配置2设置Android Studio1)运行SDK Manager.exe运行C:Androidsdk中的SDK Manager.exe。如图1-15,至少选择打勾的3个包:ARM EABI v7a SystemImage(Android API 22或其他级别)、Android Support Repository和Android Support Lib
27、rary。单击Install 3 packages。图1-15 下载Package1.8 Android Studio 安装与配置2)修改perties文件找到binperties文件,用Notepad+或其他纯文本编辑器打开,改成如图1-16。图1-16 perties文件1.8 Android Studio 安装与配置关于上图的说明:# 禁止第一次运行Android Studio时,自动检查和升级Android SDKdisable.android.first.run=true# 下面两个是Android Studio的设置、插件和运行时产生的其他文件存放的目录# 不改的话,Windows
28、中默认在 C:Users.AndroidStudio.2 里面# $idea.home.path表示Android Studio程序的主目录,注意目录分隔符要用正斜杠“/”idea.config.path=$idea.home.path/.AndroidStudio.2/configidea.system.path=$idea.home.path/.AndroidStudio.2/system1.8 Android Studio 安装与配置特别要注意的是,每次Android Studio升级时,都会强制检测AS主目录里面的文件或文件夹是否被动过,当然也包含这个perties,有些增强模板或插件
29、,例如这个 AndroidStudioTemplate,安装时要求覆盖pluginsandroidlibtemplates。如果发现被改了,就会要求进行处理(恢复默认)操作,举例来说,perties和那个templates会被还原为解压时的模样,各种修改都会失效。所以保险起见,这个perties文件改完就备份一下,以后升级完AS,就手动改回去,各种插件/模板也存一个备份,别装完就删掉,免得被AS的升级程序删了后找不回来。1.8 Android Studio 安装与配置进入欢迎界面和Default Settings设置页面图1-17运行Android Studio,进入欢迎界面1.8 Andro
30、id Studio 安装与配置如图1-17所示,运行Android Studio,进入欢迎界面。欢迎界面有如下选项:选项:创建一个Android Studio项目。选项:打开一个Android Studio项目。选项:导入官方样例,会从网络上下载代码。此功能在以前的测试版本中是没有的,建议多看一看官方给的范例。选项:从版本控制系统中导入代码。支持CVS、SVN、Git、Mercurial,甚至GitHub。选项:导入非Android Studio项目。比如纯生的Eclipse Android项目,IDEA Android项目。如果你的Eclipse项目使用官方建议导出(即使用Generate
31、Gradle build files的方式导出),建议使用选项2导入。选项:设置。选项:帮助文档。1.8 Android Studio 安装与配置单击Configure,进入Configure页面,如图1-18所示。再单击Settings,进入Default Settings设置页面,如图1-19。图1-18 Configure页面 图1-19 Default Settings设置页面1.8 Android Studio 安装与配置修改主题,修改全局字体在这里可以修改主题,仍用默认的IntelliJ;字体,这里选择的是微软雅黑。Size选择14或其他。如图1-20所示。禁用自动检查更新禁用自动
32、检查更新,如图1-21所示。图1-20 修改全局字体 图1-21 禁用自动检查更新1.8 Android Studio 安装与配置显示行号和显示方法分隔线显示行号和方法分隔线,如图1-22所示。图1-22 显示行号和方法分隔线1.8 Android Studio 安装与配置修改文件编码为UTF-8修改文件编码为UTF-8,如图1-23所示。 图1-23修改文件编码为UTF-8 1.8 Android Studio 安装与配置1.8.3 创建HelloWorld项目1创建HelloWorld项目如图1-24创建HelloWorld项目,填写项目名称和包名以及项目路径等,然后单击“Next”。 图
33、1-24创建HelloWorld1.8 Android Studio 安装与配置如图1-25所示页面支持你适配TV、Wear、Glass等,我们只选择第一项就ok,选好最小SDK,然后单击“Next”。如图1-26所示页面选择一个Activity模板,和Eclipse很像,我们直接选择一个Blank Activity好了。如图1-27所示页面,定制MainActivity。 图1-25 选择Target Devices 图1-26 选择Activity模板 图1-27 定制Activity1.8 Android Studio 安装与配置在如图1-27所示页面中,点击“Finish”后等一会出来
34、如图1-28所示的一个进度条,表示正在构建HelloWorld工程,这里需要下载Gradle,只第一次会下载,有点慢。然后会看到如图1-29所示的Android Studio IDE界面。 图1-28 Building HelloWorld Gradle project 图1-29 Android Studio IDE1.8 Android Studio 安装与配置2解决手机界面渲染问题(Rendering Problems)这个时候往往会出现手机界面渲染问题,如图1-30所示。图1-30 Rendering Problems1.8 Android Studio 安装与配置解决办法:打开文件r
35、es/values/styles.xml, 修改为: 解决手机界面渲染问题后,这时会看到如图1-31所示的界面。图1-31 解决手机界面渲染问题1.8 Android Studio 安装与配置3创建AVD并启动单击工具栏上的AVD Manager,如图1-32所示,依次弹出创建模拟器的几个界面。在这几个界面中可进行硬件设备及镜像文件System Image的选择和AVD的其它配置。图1-32创建模拟器的5个界面1.8 Android Studio 安装与配置单击图1-32所示最后一个界面右下的运行按钮。于是出现了如图1-33所示的模拟器运行界面。图1-33 模拟器运行界面1.8 Android
36、 Studio 安装与配置4运行HelloWorld单击图1-34所示Android Studio工具栏上的 Run app按钮。图1-34 Android Studio工具栏上的 Run app按钮1.8 Android Studio 安装与配置在弹出的“Choose Device”对话框中选择运行设备,如图1-34所示。终于在Android5.1.1模拟器上出现了HelloWorld运行界面,如图1-35所示。图1-34 选择运行设备图1-35 HelloWorld运行界面1.4 Android程序结构Eclipse和Android Studio开发工具将所有自动生成的和非自动生成的文件都
37、保存在项目根目录下。1src目录src目录下是java源代码存放目录,里面一般都是.java结尾的java文件。2gen目录gen目录是Android开发工具自动生成的文件。1.4 Android程序结构3res目录res目录是资源目录,可以存放应用使用到的各种资源,如XML界面文件、图片、数据等。layout专门存放xml界面的布局文件,xml文件同html文件一样,主要用于显示用户操作界面。values专门存放应用中使用到的各种类型的数据,不同类型的数据存放在不同的文件中,如string.xml定义字符串和数值,arrays.xml定义数组。1.4 Android程序结构4assets目录
38、assets资源文件目录一般可用于存放html文件、数据库文件、javascript文件等,还有原始格式的文件,例如二进制格式的音频文件、视频文件等。5AndroidMamifest.xmlAndroidMamifest.xml项目清单文件列出了应用程序提供的功能,开发好的各种组件需要在此文件中进行配置,声明应用的使用权限。每个Android程序必须在根目录下包含一个AndroidMamifest.xml文件。1.5 Android应用的基本组件介绍1Activity活动:应用表示层(基类Activity)一个活动表示一个可视化的用户界面。应用程序中的每个屏幕都是通过继承和扩展基类Activi
39、ty来实现的。2Service服务:没有可见用户界面,但能够长时间运行于后台(基类Service)Service(服务)是一个没有用户界面的在后台运行执行耗时操作的组件。其他应用组件能够启动Service,Service将持续在后台运行。例如,一个service可能会处理网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,所有这些活动都是在后台进行。1.5 Android应用的基本组件介绍3Broadcast Receiver广播接收器:用户接收广播通知的组件(基类BroadcastReceiver)BroadcastReceiver 是对Broadca
40、st广播进行过滤接收并响应的一类组件。BroadcastReceiver自身并不实现图形用户界面,但是当它收到某个通知后,可以启动 Activity作为响应,或者通过NotificationMananger提醒用户。4Content Provider内容提供者:应用程序间数据通信、共享(基类ContentProvider)内容提供者(content provider)使一个应用程序的数据提供给其他应用程序。应用程序并不直接调用数据访问方法,而是使用ContentResolver对象调用它的方法;ContentResolver能与任何内容提供者通信,它与提供者合作来管理进程间的通信。1.5 An
41、droid应用的基本组件介绍5Intent意图或意愿:连接组件的纽带通信Intent在不同的组件之间传递消息,将一个组件的请求意图传给另一个组件。Intent 是包含具体请求信息的对象。Intent是一种运行时绑定(runtime binding)机制,它能够在程序运行的过程中连接两个不同的组件。通过Intent,应用可以向 Android表达某种请求或者意愿,Android 会根据意愿的内容选择适当的组件来处理请求。1.6 Activity的生命周期Activity类处于android.app包中,继承体系如下:java.lang.Objectandroid.content.Contexta
42、ndroid.app.ApplicationContextandroid.app.Activity1.6 Activity的生命周期Activity是单独的,用于处理用户操作。几乎所有的Activity都要和用户打交道,所以Activity类创建了一个窗口,可以通过setContentView(View)接口把UI放到Activity创建的窗口上。大部分的Activity子类都需要实现以下两个接口:onCreate(Bundle)接口是初始化Activity的地方。 onPause()接口是使用者准备离开Activity的地方。所有的Activity类都必须在AndroidManifest.x
43、ml清单文件中定义有相关的“Activity”项。1.6 Activity的生命周期Activity有四种本质区别的状态:(1)在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running)(2)如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。(3)如果一个Activity被另外的Activity完全覆盖掉,叫做停止
44、状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。(4)如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,即销毁状态。Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。1.6 Activity的生命周期Activity有三个关键的循环:(1)整个的生命周期,从onCreate(Bundle)开始到onDestro
45、y()结束。(2)可见的生命周期,从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等。(3)前台的生命周期,从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有Activity的最前面,和用户进行交互。1.6 Activity的生命周期Activity的整个生命周期都定义在下面的接口方法中,所有方法都可以被重载。所有的Activity都需要实现 onCreate(Bundle)去初始化设置大部分Activity需要实现on
46、Pause()去提交更改过的数据public class Activity extends ApplicationContext protected void onCreate(Bundle icicle);protected void onStart();protected void onRestart();protected void onResume();protected void onFreeze(Bundle outIcicle);protected void onPause();protected void onStop();protected void onDestroy();
47、1.7 程序调试写代码是每个程序员最乐意做的事,然而在开发中也会遇到很多令程序员很头疼的事情。如果说让程序员最头疼的事情是看到无数bug、软件的发布遥遥无期,那么让程序员最最头疼的事情是程序在调试状态下没有问题然而在实际运行中确有问题。调试程序是每个程序员工作中必不可少的部分,而且可以毫不夸张地说调试程序占用了程序员50%的工作时间。由此可见,调试程序是每个程序员必不可少的技术,调试水平的高低决定了程序员水平的高低。1.7 程序调试1LogCatLogCat是用来获取系统日志信息的工具,可显示在集成开发环境中。如图1-12所示。LogCat能够捕获包括Dalvik虚拟机产生的信息、进程信息、A
48、ctivityManager信息、PackagerManager信息、Homeloader 信息、WindowsManager信息、Android运行时和应用程序信息等。图1-12 Show View对话框1.7 程序调试在Android中可以使用Log类,Log类在android.util包中,可以使用它将运行过程的信息输出到IDE中,直接查看程序运行的过程。Log类提供了若干静态方法:Log.v(String tag, String msg);Log.d(String tag, String msg);Log.i(String tag, String msg);Log.w(String t
49、ag, String msg);Log.e(String tag, String msg);分别对应Verbose、Debug、Info、Warning和Error。tag是一个标识,可以是任意字符串,通常可以使用类名+方法名,主要是用来在查看日志时提供一个筛选条件。1.7 程序调试也可以把程序运行过程信息的输出当作程序运行的一部分,比如使用Toast Notification将输出信息显示在界面中,但由于这些只是些调试代码,在发布程序时需要去掉。还有一种有效的一种法,直接将运行过程的信息以文件的方式存储,在程序运行后打开文件,查看输出的信息。在一些复杂的工具中,都是用这种日志文件的方法来记录
50、文件运行的过程。1.7 程序调试2DDMSDDMS 的全称是Dalvik Debug Monitor Service是 Android 开发环境中的Dalvik虚拟机调试监控服务。可以用来为测试设备截屏,针对特定的进程查看正在运行的线程以及堆栈信息、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标GPS等。1.7 程序调试(1)Devices:在这个面板可以看到所有与DDMS连接的终端的信息,以及每个终端正在运行的App进程信息。(2)Emulator Control:通过这个面板可以非常容易地使测试终端模拟真实手机具备一些交互功能。比如接听电话、根据选项模拟各种不同网络情况,、模拟接受S
51、MS消息和发送虚拟地址坐标用于测试GPS功能等。(3)Telephony Status:通过选项模拟语音质量以及信号连接模式。(4)Telephony Actions:模拟电话接听和发送SMS到测试终端。(5)Location Control:模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理标识,并以动态形式根据变化的地理坐标显示在测试终端。调试工具导入已有项目导入Android Studio项目导入Eclipse 项目导入Github项目导入Android官方例程导入Eclipse项目(模块)选择原有Eclipse项目的根目录导入原有Eclipse项目的步骤Android Studio
52、项目开发概览构建文件清单文件界面布局文件资源文件源代码文件(Java)build.gradle 构建文件AndroidManifest.xml 清单文件xml界面布局项目资源编辑器Java代码编辑器Android Studio项目运行Android开源项目Android 开发将继Android面世后带来新一轮热潮,很多开发者已投入这个浪潮中,创造了许许多多相当优秀的应用。Github是一个开源代码库以及版本控制系统,很多安卓开源项目迁移到Github平台()。下面将介绍几个在Github上很流行的应用开源项目。ActionBarSherlockActionBarSherlock可称作GitHu
53、b上最火的Android开源项目。它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。facebook-android-sdkFacebook SDK for Android是一个开源库。它允许开发者将Facebook集成到所开发的Android应用中。如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Facebook Developers查看。SlidingMenuSlidingMenu是一个开源的Android库,能够让开发者轻松开发一款应用,实现类似于Google+、Youtube和Facebook应用中
54、流行的滑动式菜单。使用SlidingMenu的Android应用:Foursquare,Rdio,Plume,VLC for Android,ESPN ScoreCenterAndroid-ViewPagerIndicatorViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面。Android-PullToRefreshAndroid-PullToRefresh项目用于为Android提供一个可重用的下拉刷新部件。它最初来源于Johan Nilsson的库(主要是图形、字符串和
55、动画),但这些后来都已被取代android-async-httpandroid-async-http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。Android-Universal-Image-LoaderUniversal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进GreenDroidGreenDroid最初是由Cyril Mottier发起,是一个Android的UI开发类库,能
56、够让UI开发更加简便,并且在应用中始终保持一致。android-viewflowandroid-viewflow是Android平台上的一个视图切换的效果库ViewFlow相当于Android UI部件提供水平滚动的ViewGroup,使用Adapter进行条目绑定android-mapviewballoons当使用Android地图外部库时,android-mapviewballoons会提供一个简单的方式来对地图覆盖进行标注,就是一个简单的信息气泡PushSharp一个向iOS、Android、Windows Phone和Windows 8设备发送推送通知的服务器端库androidanno
57、tationsAndroid Annotations是一个开源的框架,用于加速 Android应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性HockeyKitHockey是一个iOS Ad-Hoc自动更新框架HockeyKit能够为用户提供服务器托管服务默认当App启动或唤醒时,客户端会从服务器检测更新,用户可以在设置对话框中进行修改:一天一次或手动检查更新。除了支持iOS,HokeyKit也支持Android平台android-flipAphid FlipView是一个能够实现Flipboard翻页效果的UI组件1.9 相关阅读材料(课后自学)1.9.1 未来的夏娃A
58、ndroid这一次最先出现在法国作家利尔.亚当在1886年发飙的科幻小说未来的夏娃中,作者将外表像人类的机器起名为Android,这也就是Android小人名字的由来。这部书描写一位和爱迪生同名的大发明家,利用电学原理制作了一个完美的女人,聪明美丽,更有智慧,但她毕竟只是机器人,人性、灵魂和科学的矛盾碰撞,导致了一场类似浮士德的悲剧。1.9 相关阅读材料1.9.2 Andy Rubin的黯然离场:他为何非走不可?他一手打造Android系统,助力Google直追苹果,与iOS二分移动市场的天下。却在Android扶摇直上之时,不得不黯然离场,忍痛割爱,放手让Android前行。1天才之能,天才
59、之累十年间,Rubin一手将Android从白纸上天马行空的想法发展为世界上最受欢迎的智能手机操作系统。超过7.5亿终端置入Android,超过250亿的app被下载,绿色的小机器人标识和被咬了一口的苹果辨识度相当。1.9 相关阅读材料 然而,盛名之下,Android却前路难明,荆棘遍布。平板电脑市场上,Android份额跟iPad相去尚远。而AndroidHome计划(致力于让开发者为家用电器开发app),又似乎操之过急。尽管Google坚持开放系统理念,却无法从中获得实际利益,甚至让自己的竞争对手Samsung抢占移动设备市场,赚得盆满钵满,赶超自身。 没有人会否认Rubin天赋异禀。他既
60、有建筑师之才,又有尝试不倦、勇于突破的黑客精神。进入Google之前,他做过苹果的工程师、微软的经理,又独立创业,带领两支创业团队走向成功:一是Danger,一是后来的Android。 但Rubin一直不愿,或者说不能,让Android成为Google的印钞机。Samsung制造出远销海外的Android智能机,Google却无法从中获得一分利润。“Andy是个天生的独舞者。他不断奔向心中所想,无谓的人事皆不入眼。”曾与Rubin共事的一位业界人士说道,“但是Android必定会成长到某种的规模,那时它离不开团队内部的互动、合作、协调,甚或需要强力外部资源支撑。事实证明,Android成长到这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租房无责任合同范本
- 2025至2030年中国慢回弹棉数据监测研究报告
- 2025至2030年中国强力塑胶脱漆水数据监测研究报告
- 幼儿集体舞表演与仿编单圈舞双圈舞课件
- 幼儿歌曲伴奏MUSIC98课件
- 勘察设计合同范本更新
- 2025至2030年中国塑料硬饵数据监测研究报告
- 体外心脏按摩在急诊病例中的使用技巧
- 2025至2030年中国单信道气体警报器数据监测研究报告
- 2025至2030年中国内六角螺帽数据监测研究报告
- 2025安徽芜湖市运达轨道交通建设运营限公司招聘129人高频重点模拟试卷提升(共500题附带答案详解)
- 2025年湖南科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年安徽省高校分类考试对口招生语文试卷真题(含答案)
- 2025年苏州健雄职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年八省联考高考语文试题真题解读及答案详解课件
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- (高清版)JTG 3370.1-2018 公路隧道设计规范 第一册 土建工程
- 小学科学冀人版六年级下册全册同步练习含答案
- 酒店前台绩效考核表
- 精神发育迟滞的护理查房
- 中西纪年对照表
评论
0/150
提交评论