今天开始接触下Android的开发。对于Android开发环境的搭建,网上有许多的教程,这里不做赘述。与别的一样,我们先从一个简单的HelloWorld开始。
通过Eclipse的集成开发环境,我们创建一个简单的HelloWorld工程,工程目录如下:
其中src为项目的所有包及源文件,res文件夹中则包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常量(values)等。gen文件夹中的R.java文件是项目建立时自动生成的,这个文件为只读的,不能更改,该文件定义了项目所有资源的索引。有了这个文件,可以很快的找到要使用的资源,当项目中加入新的资源时,工程自动刷新R.java文件变自动生成了所有资源的索引。
AndroidManfest.xml文件则包含了该项目所使用的Activity、Service、Receiver。其中intent-filters描述了activity启动的位置和时间。每当一个Activity要执行一个操作时,它将创建一个intent对象,这个Intent对象能承载的信息科描述你想做什么,要处理什麽数据,数据的类型以及一些其他信息。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="HelloWorld.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="14" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".HelloWorldActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
String.xml用于定义一些常量的定义。
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
在程序中使用这些常量时,可以使用一下方法:
Resources r = this.getContext().getResources();
String appname = (String)r.getString(R.string.app_name);
String hello = (String)r.getString(R.string.hello);
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
然后我们的源码程序就可以这样写:
HelloWorldActivity.java:
package HelloWorld.test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class HelloWorldActivity extends Activity {
/** Called when the activity is first created. */
private static final String TAG = "HelloWorld";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TextView tv = new TextView(this);
// tv.setText("Hello, World!");
// setContentView(tv);
Log.v(TAG, "VERBOSE");
Log.d(TAG, "DEBUG");
Log.i(TAG, "INFO");
Log.w(TAG, "WARN");
Log.e(TAG, "ERROR");
setContentView(R.layout.main);
}
}
其中setContentView设置了Activity要显示的布局文件。(\layout\main.xml)。