Android 工程目錄結構介紹
當我們完成完 Android 工程如(HelloWorld)後,展開“Package Explorer”視窗裡的
“HelloWorld”項名稱,可以看見如下目錄結構:
src目錄
該目錄是Android工程的來源程式目錄,該目錄是存放項目的原始碼的
gen目錄
該目錄存放所有自動產生的檔案,這個目錄中最關鍵的檔案是R.java。R.java是個中介檔案,在建立項目時自動產生,這個檔案是唯讀模式的,不能更改。R.java檔案是自動產生的R類,R類中包含很多靜態類,且靜態類的名字都與res中的一個名字對應,就像是個資源字典大全。其中包含了使用者介面、映像、字串等對應各個資源的標識符,R類定義了該項目所有資源的索引。例如介面中有一個文字框控制項,這個控制項就在布局檔案中有id,id是“android:id="@+id/textview"”,那麼通過R.id.textview"就可以找到這個控制項。通過R.java可以很快地尋找到所需要的資源,同時編譯器也會檢查R.java列表中的資源是否被使用,沒被使用到的資源不會被編譯到軟體中,這樣可以減少在手機佔用的空間。
assets目錄
除了提供res目錄存放資源檔外,Android在assets目錄也可以存放資源檔,assets目錄下的資源檔不會在R.java自動產生id,所以讀取assets目錄下的檔案必須指定檔案的路徑,可以通過AssetManager類來訪問這些檔案,如下代碼實現了訪問一個該目錄片檔案的功能:
private Bitmap getImageFromAssetFile(String fileName){
Bitmap image = null;
try{
AssetManager am = context.getAssets();
InputStream is = am.open(fileName);
image = BitmapFactory.decodeStream(is);
is.close();
}catch(Exception e){
}
return image;
}
bin目錄
在使用Eclipse開發時,可以不用關心bin目錄。如果在Eclipse中看不到,可以到資源管理員下面查看。
res目錄
res資來源目錄,它包含項目中的資源檔並將其編譯進應用程式中,向此目錄添加資源時,會被R.java自動記錄。res目錄存放所有程式中用到的資源檔。“資源檔”指的是資料檔案、圖片等。子目錄有:drawable、layout、values。
drawable。存放一些應用程式需要用的圖片檔案(*.png、*.jpg),Android 1.5及以下版本目錄是drawable,Android 1.5以上版本有3個:drawable-hdpi、drawable-mdpi和drawable-ldpi。drawable-hdpi放置高品質的圖片。drawable-mdpi放置中品質圖片,drawable-ldpi放置低品質的圖片。雖然是3個目錄,但是在使用R檔案訪問時,與Android
1.5及以下版本一樣的。
layout。螢幕布局目錄,layout目錄內預設布局檔案是main.xml,可以在該檔案內放置不同的布局結構和控制項,來滿足項目介面的需要,也可以建立布局檔案。
values。參數值目錄,存放軟體所需要顯示的各種文字和一些資料。可以在這個目錄下的strings.xml存放各種文字,還可以存放不同類型的資料,比如arrays.xml、colors.xml、styles.xml等。例如:在main.xml布局檔案中訪問strings.xml檔案內容可以是"@+string/hello"方式,在程式中訪問方式為R.string.hello。
raw資來源目錄。使用Eclipse建立Android工程,預設情況下不會在res目錄下面建立這個目錄,如果需要可以自己建立這個目錄,它可以通過I/O流訪問,如應用中內建音頻檔案,就可以放置在這個目錄下面。訪問方式為R.raw.xxx方式。
關於res和assets的區別請參考:http://www.eyeandroid.com/thread-1826-1-1.html
AndroidManifest.xml
它是每個android程式中必需的檔案,它在工程的根目錄下。AndroidManifest.xml是項目的總設定檔,記錄應用中所使用的各種組件。這個檔案列出了應用程式所提供的功能,可以指定應用程式中使用到的服務許可權(如GPS服務、互連網服務、簡訊服務等)。