Android开发入门——从Hello World开始

对于开发人员来说,最为直观的入手实例就是编写一个显示 Hello, world! 的程序并成功在目标平台上运行起来。所以写这个教程和广大android爱好者和开发人员分享一下。

要实验android的开发,有几个基本的步骤:

1. java运行库的安装。
2. 开发工具的安装(eclipse是最为常用的,推荐Eclipse IDE for Java EE Developers (189 MB)版本,因为该版本包括了SDK要求的Eclipse JDTplugin)。
3. SDK 的安装(目前最新为1.6版本,安装最高版本仍然可以进行低版本1.1/1.5的开发)。
4. 建立一个Android虚拟机(一个可视的G-phone GUI,包括一个键盘,全按钮和屏幕,默认共享主机的Internet连接)。
5. 建立一个Android Project
6. 编写程序界面
7. 编写程序逻辑
8. 调试、运行

步骤1~3已经由niwz详细贴介绍了

我从步骤4讲起:

4. Android虚拟机

创建一个虚拟机有两个办法,一个是通过命令行(cmd),另一个是直接在eclipse里建立。

a. 命令行方法:
进入cmd,由于在设置SDK的时候把SDK/tools路径放到PATH中去了,因此可以在任何目录下直接调用SDK工具。键入以下命令:

android create avd --target 2 --name my_avd_name

解释一下:
--target用于指定该虚拟机运行的API版本,2对应1.1,3对应1.5,4对应1.6。
--name用于指定虚拟机的名字,可以随便输。

b. eclipse方法:
找到eclipse菜单-Window-Android SDK and AVD manager


右边点New,输入你要定义的信息,然后点create avd就好了。SD卡可以空着。具体不多说了。

5. 建立一个Android Project

在eclipse里新建一个project,选Android-Android Project


填入信息如图


解释一下

  • Package Name:这个学过编程的人都应该熟悉了,类似于namespace,你定义的所有东西都在一个包里不会和别的包出现重命名的问题等等,不多说了。

  • Create Activity:在android系统里,每个程序都是由一个个Activity的运行连成一起的。这里相当于创建了程序的入口Activity,相当于main()函数。

  • Min SDK version:最低支持SDK版本,2对应1.1,3对应1.5,4对应1.6。

项目建立完后,应该有如下文件:

打开HelloWorld.java后应该有如下内容:

package com.example.helloworld;

import android.app.Activity;
import android.os.Bundle;

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

6. 编写程序界面

编写程序界面有两种方法:

a. XML预编写界面(常用、推荐方法):将一个界面设计写在一个XML文件里,由android程序在运行时读取并绘制界面。该方法将设计和编码分离,易于软件的维护开发。
b. 程序运行时界面:将界面直接编码写在程序里,对于后期如果要修改界面,不得不修改源代码。不推荐此方法。

由于篇幅问题,此处只介绍XML方法。

一个XML文件就是一棵树,节点之间通过父子关系连接。一个子节点只能有一个父节点,一个父节点可以有多个子节点。这个和android的界面设计是一样的,在android里,一个界面控件(如按钮,下拉框,输入框等)叫做一个View,多个View放在一个界面里,这个界面叫做Layout。
在eclipse里,找到文件main.xml,双击打开可以看到以下内容:


这是一个可视的设计界面,类似于visual studio。可以看到左边有一个layout列表和一个view列表,可以把需要的控件直接拖到右边的界面里。
个人比较习惯于直接编码设计。找到该界面最下面有个切换的tab,点main.xml后,看到代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

这里可以看到有两层结构,一个是LinearLayout,其下有一个子节点TextView。解释一下:

  • xmlns:android="http://schemas.android.com/apk/res/android":每个layout都要有的android namespace定义。

  • android:orientation="vertical":朝向,竖直显示还是横向显示。

  • android:layout_width="fill_parent"

  • android:layout_height="fill_parent":长宽,这里设置成填充父节点继承下来的全部可用空间。

  • android:text="@string/hello":设置TextView的显示文本为一个名为hello的string。这个string的值可以通过找到strings.xml里找到。这里是一个资源引用。有关android的资源管理和R类的使用,以后有时间再和大家分享。

这个例子里,我们先找到strings.xml文件,找到名为hello的string,修改它的值并运行程序,可以发现显示的字符串变成了修改后值。

我们也可以快速添加一个按钮进去。在main.xml的TextView节点后插入(插入到之前):

可以看到一个按钮被加入了该layout:

7. 调试、运行

android的插件已经很好的集成了调试功能。我们找到HelloWorld.java文件,修改内容为:

package com.example.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Object o = null;
o.toString();

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

学过编程的都知道加粗的代码会出错。在eclipse中,找到Run-Debug,选择Android Application,使用之前建立的AVD,你可以看到程序报错。

如果要直接运行程序,选择Run-Run。
注意虚拟机一旦开机后可以调试运行任意多程序直到你完成开发为止。不用重复开关机。另外虚拟机里是没有Market的。

项目文件说明:

AndroidManifest.xml— 这个文件是 Android 应用程序的应用程序部署描述符。
Main.xml — 这个文件包含 Android 活动所用的视觉元素或资源。
R.java — 这个文件是由 Android Developer Tools 自动生成的,它把视觉资源 “连接” 到 Java 源代码。