HelloWrold的执行过程
程序的运行由主配置文件开始AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.changcheng.android"
android:versionCode="1"
android:versionName="1.0" >
<!--
@drawable/icon:
@代表R.java
drawable 是R.java 的静态内部类
icon 是drawable 的常量,指定图片资源的ID。
-->
<application android:icon="@drawable/icon" android:label="@string/app_name" >
<!--
.HelloWorld 指向package="com.changcheng.android"下面的HelloWorld 类。
我们可以在此添加子包.sub.xxxClass,但不能添加上级包。
-->
<activity android:name=".HelloWorld"
android:label="@string/app_name" >
<!-- 意图过滤,程序加载由此开始向外。-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<!-- 本程序使用AndoridSDK 的最低版本-->
<uses-sdk android:minSdkVersion="7" />
</manifest>
package com.changcheng.android;
import android.app.Activity;
然后再我们再看看mail.xml:
import android.os.Bundle;
/**
* 我们的HelloWorld 类,继承自Activity 类。
*
*/
public class HelloWorld extends Activity
{
/** Called when the activity is firstcreated. */
@Override
public void onCreate(BundlesavedInstanceState) {
// 在此方法中完成界面的绘制
super.onCreate(savedInstanceState);
// 显示R.java 文件中的layout 静态内部类的main 常量。它指向mail.xml
setContentView(R.layout.main);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
再看看Strings.xml:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!--
文本视图控件
android:layout_width="fill_parent",它的父窗口是屏幕,所以宽度为整个屏幕。
android:layout_height="wrap_content",它的高度为它所包含的内容高度。如果内容中有一行,
就是一行的高度。
android:text="@string/hello",它包含(显示)的文本内容,指向R.java 中string 静态内部类的
常量hello 所指向的文本资源ID,文本资源文件是strings.xml。
-->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8" ?>
现在让我们看看掌管资源的主文件R.java:
<resources>
<string name="hello" >HelloWorld,HelloWorld!</string>
</resources>
package com.changcheng.android;
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 intmain=0x7f030000;
}
// 字符串资源
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
R.java 文件中的所有资源ID 全部是自动生成的,我们不可以手动编辑。当我们添加一个图片时,ADT 插
件,会以图片的名称为常量的名称,然后自动生成对应的资源ID。当我们向strings.xml 中添加一个字符
串时,ADT 插件会以符串的名称为常量的名称,然后自动生成对应的资源ID。
R.java 文件不需要我们手动编辑,我们只需要在需要使用到资源的地方引用这个文件里标识的资源即可!