许可协议:creativecommons licenses

第一印象,作为一个开发人员,我们对一个新的开发框架的第一印象通常是看他的”Hello,World!”程序有多简单。在Android中,实现起来是非常简单的。

实现Hello World需要几个步骤:

  • 创建项目
  • 设计用户界面
  • 运行程序:Hello,Android

以下几节讨论更加详细的内容

  • 通过(XML 布局)XML Layout更新用户界面
  • 调试程序
  • 不使用Eclipse创建项目

Let's jump in! 废话少说,马上开始。

创建项目

创建项目非常简单,Eclipse的插件使Adroid的开发变得异常轻松。首先你需要安装一个3.3或以上版本的eclipse(译注:其实3.2也是可以的),然后给Eclipse安装一个Android插件。安装好上面的内容后,我们就可以开始了。

首先,我们来一个总结来看看到底需要几步来完成我们的"Hello, World!"。

1. 通过Eclipse的 File > New > Project 菜单创建"Android Project"项目。

2. 在新Android 项目对话框中添加项目的详细信息

3. 修改自动生成代码模板来显示一些东西

上面3步已经足够了!接下来,让我们开始吧

1. 创建Android项目

在Eclipse中选择 File > New > Project 菜单项。如果你已经成功安装了Android 插件,你会在弹出的新项目对话框中看到一个叫做“Android”的条目,包含一个”Android Project”的项目

选中"Android Project",点击 Next进行入下一步。

2. 填写项目的相关信息

这个窗口里你需要填写一些项目的相关信息.请看图中的示例:

下面解释一下屏幕上的内容:

这是计算机中保存项目文件目录的名称。

这是和Java语言意义相同的包名(Package namespace)—你的源代码将属于这个包名。同时stub Activity也将据此生成。

你所给出的报名必须保证在你的应用中是唯一的;因为这个原因,包的命名遵循域名方式(domain-style)就显得非常重要了;在实例中我们使用"com.google.android"作为包名;你可以选择一个适合你自己的包名。

Android插件将根据这个名称来创建一个stub类。他是一个继承自Activity类的子类。Activity类似一个简单的可以运行和工作的类。它能够根据你的需要创建用户界面,当然了这不是必须的。

这是你应用程序的标题。

你可以通过选择"Use default location"这个复选框来项目文件的存储位置。

3.编辑自动生成的程序代码

Android插件执行完毕后将创建一个叫做HelloAndroid类,他的内容如下:

public class HelloAndroid extends Activity {  /**在activity被创建后执行*/    @Override   public void onCreate(Bundle icicle)   {       super.onCreate(icicle);       setContentView(R.layout.main);   }} 

创建用户界面

创建好项目以后,我们要做的是在屏幕上显示一点文字。下面是完成后的代码,我们将逐行分析它:

public class HelloAndroid extends Activity {/**在activity被创建后执行*/    @Override   public void onCreate(Bundle icicle) {       super.onCreate(icicle);       TextView tv = new TextView(this);       tv.setText("Hello, Android");       setContentView(tv);   }} 

在Android中,用户界面是由View来组成的。一个View就是一个drawable的对象,比如一个单选按钮,一个动画,或者(本例中)是一个文字标签。View子类型中用来显示文字 类是TextView。

下面演示如何构建一个TextView的实例

TextView tv = new TextView(this); 

TextView构造函数中的参数类型是Context。Context类可以简单的理解为系统的句柄;他提供访问了诸如资源、数据库以及程序设置的服务。Activity类继承自Context。我们的HelloAndroid类继承自Activity类,他同时也继承了Context。正因为如此我们才能使用’this’这个参数来创建TextView。

上面我们已经创建了一个TextView,下面我们来让他显示些文字:

tv.setText("Hello, Android"); 

这里没有什么好说的。

我们已经创建了一个TextView并且告诉了他要显示什么,最后就是让他显示在屏幕上了,就像下面这样:

setContentView(tv); 

setContentView()方法让系统知道哪个View是与Activity的界面有联系的。如果你的Activity没有执行这个方法,界面将什么都不会显示,系统只会显示空屏幕。我们的目的是要显示一些文字,所以我们在这个方法的参数中填上TextView。

这就是我们Android中的"Hello, World"了!接下来当然是看看如何运行它了。

运行程序:Hello, Android

Android提供的Eclipse插件使得运行我们的程序非常简单。选择Run > Open Run Dialog菜单;你会看到一个这样的对话框:

接下来,选中"Android Application"这一项。点击左上角按钮(文档图标上有个加号的那个)或者简单双击"Android Application"项。你会得到一个叫做"New_configuration" 新launcher。

选择一个更好的名字,比如"Hello, Android", 点击"Browse"按钮选择你的项目。(如果你现在打开了多个Android的项目,一定要确认你选择了正确的那个)。Android插件会自动的扫描你的项目来查找Activity 的子类,在"Activity:" 标签下面的下拉框中列出所有的选项。你的"Hello, Android" 只有一个,他将作为缺省的选项。

点击 "Apply" 按钮。示例如下:

大功告成!点击run按钮,Androi模拟器将运行。当模拟器启动完成你将看到你的程序。到这里我们就完成了。

这就是我们Android中 “Hello,World”。很简单吧,嗯?下面的章节我们会探讨一些比较深入的东西,对你学习Android肯定有所帮助。

通过XML Layout构造用户界面

你刚刚完成"Hello, World"时通过编程来创建用户界面的。也就是说你在你的程序代码中来创建界面。如果你以前做过很多的界面编程,你一定知道有个非常麻烦的事情:在一大段代码中找到并且修改一个小的界面变化是很头疼的。而且也容易忘记属性与视图之间的关系,从而导致错误,浪费大量的时间来调试代码。

这就是Android提供了一个替代创建用户界面的模式:基于XML的XML Layout文件。解释这个概念的最好方法就是创建一个例子。这个XML Layout文件实现了我们上面用程序代码实现的功能。

<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Hello, Android"/>

一般的Android XML Layout 文件 结构非常简单。它由树形的标记组成,每一个标记都是一个View类。在上面这个例子中只有一个元(element)-TextView。你可以在XML layout中使用任何一个继承自View的类,也包括你自己定义的类。这样简单的结构和语法使我们能够比使用代码更快的创建用户界面。它的灵感来自Web开发中用户界面与程序逻辑分开的模式。

这个例子中只有4个XML属性,下面列出含义:

android:layout_width

这个属性定义了使用宽度,磁力中使用最大可用宽度。

android:layout_height

同上,使用可用的屏幕高度

android:text

TextView显示的文字内容,这个例子中显示 "Hello, Android

这就是XML layout的内容,但是该将它放在那里呢?在项目的res/ 目录中。这个"res"是对"resources"的缩写,这个目录中存放项目中所有不是代码的资源或文件。包括:图片,本地字符串,XML layout文件。

Eclipse插件已经为我们创建了这些XML文件。在我们上面的例子中,我们根本没有使用过他们。在Package Explorer中展开res/layout,目录,修改其中的main.xml文件。使用上面的文本替换掉他的内容。现在从Package Explorer中的源代码文件夹中打开R.java文件,你将看到如下内容:

public final class R {    public static final class attr {   };   public static final class drawable {       public static final int icon=0x7f020000;   };   public static final class layout {       public static final int main=0x7f030000;   };   public static final class string {       public static final int app_name=0x7f040000;   };}

项目中的R.java文件是对文件中所有定义资源的索引。可以用最简单的方式在代码中使用项目中定义的资源。利用Eclipse的代码提示功能可以更快找到需要的内容。

其中最重要的两个内部类就是"layou"和"main"。Eclipse插件会根据你在XML layout文件中更改自动生成R.java文件。当时你在项目中添加了其他资源后你会先R.java会马上发生变化。

最后一件事就是你要修改你的HelloAndroid 代码,让程序使用XML layout文件定义的界面而不是采用我们以前的硬编码方式。看看现在的代码,简单多了:

public class HelloAndroid extends Activity {    /** Called when the activity is first created. */   @Override   public void onCreate(Bundle icicle) {       super.onCreate(icicle);       setContentView(R.layout.main);    }} 

不要简单的拷贝粘贴来修改文件,试试R类的代码自动完成,这是你或许感觉到R类的作用了。

好,现在你已经完成了修改,让我们重新运行一下程序---你要做的就是点击以下有绿色箭头图标的Run按钮,或者选择Run>Run菜单来运行。你会看到和以前相同的结果。我们可以看出两种不同的布局方法结果是相同的。

我们只是对XML layouts有了个大概的了解,你需要阅读用户界面部分的完整文档来获取进一步的信息。

调试程序

Android的Eclipse的插件也能够完美的与Eclipse的调试器集成。为了证实这一点,我们来做一个简单的测试。将你HelloAndroid 程序的代码改成这样:

这段代码很明显将产生一个NullPointerException 异常。运行后你看到:

public class HelloAndroid extends Activity {   /** Called when the activity is first created. */  @Override  public void onCreate(Bundle icicle) {      super.onCreate(icicle);      Object o = null;      o.toString();      setContentView(R.layout.main);  }}

为了找出错误,我们在"Object o = null;"这一行设置一个断点(你可以通过双击eclipse编辑器行号左边的空余部分来创建)。选择 Run > Debug菜单进入到调试模式。你的程序在模拟器中重新启动,但是这次程序会在运行到断点的地方停住。就行你在其他开发工具中那样,你可以在Eclipse的Debug Perspective中检查代码。

不使用eclipse创建项目

如果你不使用Eclipse(比如其他IDE或者是使用简单的文本编辑器和命令行工具),那么Android的Eclipse插件就帮不了你了。但是别太担心--你不会因为不使用Eclipse而失去某些功能。

Android 插件实际上只是对SDK里面的工具做了一下封装。因此可以使用其他工具来封装这些工具,比如'ant'来编译文件。(像emulator, aapt, adb, ddms这些工具都可以在文档中找到使用的方法)

Android SDK 同时包含了一个名称为"activityCreator.py"的Python的程序脚本,用来创建项目中的代码和目录,以及一个兼容'ant'的build.xml文件。这使得你可以通过命令行或者使之与其他的IDE工具集成。

例如,创建一个想刚才我们在eclipse中创建的HelloAndroid 项目,你可以使用这样的命令:

activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid

为了编译这个项目,你必须使用ant命令。当命令成功完成后,你可以在'bin'目录中找到一个HelloAndroid.apk文件。这个.apt文件就是一个Android 包,你可以使用'adb'工具把它安装到模拟器中。

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android平台软件体系浅注
  4. Android(安卓)文件系统移植
  5. Android中调用C++函数的一个简单Demo
  6. 谈谈 Android(安卓)中的 PathClassLoader 和 DexClassLoader
  7. 安卓TextView的常用属性
  8. Android(安卓)NDK系列(三)-AS编写C文件没有提示和不识别NULL
  9. Android(安卓)Test - Auto Test Multi Activities

随机推荐

  1. Android图
  2. Android 视频播放器 faplayer 编译
  3. Android读取assets目录下文件数据内容
  4. Android 消息处理 -- Looper 、Handler类
  5. 条件数据库Android:sqllite使用
  6. Android(安卓)Debug Bridge( adb)介绍及
  7. Android 动画——Frame Animation与Tween
  8. 相对布局中取值为其他控件id 的属性及说
  9. android 使用contentobserver监听数据库
  10. Android的消息机制(java层)