Android學習.0(Android專案目錄結構)
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” />