官术网_书友最值得收藏!

1.4 Android應用工程文件組成

Android的應用工程文件主要由以下幾部分組成。

● src目錄:項目源文件都保存在這個目錄中。

● R.java文件:這個文件是Eclipse自動生成的,應用開發者不需要去修改里面的內容。

● Android Library:這是應用運行的Android庫。

● assets目錄:里面主要放置多媒體等一些文件。

● res目錄:主要放置應用會用到的資源文件。

● drawable目錄:主要放置應用會用到的圖片資源。

● layout目錄:主要放置用到的布局文件。這些布局文件都是XML文件。

● values目錄:主要放置字符串(strings.xml)、顏色(colors.xml)、數組(arrays.xml)。

● Androidmanifest.xml:相當于應用的配置文件。在這個文件中,必須聲明應用的名稱,應用所用到的Activity、Service以及receiver等。

在Eclipse中,一個基本的Android項目的目錄結構如圖1-31所示。

圖1-31 Android應用工程文件組成

1.src目錄

與一般的Java項目一樣,“src”目錄下保存的是項目的所有包及源文件(.java),“res”目錄下包含了項目中的所有資源。例如,程序圖標(drawable)、布局文件(layout)和常量(value)等。不同的是,在Java項目中沒有“gen”目錄,也沒有每個Android項目都必須有的AndroidManfest.xml文件。

“.java”格式文件是在建立項目時自動生成的,這個文件是只讀模式。不能手動添加或刪除R.java文件,R.java文件是定義該項目所有資源的索引文件。先來看看HelloWorld項目的R.java文件,代碼如下:

            package net.learn2develop.HelloWorld;
            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 int main=0x7f030000;
              }
              public static final class string
              {
              public static final int app_name=0x7f040001;
              public static final int hello=0x7f040000;
              }
          }

從上述代碼中,可以看到文件定義了很多常量,并且會發現這些常量的名字都與res文件夾中的文件名相同,這再次證明.java文件中所存儲的是該項目所有資源的索引。有了這個文件,在程序中使用資源將變得更加方便,可以很快地找到要使用的資源,由于這個文件不能手動編輯,所以當用戶在項目中加入了新的資源時,只需要刷新一下該項目,.java文件便自動生成了所有資源的索引。

2.res目錄

在res目錄下包含了該項目所使用到的資源文件,這里面的每一個文件或者資源都將在R.java文件中進行索引定義。文件類型主要有以下幾類。

● 圖片文件:分別提供了高分辨率(drawable-hdpi)、中分辨率(drawable-mdpi)和低分辨率(drawable-ldpi)的圖片文件。

● 布局文件:在layout目錄下,默認只有一個main.xml,用戶也可以添加更多的布局文件。

● 字符串:在values目錄下的strings.xml文件中。

打開main.xml布局文件,代碼為:

          <?xml version="1.0" encoding="utf-8"?>
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  //線性布局
                  android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent">
          <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello"/>
          <LinearLayout/>

在該布局文件中,首先定義了采用線性布局,內部只有一個文本框控件。這個控件顯示內容引用了string文件中hello變量。

其中,

● <LinearLayout>:線性版面配置,在這個標簽中,所有元件都是按由上到下排隊排成的。

● android:orientation:表示這個介質的版面配置方式是從上到下垂直地排列其內部的視圖。

● android:layout_width:定義當前視圖在屏幕上所占的寬度,fill_parent即填充整個屏幕。

● android:layout_height:隨著文字欄位的不同而改變這個視圖的寬度或高度。

在上述布局代碼中,使用了一個TextView來配置文件標簽Widget(構件),其中設置的屬性android:layout_width為整個屏幕的寬度,android:layout_height可以根據文字來改變高度,而android:text則設置了這個TextView要顯示的文字內容,這里引用了@string中的hello字符串,即String.xml文件中的hello所代表的字符串資源。Hello字符串的內容“HelloWorld、HelloAndroid”就是用戶在HelloAndroid項目運行時看到的字符串。

Strings.xml文件的代碼為:

            <?xml version="1.0" encoding="utf-8"?>
            <resources>
                <string name="hello">HelloWorld,HelloAndroid</string>
                <string name="app_name">HelloAndroid</string>
            <resources/>

3.AndroidManfest.xml文件

在文件AndroidManfest.xml中包含了該項目中所使用的Activity、Service、Receiver,以下代碼為“HelloWorld”項目中的AndroidManfest.xml文件。

            <?xml version="1.0" encoding="utf-8"?>
            <manifest xmlns:android="http://schemas.android.com/apk/res/android"    //根節點
                package="PACKAGE"                                                  //包名
                android:versionCode="1"
                android:versionName="1.0" >
                <uses-sdk android:minSdkVersion="16"/>                              //SDK版本
                <instrumentation
                    android:name="android.test.InstrumentationTestRunner"
                    android:targetPackage="TEST_TARGET_PCKG" />
                <application                                                       //圖標和應用程序名稱
                    android:icon="@drawable/ic_launcher"
                    android:label="@string/app_name" >
                  <activity android:name=".firstActivity"                           //默認啟動的Activity
                    Android:label="@string/app_name">                              //Activity名稱
                      <intent-filter>
                        <action android:name="android.intent.action.MAIN"/>
                        <category android:name="android.intent.category.LAUNCHER"/>
                    <uses-library android:name="android.test.runner" />
                </application>
            </manifest>
主站蜘蛛池模板: 丽江市| 旬邑县| 洞口县| 武城县| 镇康县| 手游| 池州市| 无为县| 天柱县| 玉溪市| 陇南市| 二手房| 乌苏市| 五峰| 三都| 峨边| 福建省| 夏津县| 泗阳县| 木兰县| 临汾市| 新竹县| 宣汉县| 宜都市| 诏安县| 成安县| 通海县| 盘山县| 札达县| 方城县| 西贡区| 房产| 利川市| 涿州市| 隆安县| 湟中县| 奉贤区| 甘孜县| 徐州市| 西华县| 巫溪县|