代码改变世界

Android学习笔记(2):Hello world

2012-12-02 00:26  ps_zw  阅读(1949)  评论(0编辑  收藏  举报

引言

确保Android开发环境已经搭建好,便可以开始我们的第一个Android Application——Hello world。

环境:Eclipse +jdk1.6 + Android2.1

 

步骤一:创建Android Project

打开Eclipse -> File -> New -> Project -> 选择Android目录下的Android Application Project,点击Next,得到如下页面:

 image

1) 输入Application Name:MyFirstApp (首字母大写,否则会有警告);

Package Name,Package Name使用默认值;

2) 选择Bulid SDK和Mininum Required SDK版本,我这里都选择Android 2.1;

3) 点击next 设置应用程序图标;

4) 点击next设置Activity模板;

5) 点击next,设置Activity Name,Layout Name等信息,我这里使用默认值,然后点击finish。

通过以上步骤变创建了一个Android Project。

 

步骤二:Android Project结构说明

通过步骤一我们可以得到如下界面:

image

 

我们可以在当前的Project中看到,程序中已经有Hello World了。

运行第一个Android程序之前,我们先认识下Android Project的结构:

AndroidManifest.xml

每一个Android项目都包含一个清单(Manifest)文件--AndroidManifest.xml,它包含了组成应用程序的每一个组件(Activity、Service、ContentProvider和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。我们这里的AndroidManifest.xml文件代码如下:

 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 2     package="com.example.myfirstapp"
 3     android:versionCode="1"
 4     android:versionName="1.0" >
 5 
 6     <uses-sdk
 7         android:minSdkVersion="7"
 8         android:targetSdkVersion="15" />
 9 
10     <application
11         android:icon="@drawable/ic_launcher"
12         android:label="@string/app_name"
13         android:theme="@style/AppTheme" >
14         <activity
15             android:name=".MainActivity"
16             android:label="@string/title_activity_main" >
17             <intent-filter>
18                 <action android:name="android.intent.action.MAIN" />
19 
20                 <category android:name="android.intent.category.LAUNCHER" />
21             </intent-filter>
22         </activity>
23     </application>
24 
25 </manifest>

 

/src

源码文件目录,默认它包含了应用程序启动Activity的类,我们这里就是MainActivity.java。代码如下:

 1 package com.example.myfirstapp;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.view.Menu;
 6 
 7 public class MainActivity extends Activity {
 8 
 9     @Override
10     public void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.activity_main);
13     }
14 
15     @Override
16     public boolean onCreateOptionsMenu(Menu menu) {
17         getMenuInflater().inflate(R.menu.activity_main, menu);
18         return true;
19     }
20 }

 

res/

故名思义,这里存放了应用程序所需要的相关资源,这些资源是按不同类型存放不同目录。这里随便列举几个常用的目录:

1)res/Layout/

同UI布局相关的都存放于该目录下。如我们这里的activity_main.xml便在该目录下,代码如下:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent" >
 5 
 6     <TextView
 7         android:layout_width="wrap_content"
 8         android:layout_height="wrap_content"
 9         android:layout_centerHorizontal="true"
10         android:layout_centerVertical="true"
11         android:text="@string/hello_world"
12         tools:context=".MainActivity" />
13 
14 </RelativeLayout>

 

这里的代码都是默认的,我们可以看到程序中放置了一个TextView来显示HelloWorld.其中TextView的text属性

值为:android:text="@string/hello_world"。这里的hello_world是一个key,它的value定义在res/Values/strings.xml文件中。

2)res/Values/

如1)所述,该目录存放了应用程序需要的一些键值对。如上面提到的hello_world,就是一个string类型的值,它定义在文件res/Values/strings.xml中,定义如下:

<string name="hello_world">Hello world!</string>

strings.xml的详细代码如下:

1 <resources>
2 
3     <string name="app_name">MyFirstApp</string>
4     <string name="hello_world">Hello world!</string>
5     <string name="menu_settings">Settings</string>
6     <string name="title_activity_main">MainActivity</string>
7 
8 </resources>

 

注:res/Values/目录下还有其他类型的值,如文件styles.xml.

 

步骤三 运行示例程序

Android程序的运行可以在真实设备上,也可以是虚拟机上。我们这里以虚拟机为例。运行Android程序前,请先确定安卓虚拟机(AVD)是否已经安装(Window->AVD Manager->New)。

成功创建AVD之后,可以按如下步骤运行我们的MyFirstApp:

右键Project->Run As->Run Configurations ->双击Android Application->点击右侧Android/Browser选择要运行的项目->点击Target,勾选AVD->点击Apply->点击Run。操作页面如下(红色框的Tab页就是要设置的地方):

image

 

AVD的启动是需要一定的时间的(相当于Android手机开机),默认情况下启动成功AVD会自动打开当前应用。当然我们也可以在程序列表中找到我们的程序。

Androd2.1的AVD启动时界面:

image

 

启动成功后,我们的HelloWorld就出来了:

 image

 

注:运行成功后,我们可以在strings.xml文件中修改name="app_name”记录为<string name="app_name">Hello Android</string>,然后再次运行,我们会发现界面title显示为Hello Android. 

源码下载:MyFirstApp.rar