Android官方开发教程中文版.docx
《Android官方开发教程中文版.docx》由会员分享,可在线阅读,更多相关《Android官方开发教程中文版.docx(87页珍藏版)》请在冰豆网上搜索。
Android官方开发教程中文版
Android官方开发教程中文版
创建你的第一个App
创建你的第一个App
欢迎参加Android应用开发。
本课程将教你如何创建你的首个Android应用。
你将学习到如何创建Android项目和运行它的可调试版本。
你还会学习到Android应用设计的根本原理,包括如何创建简单用户界面和处理用户输入。
在你开始本课程之前,你要确信你的开发环境已经设置好,你需要:
1.下载AndroidSDK。
2.为Eclipse安装ADT插件〔如果你的IDE是Eclipse〕。
3.使用SDKManager下载最新的SDK工具和平台。
如果你还没有完成这些任务,那么开始下载AndroidSDK并完成随后的安装步骤。
一旦你完成安装,也就做好了开始本课程的准备工作。
本课程采用教程的格式,通过逐步构建一个小型的Android应用,教你了解一些关于Android开发的根本概念,因此,你应该遵循教程中的每一个步骤。
创建Android项目
一个Android项目包含Android应用的所有文件以与源代码。
AndroidSDK工具可以很轻松地使用默认的目录和文件开始一个新的Android项目。
本课程将演示如何使用Eclipse〔含ADT插件〕或SDK工具从命令行创建新项目。
注意:
你应该已经安装了AndroidSDK,并且如果你使用的是Eclipse,那么你也应该安装了ADT插件〔版本21.0.0或更高〕,如果你还没有完成这些,在开始本课程之前请按照前面的指南安装AndroidSDK。
使用Eclipse创建项目
1.在工具样上点击New
。
2.在出现的窗口中,打开Android文件夹,选择AndroidApplicationProject,点击Next。
3.填写以下容:
●ApplicationName:
用户看到的应用名称,在本项目中,使用“MyFirstApp〞。
●ProjectName:
项目目录的名称,并且在Eclipse中也能看到的名称。
●PackageName:
应用的包名〔遵循Java程序语言中包的命名规如此〕。
你的包名在所有安装到Android系统的包中必须是唯一的,因此,包名最好是你的组织或出版商的域名反转。
在本项目中,你可以使用类似“〞的包名。
无论如何,你不能使用“.example〞的包命在谷歌发布你的应用。
●MinimumRequiredSDK:
你的应用支持的Android系统的最低版本和它使用的API级别。
为了支持尽可能多的设备,你应该将它设置为所允许的最低版本以允许你的应用提供所有核心功能。
如果你的应用中某个功能只能在新版本的Android系统中运行,并且它不是核心功能的关键局部,你可以启用仅在支持的版本上运行该功能(我们将在“支持不同平台版本〞中进一步讨论)。
本项目中使用默认值。
●TargetSDK:
表示用来测试你的应用的Android系统的最高版本和API级别。
当新的Android系统可用时,你应该在新版本上测试你的应用并更新这个值以匹配最新的API级别,从而利用新的平台特性。
●pileWith:
用以编译你的应用的平台版本。
默认情况下,这会设置为你的SDK中可用的最新版本的Android系统〔应该是Android4.1或更高版本,如果你没这样一个可用版本,你必须用SDKManager安装一个〕。
你仍然可以创建支持旧版本的应用,但把构建目标设置为最新版本可以允许你启用新功能并且在最新设备上优化你的应用以便为用户提供更好的用户体验。
●Theme:
你的应用使用的Android界面风格。
你可以保持默认值。
图一Eclipse的创建新Android项目的向导
点击Next。
4.在配置项目的下一个屏幕中,使用默认选项,点击Next。
5.下一个屏幕可以帮助你为你的应用创建一个执行图标。
你可以用多种方式自定义一个图标,用工具为不同屏幕分辨率生成图标。
在发布你的应用之前,你应该确保你的图标符合设计指南定义的规。
点击Next。
6.现在你可以选择一个Activity模板来创建你的应用。
本项目中,选择BlankActivity并且点击Next。
7.为Activity保存默认状态,点击Finish。
你的Android项目现在设置了默认文件,准备开始创建应用吧。
使用命令行工具创建Android项目
如果你没有使用带ADT插件的Eclipse,你也可以从命令行使用SDK工具来创建Android项目。
1.改变当前路径到AndroidSDK的tools目录下。
2.执行:
androidlisttargets
这将列出你的SDK已经下载的Android平台,找到你想编译应用的平台,注意目标ID。
我们建议你选择所允许的最高版本,虽然你可以构建支持旧版本的应用,但设定为最新版本可以为最新设备优化你的应用。
如果你没有看到任何目标列表,你需要使用SDKManager安装一些平台。
3.执行:
androidcreateproject--target--nameMyFirstApp\
--path/MyFirstApp--activityMainActivity\
用上面得到的目标ID替换,用你想保存Android项目的本地路径替换。
运行你的App
如果你按照上一节课创建了Android项目,它包含了一个默认的“HelloWorld〞源文件,允许你立即运行该应用。
如何运行你的应用依赖两件事:
你是否有一个真实的Android设备;你是否在使用Eclipse。
本节将演示如何在一个真实的Android设备或Android模拟器上安装和运行你的应用,以与分别在两种情况下运行:
Eclipse和命令行工具。
在运行你的应用之前,我们应该了解一些有关Android项目的目录和文件。
清单文件描述了应用的根本特征并定义了它的每个组件,随着课程的深入,你将了解这个文件中的各种定义。
清单文件中最重要的元素之一是元素,它用android:
minSdkVersiont和android:
targetSdkVersion两个属性定义了你的应用兼容不同的Android版本。
在你的首个App中,它看起来类似这样:
android="schemas.android./apk/res/android"...>
minSdkVersion="8"android:
targetSdkVersion="17"/>
...
你应该把android:
targetSdkVersion设置的尽可能高并在相应的平台上测试你的应用。
更多信息请参见“支持不同平台版本〞。
src/
应用的主要源文件的存放目录。
默认情况下,它包含一个当通过应用图标启动应用时要运行的Activity类。
res/
包含了几个和应用资源相关的子目录,有这么几个:
drawable-hdpi/
存放为高分辨率屏幕设计的可绘制对象〔如位图〕。
其它以drawable开头的目录存放为其它分辨率设计的资源。
layout/
存放定义应用的用户界面的文件。
values/
存放包含其它资源集合的各种XML文件,如字符串和颜色的定义。
当你构建和运行默认Android应用时,默认的Activity类会启动并加载布局文件显示“HelloWorld〞,结果虽然平平淡淡,但重要的是,在你开发之前了解了如何运行你的应用。
在真实设备上运行
如果你有一部真实的Android设备,下面将告诉你如何安装和运行你的应用。
1.用USB连线连接你的设备和开发机器,如果你在Windows下开发,你可能需要为你的设备安装适宜的USB驱动程序。
要获得安装驱动程序的帮助,请参看OEMUSBDrivers文档。
2.在你的设备上启用USBdebugging
●大多数设备运行Android3.2或更旧的版本,你可以在Settings>Applications>Development下找到这个选项。
●在Android4.0或更新版本中,这个选项在Settings>Developeroptions中。
注意:
在Android4.2或更新版本中,Developeroptions默认是隐藏的,要让它可见,进入Settings>Aboutphone并且轻触Buildnumber七次,返回上一级屏幕就可以找到Developeroptions。
从Eclipse中运行:
1.打开的你项目中的一个文件,并在工具栏上点击运行
。
2.在Runas窗口中,选择AndroidApplication然后点击OK。
Eclipse将把应用安装到你连接的设备上并启动它。
你也可以从命令行运行你的应用
1.把路径改变到你的Android项目的根目录中,执行:
antdebug
2.确保你的AndroidSDKplatform-tools/目录在你的PATH环境变量中,执行:
a
3.在你的设备上找到MyFirstActivity并打开它。
这就是如何构建和在设备上运行你的应用,要进入开发,让我们继续下一节课。
在模拟器上运行
无论你是使用Eclipse还是命令行,要在模拟器上运行你的应用,首先要创建一个Android虚拟设备〔AVD〕。
一个AVD是Android模拟器的设备配置,允许你模拟不能的设备。
要创建AVD:
1.执行Android虚拟设备管理工具
a.在Eclipse中,点击工具栏的AndroidVirtualDeviceManager
。
b.在命令行中,把路径改变到/tools/并且执行:
androivavd
2.在Android虚拟设备管理工具中,点击New。
3.填写AVD的详细信息,给它一个名字,目标平台,SD卡的大小以与皮肤〔默认为HVGA〕。
4.点击CreateAVD。
5.在Android虚拟设备管理工具中选择新的AVD,点击Start。
6.模拟器启动之后,解锁模拟器的屏幕。
从Eclipse中运行:
1.打开的你项目中的一个文件,并在工具栏上点击运行
。
2.在Runas窗口中,选择AndroidApplication然后点击OK。
Eclipse将把应用安装到模拟器上并启动它。
你也可以从命令行运行你的应用
4.把路径改变到你的Android项目的根目录中,执行:
antdebug
5.确保你的AndroidSDKplatform-tools/目录在你的PATH环境变量中,执行:
a
6.在模拟器中找到MyFirstActivity并打开它。
这就是如何构建和在设备上运行你的应用,要进入开发,让我们继续下一节课。
创建简单用户界面
Android应用的图形用户界面是由View和ViewGroup对象组成的层次结构创建的。
View对象通常是一个UI部件如button或textfield,ViewGroup对象是一个不可见的视图容器,它定义了子视图如何布局,如grid或verticallist。
Android提供了一个XML词汇表,对应View和ViewGroup的子类,你可以在XML中使用UI元素的层次结构定义自己的用户界面。
图解ViewGroup对象如何在布局中组织分支以与包含其它View对象
在这节课中,你将创建一个包含button和textfield的XML布局。
在随后的课程中,你将响应按纽按下时,把textfield中的容发送到另一个Activity。
创建线性布局
从res/layout/目录中打开activity_main.xml文件。
注意:
在Eclipse中,你打开一个布局文件时,首先看到的是图形布局编辑器。
这是一个使用“所见即所得〞工具帮助你创建布局的编辑器。
在这节课中,你要直接处理XML,因此点击屏幕下方的activity_main.xml标签打开XML编辑器。
你在创建项目时选择的BlankActivity模板包含了一个带相对布局的根视图和TextView的子视图的activity_main.xml文件。
首先,删除元素并把元素改为,然后添加android:
orientation属性并把它的值设为“horizontal〞,结果看来如下所示:
xmlversion="1.0"encoding="utf-8"?
>android="schemas.android./apk/res/android" xmlns:
tools="schemas.android./tools" android:
layout_width="match_parent" android:
layout_height="match_parent" android:
orientation="horizontal">
LinearLayout是一个视图组〔ViewGroup的子类〕,它按照android:
orientation指定的值在垂直或水平方向上排列子视图。
LinearLayout的每一个子视图按照它在XML中的顺序出现在屏幕上。
另外两个属性,android:
layout_width和android:
layout_height用来为所有视图指定大小。
因为LinearLayout是布局的根视图,它将填充整个屏幕区域,应用的高度和宽度被设定为“match_parent〞,这个值表示视图将会扩展它的宽度和高度以匹配父视图的宽度和高度。
要了解有关布局属性的更多信息,请参见布局指南。
添加TextField
要创建一个用户可编辑的文本域,在中插入一个元素。
像每个View对象一样,你必须定义某些XML属性以指定EditText对象的属性。
下面是如何在部声明EditText对象:
id="+id/edit_message" android:
layout_width="wrap_content" android:
layout_height="wrap_content" android:
hint="string/edit_message"/>
有关这些属性:
android:
id
它为视图提供一个唯一标识符,以便我们在代码中引用它,例如读取或操作视图对象〔我们将下一节课中了解这些〕。
符号用来从XML文件中引用任何资源对象,它后面是资源类型〔本例中是id类型〕,斜杠,然后是资源名称〔本例是edit_message〕。
资源类型前面的加号〔+〕只有在你首次定义资源ID时才需要它,当应用编译时,SDK工具会在项目的gen/R.java文件中使用ID名称创建一个新的资源ID以引用EditText元素,一旦通过这种方式声明了资源ID,其它对这个ID的引用都不再需要加号。
只有在指定新资源ID时才需要加号,引用具体的资源,如字符串或布局,如此不需要加号,详情请见关于资源对象。
关于资源对象
资源对象使用一个唯一整数和应用的资源关联起来,比如位图、布局文件或字符串。
每一个资源都在项目的gen/R.java文件中定义了一个对应的资源对象。
你可以使用类R中的对象名引用资源,例如当你需要为android:
hint属性指定一个字符串值时。
你也可以通过android:
id属性创建一个资源ID来和一个视图关联起来,这可以使你在代码中引用这个视图。
每次编译应用时,SDK工具都会生成R.java文件,永远不要手动修改这份文件。
要获取更多信息,请参考“提供资源〞指南。
android:
layout_width和android:
layout_height
没有使用特定大小的高度和宽度,而是用“wrap_content〞做为宽高的值,意味着视图大小会自动匹配容。
如果用“match_parent〞代替,那么EditText元素将会填充整个屏幕,因为它需要匹配父容器LinearLayout的大小。
android:
hint
当文本域的容为空时显示的默认字符串。
使用“string/edit_message〞来引用一个在单独的文件中定义的字符串资源,而不是直接使用硬编码的字符串。
因为这是引用具体的资源〔不是定义标识符〕,所以不需要加号。
由于我们还没有定义字符串,你将会看到一个编译错误。
我们会在下一节通过定义字符串来修正它。
注意:
这个字符串资源和元素ID同名:
edit_message,因为引用资源受资源类型〔如id或string〕限制,所以使用一样名称不会产生冲突。
添加字符串资源
当你需要在用户界面中添加文本时,你应该为每个字符串指定一个资源。
字符串资源允许你在一个地方管理所有的UI文本,方便我们查找和更新文本。
外部化字符串还能在你本地化应用以支持不同的语言时,为你提供可替换的字符串。
默认情况下,你的Android项目包含了一个字符串资源文件:
res/values/strings.xml。
我们在文件中添加一个新字符串edit_message,把它的值设为“Enteramessage〞(你可以删除〞HelloWorld〞字符串)。
在这份文件中,我们再为后面要添加的按纽加一个字符串“Send〞,取名为“button_send〞。
最终的string.xml如下所示:
xmlversion="1.0"encoding="utf-8"?
> MyFirstApp Enteramessage Send Settings MainActivity
要获得本地化应用以支持其它语言的相关信息,参看支持不同设备课程。
添加Button
现在在布局中添加一个