公司最近要開發一款Android平台下的應用,通訊軟件,所以年后上班一直在研究Android方面的內容。
使用Eclipse開發的Android,對於一個新建的Android項目,自動生成的項目結構如下圖:

自動生成的目錄介紹:
- src目錄:主要是存放編寫的Java代碼。
- assets目錄:資源目錄。
- res目錄:存放圖片、布局文件、字符串、菜單等文件。
- bin目錄:輸出文件夾,如生成的APK文件。
- project.properties:工程屬性文件配置。
- gen目錄:系統自動生成的代碼目錄,存放R.java.
這個R.java文件是系統自動生成的文件,非常的重要。這個R.java默認有attr、drawable、layout、string等4個靜態內部類,每個類對應一種資源。例如在工程中添加一幅圖片,那么工程就會在此類的drawable內部類中添加一條數據,如果刪除了此圖片,工程則會自動刪除此條數據。
在res資源文件夾下包含有以下的文件:
Drawable存放工程圖片的信息,默認png格式的圖片。
Layout存放工程的布局文件以.xml結束。
Values文件夾下存放一個很重要的string.xml,此文件夾存放的是自定義的字符串和數值。
除了這個文件之外,還可以定義arrays.xml(用來定義數組)、color.xml(用來定義顏色和顏色字符串數值)、dimens.xml(用來定義尺寸數值)、styles.xml(用來定義樣式)。這些文件只是為了區分資源的類型,一種開發規范,便於開發人員識別修改,其實可以全部定義在string.xml文件中,均可以自動生成到R.java,便於使用。
資源文件分別的格式:
數組:
<string-array name="city"> <item >北京</item> <item >上海</item> </string-array>
顏色,使用二進制的RGB值表示:
<color name="bgcolor">#FFCCFF</color>
尺寸:
<dimen name="width">20dp</dimen>
樣式:
<sytle name="customText"> <item name="android:textSize">20sp</item> </sytle>
在安卓的activity中,均有一個全局的方法,getResource()來獲取資源,具體資源的獲取方法如下:
| 文件 |
取值方式 |
| String.xml |
getResource().getString(resourceId)、getResource().getText(resourceId) |
| Arrays.xml |
getResource().getStringArray(resourceId) |
| colors.xml |
getResource().getDarwable(resourceId)、getResource().getColor(resourceId) |
| Dimens.xml |
getResource().getDimension(resourceId) |
| Styles.xml |
不需要取值 |
AndroidManifest.xml文件介紹
AndroidManifest.xml是每個android程序中必須的文件。它位於整個項目的根目錄,描述了package中暴露的組件(activities、services等等),他們各自的實現類,各種能被處理的數據和啟動位置。能聲明程序中的Activity、ContentProviders、ServersIntent Receivers、permissions和instrumentation(安全控制和測試)。
示例:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="bgxt.demo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".SimpleActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
其中manifest節點中的一些屬性,介紹:
- Packgae:包,表示整個java應用程序的主要包名,而且是一個默認的程序名稱。
- Android:versionCode:表示該工程說生產的apk的版本號,1開始,逐漸遞增。
- Android:versionName:表示版本的一個名稱。類似於:1.0、2.0.
- Android:installLoacation:自動尋找安裝的地方,ROM或者SDCard,默認屬性為自動。可選屬性有auto:系統默認、internalOnly:僅僅只能安裝在ROM上、preferExternal:會直接安裝在sdcard上。
Application節點的一些屬性介紹:
- Android:icon:表示應用程序的圖標,Logo圖片。
- Android:label:表示應用的工程文字說明。
Activity節點的屬性介紹:
- Android:name:表示整個應用程序的主程序的名稱。
- Intent-filter :意圖過濾器,用來過濾用戶的一些動作和操作。

