在 Hello, Android Quickstart 中,我们创建并运行了第一个Xamarin.Android应用。现在是时候形成一个更深的关于Android应用如何运行的理解,以便能构建更复杂的程序。在本指南中,我们将复习我们在Hello, Android演练中操作步骤,以理解我们做了什么,并开始形成一个Android应用开发的基本理解。
我们将涉及到下面的话题:
· Visual Studio介绍-Visual Studio介绍以及创建新的应用
· Xamarin.Android应用分析-Xamarin.Android应用的基本组成部分的浏览。
· App原理和体系结构基础-活动、Android Manifest、Android开发大致特点的介绍。
· 用户界面(UI)-使用Androidy设计器创建用户界面。
· 活动和活动生命周期-活动生命周期和在代码中接能用户界面的介绍。
· 测试、部署和收尾-完成应用以及测试、部署、构建精品和更多方面的建议。
本指南帮助你提升构建一个单屏Android 应用所需要的技巧和知识。通过演练,你应该有一个Xamarin Android 应用不同部分以及这些部分如何装配在一起的认知。
Visual Studio是微软的一个功能强大的集成开发环境,它具有一个完全集成的可视设计器、一个包括重构工具的文本编辑、一个程序集浏览器、源码整合等特点,在本指南中我们将学习使用一些安装了Xamarin插件的Visaul Studio的基本功能。
Visual Studio可向解决方案和项目中组织代码,解决方案是可容纳一个或多个项目的容器,项目可以是一个应用(譬如iOS 或 Android)、一个支持库,一个测试应用或其他更多。在我们的Phoneword应用中,我们使用Android Application模板增加了一个Android项目到我们在Hello, Android 指南中建立的Phoneword解决方案。我们的解决方案如下:
我们以解决方案的内容为导向。解决方案浏览器在右边,包含与解决方案相关的目录结构和所有文件。
我们已经创建一个称之为Phoneword的解决方案并将Android项目--Phoneword_Droid放进里面。 让我们看一下这个项目当中的部件。
文件夹 |
作用 |
引用 |
包含创建和运行应用所需的程序集,展开References目录,可以看到引用的.NET程序集诸如System、 System.Core 和 System.Xml,另外还有一个Xamarin的Mono.Android程序集的引用。 |
部件 |
部件目录用于放置来自 Xamarin Components商店的现成的功能,Xamarin Components商店是一个Xamarin代码的公共市场。请参考Xamarin Components walkthrough。 |
资产 |
包括应用运行需要的文件,包括字体、本地数据文件和文本文件。通过产生Assets类,包含于此的文件是易于理解的,见Xamarin Using Android Assets guide. |
属性 |
包括 AndroidManifest.xml文件,该文件为Xamarin.Android应用描述所有的要求,包括名称、版本号及许可。属性文件夹也包含AssemblyInfo.cs,这是一个.NET 程序集元数据文件。用一些关于应用的基本信息填充此文件是良好的习惯做法。 |
资源 |
包含应用的资源,诸如字符串、图像、布局等。通过生成的Resource类,我们可以以代码的方式访问这些资源。Android 资源 指南提供了更多关于资源目录的细节。应用模板也在AbountResources.txt中包含了关于资源的简单指南。 |
资源目录包括三个文件夹,名为:drawable、layout、 和values,另外还有一个名为Resource.designer.cs的文件,总结如下表:
项 |
用途 |
Drawable
|
drawable 目录放置绘图资源,比如图像或位图。在缺省的模板中,drawable目录放置应用图标文件Icon.png。
|
layout |
Layout目录包含Android设计器文件(.axml),.axml文件用每一屏或每一个活动定义用户界面。模板创建了一个缺省的布局,称之为Main.axml。
|
values |
该目录放置XML文件,该类文件存储值,诸如字符串、整数和颜色。模板创建了一个文件来存储字符串值,称之为String.xml。 |
Resource.designer.cs |
也就是所知的Resource类,这个文件是一个局部类,该类保持着定义给每个资源的唯一标识。该类被Xamarin.Android工具自动创建,并在必要时整合。该文件不能被手工编辑,Xamarin.Android将覆盖任务手工改变。 |
安卓并非有一个单一的入口点,在应用中不是单一的代码线供操作系统调用来启动应用。相反,一个应用启动时安卓创建它的一个类,在此过程中,安卓将整应用的进程装载到内存中。
当设计复杂的应用或与安卓操作系统进行交互时,安卓这一独特的特点非常有用。然而,当处理比如我们的Phoneword应用这样的基础方案时,这些选择也会使安卓复杂。因为这个原因,我们将把安卓体系结构的浏览分裂成两部分。在本指南中,我们将仔细分析使用安卓应用最普通的入口点-首屏, 在 Hello, Android Multiscreen 指南,我们将深入安卓体系结构的所有复杂性,讨论启动应用的不同方式。
Phoneword 方案--从活动开始
当我们第一次在模拟器或设备上打开Phoneword应用,操作系统就创建了第一个“活动”,“活动”是一种特殊的安卓类,相当于一个单一的应用屏幕,负责绘制和运转用户界面。当安卓创建应用的第一个活动时,也安装了整个应用。
由于没有直线型的进展贯彻安卓应用,我们可以从几上点来启动应用,安卓有一个独特的保持与组成应用的类和文件联系的方法。在Phoneword 例子中,所有组成应用的部分被登记在一个叫做Android Manifest的特殊XML文件中,AndroidManifest文件的作用是保持跟踪应用的内容、属性和许可,并将他们公布给安卓操作系统。可将Phoneword应用认为是一个单一的活动(屏显)和一个被AndroidManifest文件捆绑在一块的资源和帮助文件的集合,下面是图表说明:
在以下几个章节中,我们将研究Phoneword应用的各个不同部分之间的关系,来获得以上图表的更好理解。我们将从用户接口界面开始,讨论Android设计器和布局文件。
Main.axm我们应用里的第一个屏显的用户界面布局文件。.axml表示这是一个Android设计器文件(AXML代表Android XML)。名称Main从Android的观点来说是可以是随意的-我们完全可以简单地将布局文件命名为其它什么东西。当我们在IDE打开Main.axml文件时,将引出被称为Android设计器的针对Android布局文件的可视化编辑器。
在我们的Phoneword应用,我们设置转换按钮的ID为@+id/TranslateButton:
当我们设置转换按钮的ID属性,Android设计器将转换按钮控件映射到Resource类并分配给它一个TranslateButton的资源ID。这种可视控件到类的映射使我们在代码中定位和使用转换按钮及其它控件成为可能。当我们断开操纵控制的代码时,再来详细介绍更多的细节。现在你只须知道一个控件的代码表现形式通过ID属性在设计器中被链接到控件的可视化表现形式。
我们在设计视图上定义的每一个事物都会转换到XML中被Xamarin.Android使用。Android设计器提供源视图,源视图包含产生自可视化设计器的XML。我们可以通过在设计视图的下左方切换到源面板就能看到XML,如下图所示:
该XML源代码应包括我们的文本(大)、纯文本和两个按钮元素。
更多Android设计器的深度介绍,参见Xamarin Android 设计器概述 指南。
我们已经介绍了隐藏在用户界面的可视部分后面的工具和概念。下面,我们将跳到操控用户界面的代码中去,研究活动和活动的生命周期。