第3章Android应用程序.ppt

上传人:本田雅阁 文档编号:2526036 上传时间:2019-04-05 格式:PPT 页数:58 大小:1.11MB
返回 下载 相关 举报
第3章Android应用程序.ppt_第1页
第1页 / 共58页
第3章Android应用程序.ppt_第2页
第2页 / 共58页
第3章Android应用程序.ppt_第3页
第3页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章Android应用程序.ppt》由会员分享,可在线阅读,更多相关《第3章Android应用程序.ppt(58页珍藏版)》请在三一文库上搜索。

1、第3章 Android应用程序,3.1 第一个Android程序,创建Android工程 在Eclipse程序中建立过的Android工程,工程名称和目录结构将显示在Package Explorer区域内,3.1 第一个Android程序,创建Android工程 打开Android工程向导: FileNewProjectAndroidAndroid Project 或 File NewOther AndroidAndroid Project,3.1 第一个Android程序,创建Android工程 填写工程名称:工程名称必须唯一,不能与已有的工程重名 在Project name中填入Hello

2、Android,3.1 第一个Android程序,创建Android工程 选择创建方式 可以创建新Android工程,也可利用已有代码创建Android工程,缺省为创建新Android工程;选择“Create new project in workspace” 可以使用默认位置存储,也可取消复选框,选择其他位置保存,缺省为使用默认位置E:/Android/workplace/。使用默认位置存储,这里保存位置在: E:/Android/workplace/HelloAndroid,3.1 第一个Android程序,创建Android工程 选择编译目标。有三个选项 第一个是标准的1.1版本Andr

3、oid系统,API等级为2 第二个是标准的1.5版本的Android系统, API等级为3 第三个是包含Google API的1.5版本的Android系统, API等级为3 选择不同版本的Android系统,引入不同版本的android.jar包。这里选择标准的1.5版本Android系统,3.1 第一个Android程序,创建Android工程 填写相关信息 应用程序名称,即Android程序在手机中显示的名称,显示在手机的顶部。在Application name填入HelloAndroid 包名称是包的命名空间,需遵循Java包的命名方法,由两个或多个标识符组成,中间用点隔开。为了包名称

4、的唯一性,可以采用反写电子邮件地址的方式。,3.1 第一个Android程序,创建Android工程 填写相关信息 创建Activity是个可选项,如需要自动生成一个Activity的代码文件,则选择该项。Activity的名称与应用程序的名称不同,但为了简洁,可以让他们相同,表示这个Activity是Android程序运行时首先显示给用户的界面。在 Create Activity填入HelloAndroid,3.1 第一个Android程序,创建Android工程 填写相关信息 SDK最低版本是Android程序能够运行的最低的API等级,如果手机的API等级低于程序的SDK最低版本,则程序

5、无法在该Android系统中运行。在这里,之前选择标准的1.5版本的Android系统,则SDK等级被自动填入3,此项无需更改,3.1 第一个Android程序,启动Eclipse,3.1 第一个Android程序,Android虚拟设备(AVD) AVD是对Android模拟器进行自定义的配置清单,能够配置Android模拟器的硬件列表和外观,支持Android系统版本、附件SDK库和储存设置等信息。因为1.5版本的Android SDK中没有附带任何配置好的AVD,所以需建立一个AVD,3.1 第一个Android程序,建立AVD 使用Windows系统命令行工具CMD:开始运行CMD中启

6、动命令行工具,并进入/tools目录下。在这里,Android SDK 安装在E:Androidandroid-sdk-windows-1.5_r1 利用android list targets命令搜索/platforms和/add-ons目录下所有有效的Android系统映像,并将Android系统映像列表显示在命令行工具中,共有三个可以选择的编译目标:1.1版本Android系统、 1.5版本Android系统和Google API的1.5版本Android系统,其中前两个系统映像的Type属性是Platform,自行配置模拟器的硬件配置清单,最后一个的Type属性是Add-On,不能更改

7、配置清单,3.1 第一个Android程序,建立AVD,3.1 第一个Android程序,建立AVD 使用android create avd-n android1.5 t 2命令,以id为2的1.5版本Android系统为目标,建立一个名为Android1.5的AVD -n参数表明AVD的名称 -t参数表明选择的Android系统映像的id值 可以直接缺省的硬件配置,当然也可以重新定制模拟器支持的硬件清单,3.1 第一个Android程序,建立AVD 在建立过程中,Android工具会在文件系统中建立Android1.5.ini文件和Android1.5.avd目录 Android1.5.i

8、ni文件用来保存Android1.5.avd目录所在的位置 Android1.5.avd目录用来保存AVD配置文件、用户数据文件、SD卡映像和其他模拟器运行过程中可能产生的文件 如果用户使用的是Windows XP系统,则目录保存在C:Documents and Settings.android下 如果用户使用的是Windows Vista系统,则目录保存在 C:Users.android下,3.1 第一个Android程序,启动选项 路径:RunRun Configuration或RunDebug Configuration配置模拟器的启动选项 可以选择不同的AVD、配置网络速度、网络延迟、

9、控制台的字符编码和标准输入输出等内容。一般只需选择正确的AVD即可,3.1 第一个Android程序,启动Android程序 路径:RunRun Android Application或RunDebug Android Application 在程序调试完毕后,可直接再次运行Android程序,以便节约启动模拟器的时间,3.2 Android程序结构,在建立HelloAndroid程序的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改。下面逐一的介绍,3.2 Android程序结构,在“Package Explore”中,ADT以工程名称Hell

10、oAndroid作为根目录,将所有字段生成的和非自动生成的文件都保存在这个根目录下 根目录包含四个子目录:src、assets、res和gen,一个库文件android.jar,以及两个工程文件Androidmanifest.xml和default.properties,3.2 Android程序结构,src目录是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中 HelloAndroid工程建立初期,ADT根据用户在工程向导中的“Create Activity”选项,自动建立HelloAndroid.java文件,3.2 Android程序结构,Hell

11、oAndroid.java是Android工程向导根据Activity名称创建的java文件,这个文件完全可以手工修改。为了在Android系统上显示图形界面,需要使用代码继承Activity类,并在onCreate()函数中声明需要显示的内容 HelloAndroid.java文件的代码如下,3.2 Android程序结构,第3行和第4行的代码通过android.jar从Android SDK中引入了Activity和Bundle两个重要的包,用以子类继承和信息传递 第6行代码声明HelloAndroid类继承Activity类 第8行代码表明需要重写onCreate()函数 第9行代码的o

12、nCreate()会在Activity首次启动时会被调用,为了便于理解,可以认为onCreate()是HelloAndroid程序的主入口函数 第10行代码调用父类的onCreate()函数,并将savedInstanceState传递给父类,savedInstanceState是Activity的状态信息 第11行代码声明了需要显示的用户界面,此界面是用XML语言描述的界面布局,保存在scr/ layout/main.xml资源文件,3.2 Android程序结构,gen目录是1.5版本新增的目录,用来保存ADT自动生成的java文件,例如R.java或AIDL文件 R.java文件是ADT

13、自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源,3.2 Android程序结构,R.java文件不能手工修改,如果向资源目录中增加或删除了资源文件,则需要在工程名称上右击,选择Refresh来更新R.java文件中的代码 R类包含的几个内部类,分别与资源类型相对应,资源ID便保存在这些内部类中,例如子类drawable表示图像资源,内部的静态变量icon表示资源名称,其资源ID为0x7f020000。一般情况下,资源名称与资源文件名相同,3.2 Android程序结构,HelloAndroid工程生成

14、的R.java文件的代码,3.2 Android程序结构,引用资源 资源引用有两种情况:一种是在代码中引用资源;另一种是在资源中引用资源 代码中引用资源,需要使用资源的ID,可以通过R.resource_type.resource_name或android.R.resource_type.resource_name获取资源ID resource_type代表资源类型,也就是R类中的内部类名称 resource_name代表资源名称,对应资源的文件名或在XML文件中定义的资源名称属性 资源中引用资源,引用格式: package:type:name 表示对资源的引用 package是包名称,如果在

15、相同的包,package则可以省略,3.2 Android程序结构,android.jar文件是Android程序所能引用的函数库文件,Android通过平台所支持API都包含在这个文件中 assets目录用来存放原始格式的文件,例如音频文件、视频文件等二进制格式文件。此目录中的资源不能被R.java文件索引。,所以只能以资截流的形式读取。一般情况下为空,3.2 Android程序结构,res目录是资源目录,有三个子目录用来保存Android程序所有资源 drawable目录用来保存图像文件 layout目录用来保存与用户界面相关的布局文件 valuse目录保存文件颜色、风格、主题和字符串等

16、在Hello Android工程中,ADT在drawable目录中自动引入了icon.png文件,作为HelloAndroid程序的图标文件;在layout目录生成了mail.xml文件,用于描述用户界面,3.2 Android程序结构,main.xml文件,是界面布局文件,利用XML语言描述的用户界面 界面布局的相关内容将在第5章用户界面设计中进行详细介绍,3.2 Android程序结构,main.xml文件的代码 第7行的代码说明在界面中使用TextView控件,TextView控件主要用来显示字符串文本 第10行代码说明TextView控件需要显示的字符串,非常明显,string/hel

17、lo是对资源的引用,3.2 Android程序结构,Strings.xml文件的代码 通过strings.xml文件的第3行代码分析,在TextView控件中显示的字符串应是“Hello World, HelloAndroid!” 如果读者修改strings.xml文件的第3行代码的内容,重新编译、运行后,模拟器中显示的结果也应该随之更改,3.2 Android程序结构,AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等,而

18、且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件,“,3.2 Android程序结构,AndroidManifest.xml文件的代码,3.2 Android程序结构,AndroidManifest.xml文件的根元素是manifest,包含了xmlns:android、package、android:versionCode和android:versionName共4个属性 xmlns:android定义了Android的命名空间,值为http:/ package定义了应用程序的包名称 android:versionCode定义了应用程序的版本号,是一个

19、整数值,数值越大说明版本越新,但仅在程序内部使用,并不提供给应用程序的使用者 android:versionName定义了应用程序的版本名称,是一个字符串,仅限于为用户提供一个版本标识,3.2 Android程序结构,manifest元素仅能包含一个application元素,application元素中能够声明Android程序中最重要的四个组成部分,包括Activity、Service、BroadcastReceiver和ContentProvider,所定义的属性将影响所有组成部分 第6行属性android:icon定义了Android应用程序的图标,其中drawable/icon是一种

20、资源引用方式,表示资源类型是图像,资源名称为icon,对应的资源文件为res/drawable目录下的icon.png 第7行属性android:label则定义了Android应用程序的标签名称,3.2 Android程序结构,activity元素是对Activity子类的声明,必须在AndroidManifest.xml文件中声明的Activity才能在用户界面中显示 第8行属性android:name定义了实现Activity类的名称,可以是完整的类名称,也可以是简化后的类名称 第9行属性android:label则定义了Activity的标签名称,标签名称将在用户界面的Activity

21、上部显示,string/app_name同样属于资源引用,表示资源类型是字符串,资源名称为app_name,资源保存在res/values目录下的strings.xml文件中 intent-filter中声明了两个子元素action和category,intent-filter使HelloAndroid程序在启动时,将.HelloAndroid这个Activity作为默认启动模块,3.2 Android程序结构,可视化编辑器 双击AndroidManifest.xml文件,直接进入可视化编辑器,用户可以直接编辑Android工程的应用程序名称、包名称、图标、标签和许可等相关属性,3.2 And

22、roid程序结构,default.properties文件记录Android工程的相关设置,该文件不能手动修改,需右键单击工程名称,选择“Properties”进行修改 在default.properties文件中只有第12行是有效代码,说明Android程序的编译目标,3.3 命令行创建程序,命令行工具 命令行工具保存在/tools目录下 利用命令行工具开发Android程序的步骤 使用android.bat建立HelloCommondline工程所需的目录和文件 使用Apache Ant对HelloCommondline工程进行编译和apk打包 使用adb.exe将HelloCommond

23、line工程上传到Android模拟器中,3.3 命令行创建程序,使用android.bat建立HelloCommondline工程所需的目录和文件 Android.bat是一个批处理文件,可以用来建立和更新Android工程,同时也管理AVD,能够创建Android工程所需要的目录结构和文件 Android.bat建立和更新Android工程的命令和参数说明,3.3 命令行创建程序,建立过程:开始运行CMD 启动CMD 并进入/tools目录,输入命令 或者 新工程的名称为HelloCommandline,包名称为edu.hdu.HelloCommandline,Activity名称是Hel

24、loCommandline,编译目标的ID为2,新工程的保存路径是E:AndroidworkplaceHelloCommandline,3.3 命令行创建程序,运行结果,3.3 命令行创建程序,仔细观察android.bat建立的目录和文件,发现其中一些在Eclipse开发环境中从未出现过的目录和文件,例如build.xml、local.properties和tests目录。这些新目录和文件的出现,主要是为了在构建Android程序时使用Apache Ant Apache Ant 一个将软件编译、测试、部署等步骤联系在一起的自动化工具,多用于Java环境中的软件开发 若在构建Android程序

25、时使用Apache Ant,可以简化程序的编译和apk打包过程,3.3 命令行创建程序,HelloCommondline工程文件和目录列表,3.3 命令行创建程序,HelloCommondline工程文件和目录列表 libs目录用来保存私有的函数库文件,在工程创建初期是空文件夹 tests目录用于测试用途,在工程创建初期,文件夹的内容是HelloCommandline工程所有文件和目录的一个完成拷贝 local.properties文件是保存Android SDK的路径的文件,由Android工具自动建立,不允许进行手工修改 local.properties文件该的主要用途是供Apache A

26、nt寻找Android SDK的保存路径,第10行说明了Android SDK的路径是E:Androidandroid-sdk-windows-1.5_r1,3.3 命令行创建程序,local.properties文件的代码如下,3.3 命令行创建程序,Build.properties 保存自定义的编译属性的文件,能够修改应用程序的包名称、源代码目录和编译脚本输出目录等Apache Ant编译属性 在工程建立初期,build.properties不包含任何有效代码,用户可以手工修改文件内容 如果需要修改应用程序的包名称,可以取消第8行的注释符号#,并将com.example.myproject

27、替换为正确的包名称 修改源代码目录和编译脚本输出目录的位置,分别在build.properties文件的第11行和第14行,3.3 命令行创建程序,build.properties文件的代码如下,3.3 命令行创建程序,Build.xml是Apache Ant的构建文件,为编译Android程序提供基础信息 去除注释后的build.xml文件代码如下,3.3 命令行创建程序,build.xml文件的第4行至第6行代码分别说明三个属性文件的名称 第8行至14行代码说明了构建过程中使用到的库文件的路径,3.3 命令行创建程序,使用Apache Ant对HelloCommondline工程进行编译和

28、apk打包 下载Apache Ant地址: http:/ant.apache.org/bindownload.cgi 网站提供zip、tar.gz 和tar.bz2三种格式下载,Windows系统用户推荐下载zip格式的二进制包 这里下载的Apache Ant压缩包为apache-ant-1.7.1-bin.zip,版本号为1.7.1,并将其解压缩在E:Android目录下,3.3 命令行创建程序,在windows系统中添加新的环境变量,Apache才能正常运行。修改位置:“我的电脑” “属性” “高级” “环境变量” “系统变量” 新增的系统环境变量,3.3 命令行创建程序,JAVA_HOM

29、E是JDK的安装目录,根据JDK实际安装位置进行修改 ANT_HOME是Apache Ant的安装目录,根据Apache Ant实际安装位置进行修改 ANDROID_HOME是Android SDK的安装目录,根据实际安装位置进行修改,3.3 命令行创建程序,CLASSPATH是需要使用的库文件的位置 Path是可执行文件的搜索路径,将/bin、/bin和/tools三个目录追加到原有的Path变量值中,目录之间使用分号分隔,3.3 命令行创建程序,判断环境变量的正确性。在CMD中运行输入ant命令,通过命令的输出信息判断环境变量是否设置正确 如果输出的提示包含“Unable to locat

30、e tools.jar. Expected to find it in”,则表明设置环境变量不正确 如果环境变量设置正确,ant命令的输出结果如下图,3.3 命令行创建程序,数字签名机制。在Android平台上开发的所有应用程序都必须进行数字签名后,才能安装到模拟器或手机上,否则,将返回错误提示: Failure INSTALL_PARSE_FAILED_NO_CERTIFICATERS 在Eclipse开发环境中,ADT在将Android程序安装到模拟器前,已经利于内置的debug key为apk文件自动做了数字签名,这使用户无需自己生产数字签名的私钥,而能够利于debug key快速完成程

31、序调试 但有一点需要注意,如果用户希望正式发布自己的应用程序,则不能使用debug key,必须使用私有密钥对Android程序进行数字签名,3.3 命令行创建程序,Apache Ant构建Android应用程序支持Debug模式和Release模式两种构建模式 Debug模式是供调试使用的构建模式,用于快速测试开发的应用程序,Debug模式自动使用debug key完成数字签名 Release模式是正式发布应用程序时使用的构建模式,生成没有数字签名的apk文件,3.3 命令行创建程序,Debug模式对HelloCommandline工程进行编译,生成具有debug key的apk打包文件。使用CMD,在工程的根目录下,输入ant debug,结果显示如图 命令运行后,Apache Ant在bin目录中生成打包文件HelloCommandline-debugapk,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1