Android训练课程(Android Training) - 构建你的第一个应用

构建你的第一个应用(app)

欢迎来到安卓开发!

这个课程教你如何构建你的第一个应用。你讲会学到如何去创建一个安卓工程和启动一个可以调试的应用的版本。你将会学到一些安卓设计的基础,包括如何构建一个简单的用户界面和处理用户输入。

在你开始这个课程之前,确保你已经有了安卓开发环境并设置好,你需要:

1.下载安卓开发包(Android SDK)

2.为你的Eclipse安装ADT插件(如果你使用Eclipse集成开发环境的话)

3.使用SDK管理器(SDK manager)下载最新的SDK工具盒平台

注意:在你开始本课程之前,确保你安装了最近版本的ADT插件和安卓SDK。这个课程的进度描述不适用于早期的版本。

如果你还没有完成这些任务,开始下载 Android SDK 并且跟随安装步骤。一旦你已经完成了安装,你就准备好开始这个课程了。

这个课程使用了一种训练格式,就是不断的构建一个简单的app的方式,讲会教会你一些关于安卓开发的基础概念,跟随每一个步骤是很重要的。

开始第一课 Start the first lesson ›

创建一个安卓项目

一个安卓项目包含了由源代码组成的的你的应用的全部文件。安卓开发包SDK工具可以很容易的创建一个由默认项目文件夹和文件组成的新的安卓项目。

这节课展示了,如何创建一个新的项目,你可以选择两种方式之中的一种:使用带有ADT插件的Eclipse或者使用SDK工具在命令提示符下。

注意:你应该已经准备好了并安装完成安卓SDK,如果你使用Eclipse,你应该已经安装好ADT插件(22.6.2或者更高版本)。如果你还未做好这些,请在开着这节课的学习之前,跟随指南去安装安卓开发工具包 Installing the Android SDK。

使用Eclipse创建项目

1.在工具栏上点击 New

2.在出现的窗口上,打开 Android 文件夹,选择 Android Application Project ,并且点击 Next。

3.填写出现的表单内容:

Application Name 应用程序的名称。是向使用者展示的应用程序的名称。在这个项目里,使用“My First App”。
Project Name 项目名称。是你的项目的文件夹的名称,也是在Eclipse里看到的名称。
Package Name 程序包名。是你的程序包的命名空间(和Java编程语言的包的概念是相同的规则)。你的包名必须是在你的安卓系统的所有的包中是唯一的。因此,一般最好的情况是,你使用一个你的组织或者发布者实体的保留域名作为开头,在这个项目里,你可以使用像“com.example.myfirstapp”,然而,你不能在谷歌市场(Google Play)发布你的使用“com.example”命名空间的应用。
Minimum Required SDK 最小要求SDK 是你的应用支持的最低安卓系统版本。使用API 级别来指定。为了支持更多可能的设备,你设置成你的应用可以提供的核心性能集合支持到的最低版本。如果你的应用的一些特性可能仅仅在较新的版本上,并且它不是在你的所有应用特性中起到决定性作用的话,你可以在它运行在它支持的版本上时才启用它。(更多的讨论请阅读 支持不同平台的版本 Supporting Different Platform Versions). 在本项目中,我们将这些设置保留为默认值.
Target SDK 目标SDK 指示了你测试过的你的应用可以支持的最高版本的安卓系统(仍然是用API级别指定)
当一个新的安卓版本变得可用,你应该测试你的应用在新的安卓版本并且更新这个值去匹配最新的API级别,这样你能获得新平台特性的最大效益。

Compile With 编译版本 是你讲编译你的应用程序而使用的平台版本。 默认情况下,这将被设置为你手中的可用SDK版本中的最新版本(它可能是安卓4.1或者更高;如果你还没有任何一个可用版本,你必须使用SDK Manager安装一个)。你仍然可以构建你的应用去支持较旧的版本,但是设置编译目标为最新的版本将使得你可以启用新的特性和优化你的应用程序来获得在最新设备上的更好的用户体验。
Theme 主题 指示了你的应用的界面风格。你可以让它保持原样。
点击 Next 进入下一步。

4.在接下来屏幕上去配置这个项目,保留默认选项并点击 Next 下一步。

5.在接下来的屏幕可以帮助你创建一个启动图标。

你可以使用多种方式自定义一个图标,和使用工具创建一个适合多种屏幕密度的图标。在你发布你的应用之前,你应该确定你的图标符合在 图标设计指南 Iconography 声明中的规范。

点击Next 下一步。

6.现在你可以选择一个Activity(页面)模板来开始构建你的应用。对于这个项目,选择 BlankActivity 空模板 和点击 Next 下一步。

  1. 保留Activity所有的详细设置为默认状态,并点击 Finish 完成。

你的项目现在只是一个基础的“Hello World”应用,它包含一些默认文件。要启动这个应用,继续学习下一节课next lesson.。

你的项目现在只是一个基础的“Hello World”应用,它包含一些默认文件。要启动这个应用,继续学习下一节课next lesson.。

使用命令提示行工具创建项目

如果你没有使用一个带有ADT插件的Eclipse集成开发环境,你可以 使用SDK工具从一个命令提示行工具创建你的项目 来替代它。

1.改变你的文件夹到安卓SDK的安装目录 tools/ 下。

2.执行

android list targets

这将打印出你的SDK中你已经下载的所有可用的安卓平台列表。找到你想用来编译你的APP的平台。记录下目标id。我们建议你选用最高级别的可用版本。你仍然可以构建你的APP支持更旧的版本,但是设置编译目标(build target)为最新的版本允许你在最新的设备上优化你的app。

如果你没有看到任何内容被列出,你需要使用安卓SDK manager去安装一些。请看 Adding Platforms and Packages.

3.执行

android create project --target  --name MyFirstApp \
--path /MyFirstApp --activity MainActivity \
--package com.example.myfirstapp

使用列出的目标(上一步获得的)替换,并且使用你想要保存你的项目的文件夹位置替换

提示:请添加 platform-tools/ 和 tools/ 墓道你的PATH 环境变量。

NEXT: RUNNING YOUR APPLICATION 下一课:启动你的应用程序

启动你的应用

如果你跟随上一课的内容创建了一个安卓项目,它包含了一些像“Hello World”这样的默认文件,允许你直接启动这个应用。

如何启动你的应用依赖这两项:你是否拥有一个真实的安卓动力的设备,和你是否使用Eclipse。这节课将将向你展示如何在真实设备和模拟器中安装和启动你的应用,有两种方式:使用Eclipse或者命令提示符工具。

在启动你的应用之前,你应该了解一些你的安卓项目里的文件和文件夹:

AndroidManifest.xml
清单文件,描述了应用的基础特性 ,和定义每一个最近。随着你阅读更多的训练章节,你将会学到很多的在这个文件里的声明(译者注:定义组件等)

在你的清单文件中应该包含的一个重要的元素是 ,它使用 android:minSdkVersion 和 android:targetSdkVersion 声明了你的应用的兼容性。在你的第一个应用中,它看起来是这样的:


    
    ...

你应该总是设置 android:targetSdkVersion 为尽量高的版本,并且在相应的平台版本测试你的应用。更多的信息请阅读 Supporting Different Platform Versions.

src/
  你的应用程序的主要源代码文件存放在这里,默认情况下,包含了一个Activity的类,在通过点击图标后你的应用启动时它将被启动。

res/
  包含许多子文件夹用于存放应用的资源文件,下面列出了一些:

drawable-hdpi/

一个文件夹,用于存放一些 被设计用于高密度(hdpi)的屏幕的可绘制的对象(比如位图)。其他的drawable文件夹也包含了一些 适用于其他屏幕密度而设计的资源材料。

layout/

一个文件夹,用于存放 定义你的应用程序的界面 的文件。(译者注:我们常常成为页面布局文件)

values/

一个存放了许多xml 文件的文件夹,包含了很多资源文件,比如 字符串(string) 和颜色(color)定义。

当你构建并运行这个默认的应用,一个默认的Activity类将启动,和加载一个包含了“hello world”的布局文件。这个结果一点也不让人兴奋,但是重要的是 你明白了如何在开始开发之前去启动一个应用。

在真实设备上运行

如果你拥有一个安卓动力的设备,在这里展示了你如何安装和启动你的应用:

1.使用USB线将你的设备插入到你的开发机器(译者注:可能是电脑)上,如果你使用window是开发,你可能需要为你的设备安装适当的USB驱动。获得安装驱动的帮助请阅读文档 OEM USB Drivers 。

2.在你的设备上启用USB debugging(USB调试)模式

在很多运行在安卓3.2或者更旧的版本上的设备,你可以在选项设置里找到: 设置>应用程序>开发者

在安卓4.0或者更新一些的版本,他存在于 设置>开发者选项

注意:在安卓4.0或者更新一些的版本 开发者选择 默认是隐藏的。要想使它可见, 在 设置>关于设备 下,并且点击 基带版本 多次。返回上一屏幕去寻找 开发者选项

在Eclipse中启动应用:

注意:我们常常使用Eclipse的英文版本,对于Eclipse里的一些英文都不在翻译,以应对读者找不到按钮的情形。

1.打开一个你项目中的文件,并且点击工具栏中的 Run。

2.在出现的 Run as 窗口 里,选择 Android Application 并且 点击 OK。

Eclipse 安装你的应用到手机里并且启动它。

或者在命令提示行里启动它

1.更改文件夹路径到 你的安卓项目的根目录 下,并且执行:

ant debug

  1. 确保安卓SDK 的platform-tools/ 文件夹被包含在你的环境变量PATH里,这时执行:

adb install bin/MyFirstApp-debug.apk

  1. 在你的设备上,定位到 MyFirstActivity 并且打开它。

这些就是如何构建和在一个真实设备上启动你的应用。要开始开发,继续到下一课程 next lesson。

在模拟器中启动

无论你使用Eclipse 或者命令提示行,要启动你的应用,你必须先创建一个Android Virtual Device (AVD),一个AVD是一个配置好的安卓模拟器,它运行你模拟不同的设备。

创建一个AVD:

1.启动安卓模拟设备管理器(Android Virtual Device Manager):

a. 在Eclipse,点击工具栏中的Android Virtual Device Manager 

b. 在命令提示行里,更改目录到 /tools/ 并且执行 

android avd

  1. 在Android Virtual Device Manager 面板里,点击 New。

3.填写AVD的详细信息,设置name名称,平台目标platform target,一个存储卡大小SD card size,一个皮肤skin(默认HVGA).

4.点击 Create AVD

5.从 Android Virtual Device Manager 中选择一个AVD,并且点击 Start 开始。

6.在模拟器启动后,解锁模拟器屏幕。

在Eclipse中启动这个应用

1.打开一个你项目中的文件,并且点击工具栏中的 Run。

2.在出现的 Run as 窗口 里,选择 Android Application 并且 点击 OK。

Eclipse安装这个应用到你的AVD,并启动它。

或者再命令提示行下启动它:

1.更改文件夹路径到 你的安卓项目的根目录 下,并且执行:

ant debug

2.确保安卓SDK 的platform-tools/ 文件夹被包含在你的环境变量PATH里,这时执行:

adb install bin/MyFirstApp-debug.apk

3.在你的设备上,定位到 MyFirstActivity 并且打开它。

这些就是如何构建和在模拟器中启动你的应用。要开始开发,继续下一课程 next lesson。

构建一个简单的用户界面

2014-10-28 张云飞VIR 翻译自: https://developer.android.com/training/basics/firstapp/building-ui.html#Button

安卓的图形用户接口(界面)是通过使用一个由视图(view)和视图集合(ViewGroup)对象组成的层级结构来构建的。View对象是一些常见UI组件,比如按钮,文本框,ViewGroup对象是一些不可见的视图容器,它定义了子视图如何摆放,比如在一个表格里或者一个垂直列表。

安卓提供了一个XML词汇表,它于view和ViewGroup的子类是一致的,这样你可以在XML中使用界面元素的层级来定义你的界面。

图一. 说明了 在布局中,ViewGroup对象形式如何分支,和包含其他的视图对象。

在这节课,你将创建一个XML布局,它包含了一个文本区和一个按钮。在后面的课程中,在按钮被按下后你将作出反应,并发送文本区的内容到其他activity。

创建一个线性布局(Linear Layout)

在你的项目文件夹 res/layout/下,打开 fragment_main.xml

注意:在Eclipse,当你打开一个布局文件,你将先被展示一个视图布局的编辑器。这是一个编辑器,可以帮你以所见即所得的工具构建布局。在这节课,你将使用XML直接工作,这样,点击屏幕下方的fragment_main.xml 标签卡来打开一个XML编辑器。

当你创建这个项目是你选择了 BlankActivity (空的activity)这个模板,它包含了 fragment_main.xml 这个文件,RelativeLayout 是它的根视图,并且包含了一个TextView子视图。

第一步,删除 元素,并且更改 元素为 。这是,添加android:orientation 这个属性,并且设置值为“horizontal”。这个结果像下面这样:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

LinearLayout 是一个View group(一个ViewGroup的子类),它以垂直或者水平方向两种之一的方式摆放它的子视图,使用 android:orientation 属性来指定方向。每一个 LinearLayout 的子视图出现在屏幕中的顺序和它出现在XML中的顺序一致。

另外的两个属性, android:layout_width 和 android:layout_height,对所有的视图来说都是必须的,为了指示它们的尺寸。

因为 LinearLayout 是布局的根视图,在它的宽度和高度都设置为“match_parent”,它将填满这个应用的整个可用的屏幕区域。这个值定义了视图如何展开它们的宽度和高度去匹配它们的父控件的宽度和高度。

关于布局属性的更多内容,请阅读 Layout 指南。

添加一个文本框

为了创建一个用户可编辑的文本区,在 .下添加一个 元素。

像每个视图View一样,你必须定义固定的XML属性去指定EditText对象的属性。下面演示了 你如何在 元素内定义它:

EditText android: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时,才需要使用“加号”,并且不需要具体的资源,比如字符串和布局。更多关于资源对象的内容请看侧边条。

android:layout_width 和android:layout_height

为了代替使用具体的尺寸来指定宽度和高度,“wrap_content”值指示了视图将会仅仅需要去适应视图的内容的大小。如果你使用"match_parent"来代替,这时 EditText元素将会填充满整个屏幕,因为它将会匹配它的父布局LinearLayout的尺寸。更多信息请阅读 Layouts 指南。

android:hint

当文本区是空得时候,这个磨人的字符串将会被显示。代替使用 “硬编码”(hard-coded)一个字符串作为值, "@string/edit_message" 这个值引用到一个在另外的文件中被定义的字符串资源。因为这个引用到一个具体的资源(而不是一个标示符),它不需要使用“加号”。然而,因为你过去还未定义一个字符串资源,你将会首先看到一个编译错误。在下一章节通过定义字符串的方式你将会修复这个错误。

注意:字符串资源具有和元素ID相同的名称edit_message。然而,引用到资源总是通过资源类型的方式(比如id或者string)具有周期的看,于是,使用相同的名称不会导致冲突。

关于资源对象(resource objects)

一个资源对象简单来说就是一个唯一的整数名称,它关联到一个应用程序的资源,比如一个位图,布局文件,或者字符串。

每一个资源都有一个对应的在你项目里gen/R.java里声明的 资源对象。你可以使用在 R 类里的对象名称去引用你的资源,比如当你为android:hint 属性指定一个字符串的值时。你也可以创建任意的资源ID,并通过android:id来关联到一个视图控件,它使得你可以从其他代码里应用这个视图控件。

每次你编译你的应用,SDK工具都会生产R.java文件,你不能手动修改这个文件。更多信息请参阅 Providing Resources.

添加字符串资源

当你需要添加文本到用户界面时,你应该总是以资源的方式指定每一个字符串。字符串资源使得你可以在一个位置里管理你所有的界面文本,这使得很容易找到和更新字符串文本。外部化(译者注:把...放到外部)的字符串通过为每一个字符串资源提供可供选择的定义的方式,使得你可以根据不同的语言来本地化你的应用。

译者注:将所有的字符串资源放到单独的资源文件中,可以在不同的语言情况下切换不同的资源文件来实现国际化。

默认情况下,你的安卓项目包含了一个默认的字符串资源文件,它存放在 res/values/strings.xml. 添加一个字符串并且命名为“edit_message”,并且在“Enter a message.”位置上设置它的值。(你可以删除"hello_world"字符串)

当你在这个文件里时,同时为不久后可以要添加的按钮添加一个叫做“Send”的字符串,命名为"button_send".

string.xml的结果像下面这样:



My First App
Enter a message
Send
Settings
MainActivity

添加一个按钮

现在添加

你可能感兴趣的:(Android训练课程(Android Training) - 构建你的第一个应用)