android之用Hello World做項目結構分析 – Android移動開發技術文章_手機開發 Android移動開發教學課程

首先,建立一個類HelloWorldActivity:
public class HelloWordActivity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        setTitle("Hello World");

   }

在這個類中,我們看到瞭我們寫的類繼承瞭Activity這個類,Activity這個在android中是非常常用的。比較容易理解的說話,一個Activity就相當於手機屏幕的一屏。如果把手機比作瀏覽器,那個Activity就相當於一個網頁;在Activity中可以一些控件(view),並能夠對這些控件做一些相應的處理。 一個android的程序通常會由多個Activity組成,不同的Activity之間可以跳轉;和網頁的跳轉是類似的。而且Activity之間的跳轉是可以有返回值的。比如從Activity1 跳轉到Activity2,Activity2結束後,有可能會返回一個值給Activity1. Activity生命周期是由android的系統進行維護的;這在以後的文章將會詳細介紹。

當實現自己的Activity的時候,一般都需要重載onCreate 這個方法來實現添加控件,處理控件的相關功能等。setContentView(R.layout.main);就是實現控件的添加佈局(視圖)。視圖由R類負責尋找。 而R.layout.main 會指向res/layout/main.xml 這個配置文件,在這個配置文件中,可以添加控件,並對控件進行佈局。下面我們講一下android工程的結構,會便於理解這個問題。

如下圖,所示:


 


src下面是自己的寫的代碼,同時我們可以看到,還有一個gen目錄,在該目錄下面有個R.java的文件。R文件由ADT自動生成,程序員不需要也不要去修改它,R文件負責調用應用程序中的非代碼資源。在R文件中每一個資源文件都會對應一個整數。 如下所示:

 

public final class R {

    public static final class attr {

    }

    public static final class drawable {

        public static final int icon=0x7f020000;

    }

    public static final class id {

        public static final int button1=0x7f050006;

        public static final int button2=0x7f050007;

        public static final int lineLayout1=0x7f050003;

        public static final int linelayout1=0x7f050002;

        public static final int text1=0x7f050000;

        public static final int text2=0x7f050001;

        public static final int textview1=0x7f050004;

        public static final int textview2=0x7f050005;

    }

    public static final class layout {

        public static final int frame_layout=0x7f030000;

        public static final int main=0x7f030001;

    }

    public static final class string {

        public static final int app_name=0x7f040001;

        public static final int hello=0x7f040000;

    }

}

這裡需要註意的是android系統本身也有一個R.java的文件,在android這個包下面。當import瞭這個系統的R的時候(import android.R;),我們需要通過帶包名的方式來訪問項目的R.java.比如:

setContentView(org.terry.R.layout.main);

Res目錄下面對應這個資源文件,包括工程用到的圖片,xml文件等。也就是resource目錄,這個目錄下存放資源文件,資源文件的統一管理,也是Android系統的一大特色。現在要註意看的是layout目錄下的main.xml等文件(建立下面的時候,默認會生成main.xml文件,用於主Activity的佈局,如果你需要設置其他Activity的佈局,可以添加其他的xml文件)。這個文件的內容是有關用戶界面佈局和設計的,setContentView(R.layout.main),就是設置用戶界面佈局的。這個類似於網頁裡面的html標簽語言。

在工程跟目錄下面,還可以看到一個AndroidManifest.xml文件,對於每一個android工程,這個文件都是必須的。在創建工程的時候,會自動生成這個文件。該文件向Android操作系統包括程序的組件,所實現的功能,能處理的數據,要請求的資源等等。如果你知道javaweb開發,可以用web.xml 來類比這個文件。

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="org.terry"

      android:versionCode="1"

      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="11" />

 

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".HelloWordActivity"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <activity android:name =".FrameLayoutActivity"

                  android:label="@string/app_name">

        </activity>

     </application>

</manifest>其中Manifest是根節點,versionCode和versionName來表示應用程序的版本;裡面可以包含0個或1個application元素,application可以包含多個activity組件等等,具體的內容我們在接下來的課程裡詳細講解。程序所包含的activity的實現等等都需要在這個文件裡面定義出來。比如上面application 裡面添加的FrameLayoutActivity,如果不添加,當程序調用這個類的時候,就會報找不到類的錯誤。

作者“算法 java swing”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。