Android學習.0(Android項目目錄結構)

本文來自我的個人網站,如有興趣,歡迎訪問www.qingshuimonk.com


1.      重要目錄文件:

a)        Src/:源代碼目錄

b)        Gen/:系統自動生成代碼的目錄

c)        Res/:存放圖片、佈局、字符串等資源

d)        AndroidManifest.xml:應用程序配置文件

2.      res下有五個drawable的目錄,分別是xxhdpi,xhdpi,hdpi,mdpi,ldpi,在運行時,系統會自動監測安卓程序的分辨率,然後選擇合適的圖片(吐槽一下安卓的碎片化……),但是也可以將相同的圖片文件放入這五個文件夾。

3.      res/values目錄下有:

a)        strings.xml,用於存放應用中出現的字符串,這樣可以爲多次出現的字符串節省內存,並且也便於以後的修改。

b)        colors.xml,用來定義顏色和數值。

c)        dimens.xml,用來定義尺寸和數據,也是方便以後的修改。

d)        styles.xml,用來定義樣式。

4.      res/layout目錄下存放了個應用的佈局文件,採用xml格式編寫,具體的使用方法會在以後的章節介紹。

5.      gen/R:自動生成的文件,會對應用中的每個靜態內部類中的靜態常量(就是drawable,layout,string那些東西)賦予一個資源標識符(ID),在java裏可以按照R.ResourceType.ResourceName來引用該資源(PS:Android自身自帶資源引用方法爲:Android.ResourceType.ResourceName)。在xml文件中引用爲@[package:]type/name,一般使用自己的包時,省略[pakage:],例如引用應用名:@string/app_name,但是當引用安卓自身資源時,要加上包名:@Android:color/blue。

6.      AndroidManifest.xml:

a)        命名應用程序的java應用包,描述應用程序的組件,決定應用程序權限,聲明系統API最低版本等

b)        例如以下一段代碼:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="0.0 beta" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="14" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.test.MainActivity"
            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>

</manifest>

a)        Android:versionCode是版本號,Android:versionName是版本名稱,每次升級,版本號都應比上一次大,而版本名稱可以自行決定。

b)        Application:label表示應用名稱,就是由@sting/app_name的值來決定的。

c)        Activity標籤中,name是表示本activity的類名,而label是用來表示本activity的顯示名稱。

d)        Intent-filter爲意圖過濾器,每一個進程都要向系統聲明自己能相應的意圖,這樣在有用戶意圖產生時系統才知道應該激活哪個應用,如:<categoryandroid:name="android.intent.category.LAUNCHER" />這段代碼,它表示該進程能夠響應啓動,說明它是應用程序的入口。

e)        Permissions標籤用於表明該應用所需要的權限,由於默認程序並沒有額外的權限,所以以上代碼中並未出現permissions的標籤,該標籤內容會在以後提到。

f)         如果該程序用到了其他開發包中的庫,那麼還需要在<application>中加入一個<uses-library>的標籤,例如:<uses-library android:name=”android.test.runner” />


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章