Hello,Android!作为开发者,你的第一感觉是你拿到这个开发框架写“Hello,World!”程序时的难易程度给你留下的。当然,在Android里,这个非常容易,下面我给你演示:创建一个工程创建UI运行代码:Hello,Android下面的章节将详细描述使用XML构建UI调试工程不使用Eclipse创建一个工程让我们开始把创建工程创建一个尽可能简单的工程,Eclipse的插件可以使Android的开发变得简单。你需要一台装有EclipseIDE(参考系统和软件需求),你还需要安装AndroidEclipse插件(ADT)。如果你都准备好了,继续看这里。首先,你需要对如何创建“Hello,World!”有个大概的了解:1.在菜单中FileNewProject中创建一个新的Android项目。2.在创建Android项目的对话框里填写项目的详细信息。3.编辑自动生成代码的模板去显示一些输出。这样就可以了,下一步,我们将详细讲解每一步。1.创建一个新的Android项目打开Eclipse,选择FileNewProject如果Android的Eclipse的插件正确安装了,弹出的对话框里就会有一项“Android”,这一项有唯一的子项“AndroidProject”。选中“AndroidProject”,点下一步。2.填写工程的详细信息下一步需要你填写项目的详细信息,这里有个例子:每一项具体的意思:工程名你想把工程保存在你机器上哪个目录里包名包的命名空间(需要遵循java编程语言的命名规则),你的所有代码都会在这个命名空间下。这也会生成包的名称从而活动自动生成。你使用的这个包的名字必须和其他安装在你机器上的包名字不冲突,所以,使用一个标准规则的包名字是非常重要的。如上例,我们使用包的名字为“com.android”,但你需要使用一个不同的类型。“活动”名这是插件为你自动生成类的名字。它也会是Android活动类的一个子类。一个活动仅仅是一个包含一些功能并能执行的类。如果它选择,可以创建用户界面,但这不是必须的。程序这是最后生成应用程序的名字。名可选框里Usedefaultlocation允许你选择其他目录保存项目产生的其它文件。3.编辑自动生成代码运行插件后,会自动生成一个类“HelloAndroid”(可以在程序包里HelloAndroidsrccom.android.hello找到)。像这样:publicclassHelloAndroidextendsActivity{/**活动第一次被创建后调用。**/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}现在,你可以执行程序了。不过我们还可以进一步研究下,这样我们能更好得理解程序。所以,下一步我们可以改一些代码建立UI看下面我们修改的代码,你可以在你的HelloAndroid.java文件里做相同的修改,我们来逐行分析:packagecom.android.hello;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassHelloAndroidextendsActivity{/**活动第一次被创建后调用*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);TextViewtv=newTextView(this);tv.setText(Hello,Android);setContentView(tv);}}小提示:如果你忘记引入TextView的包,可以尝试Ctrl-Shift-O(如果是Mac系统Cmd-Shift-O)。这是Eclipse管理应用的快捷方式-它会显示没有找到的包然后自动为你加上。在Android里,用户接口由一些称之为视图的不同层次的类组成。一个视图就是一个简单的对象。如单选框,动画控件,一个文本框(我们的例子里的),我们称处理文本的这样一个子视图就叫TextView。这里教你如何创建TextView。这里教你如何创建TextView:TextViewtv=newTextView(this);TextView构造器就是Android上下文的实例,这个上下文仅仅是指向系统的一个句柄,它提供像资源处理之类的服务。包含一些进入资料库以及参数选择的入口。这个活动也是继承上下文。HelloAndroid类是活动的一个子类,它也是一个上下文,我们能通过this操作TextView。创建TextView后,加入需要显示的内容:tv.setText(Hello,Android);这里很正常。我们创建一个TextView,然后告诉它显示的内容。最后一步就是让TextView在屏幕上显示出来,像这样:setContentView(tv);活动里setContentView()的方法表明哪个视图需要在当前UI上被操作。如果一个活动不能调用这个方法,那么当前就没有界面系统显示为一个空白屏幕。我们仅仅想显示一些文本,所以我们将刚才创建的TextView连接上这就是Android平台里的“Hello,World”,当然,我们可以看下运行情况。执行代码:Hello,AndroidEclipse的插件使得你的程序很容易运行。选择Run-OpenRunDialog菜单。(Eclipse3.4版本中,菜单为Run-RunConfigurations)可以看到这样的对话框下一步,选择“AndroidApplication”,点击在左上角(按钮像一张纸上有个“+”号)或者双击“AndroidApplication”。有个新的选项“New_configuration”。将名字改得更形象一点,如“Hello,Android”,然后按Browse按钮选择你的项目,(如果你Eclipse里有多个Android项目需要打开,确定要选择正确)插件会会自动扫描你项目里的活动子类,然后在“活动”的下拉菜单里加载。如果你的“Hello,Android”项目只有一个,它将被设置为默认项目,然后你可以继续。点击“Apply”按钮,这里有个例子:这样就可以了,点击“Run”按钮,Android的模拟器启动。一启动你的程序就会出现,当一切OK,你可以看到:这就是Android的“Hello,World”,是不是非常简单呢?下一章节我们将提供更详细的信息。当你接触更多的Android时,你会发现它非常有价值。使用XML构建UI你刚刚完成的“Hello,World”的例子使用的是我们称为“可编程”的UI层,意思是你通过编写代码来组建UI层。当你开发了足够多的UI程序,你会发现一些很糟糕的现象:一些小的变化需要你做大量的代码改动。你常常会忘记将View连接起来,这样会导致一些错误,浪费你很多时间去调试代码。这就是Android为什么提供一个可变化的UI开发模块:基于XML的文件。最简单解释这个概念就是演示个例子。这里有个XML的文件,它能达到和你刚才完成代码同样的效果:?xmlversion=1。0encoding=utf-8?TextViewxmlns:android=:layout_width=fill_parentandroid:layout_height=fill_parentandroid:text=Hello,Android/通常Android里XML文件结构是很简单的。只是一些标记的树形集合,每个标记就是一个视图类。在这个例子中,它就是一个简单的TextView元素的树,你可以在XML文件里使用任何扩展类的名字作为你的标记,这也包括你在你的自己的代码里定义的名字。这个结构使得你能使用简单结构和语法快速的组建UI,这种模型就像网站的开发模型,你能够将UI和程序逻辑分开,单独获取或者填充数据。在这个例子里,有4个XML属性,下面是属性的大概意思:属性描述xmlns:android这是一个XML命名空间,告诉Android开发工具你准备使用Android命名空间里的一些通用属性。在所有AndroidXML设计文件中最外层的标记必须使用这个树形。android:layout_width这个属性定义了这个视图需要占用的屏幕宽度。在这个例子中,我们仅有的一个视图可以占用整个屏幕,那就是“fill_parent”的意思。android:layout_height这个和“layout_width”差不多,表示占用屏幕的高度。android:text这个设置文本显示内容,在这个例子里,我们使用“Hello,Android”。这就是XML的布局,你需要把这个文件放在什么位置?放在你的工程/res/layout下就可以。“res”是“resource”的简称,这个目录包含了所有应用程序需要的非代码部分。比如图片、字符串、XML文件。Eclipse插件为你创建了这些XML文件中的一个。在我们上面的范例,我们根本没有使用过它。在包的管理器里,展开目录/res/layout,编辑main.xml文件,替换上面的文本然后保存修改。在从代码目录里打开R.java文件,你可以看到他们像这样:publicfinalclassR{publicstaticfinalclassattr{};publicstaticfinalclassdrawable{publicstaticfinalinticon=0x7f020000;};publicstaticfinalclasslayout{publicstaticfinalintmain=0x7f030000;};publicstaticfinalclassstring{publicstaticfinalintapp_name=0x7f040000;};};R.java是文件中所有资源的索引界定值定义。你在代码中使用这个类,就像在你的项目里使用一个简洁的方法表示你的资源。在Eclipse这样的IDE工具里,这个方式对于代码自动完成功能还是非常有效的,因为这能让你快速得定位你要寻找的东西。有个重要点需要注意的是有个内部类“main”,是“layout”的成员类。Eclipse插件提醒你加了一个新的XML文件,然后生成R.java文件,当你加入其他资源到你的工程里,你可以看到R.java在同步更改。最后要做的就是使用你最新版本的XML修改你的HelloAndroid代码去代替以前的编码。这个有例子说明重新写过的类的模型,你可以看到,代码变得非常简单:packagecom.android.hello;importandroid.app.Activity;importandroid.os.Bundle;publicclassHelloAndroidextendsActivity{/**Calledwhentheactivityisfirstcreated*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}当你做这些修改的时,你只需要拷贝、复制。在那个R的类里你可以使用代码自动完成功能,你会发现那确实很有帮助。现在你已经完成了这些修改,继续执行你的程序-你需要做的就是按下绿色的“Run”按钮,或者在菜单中选择Run-RunHistory-