在Android操做系統中開發的應用程序都有一個結構縝密的架構。咱們今天就來對這一Android程序架構作一個詳細的分析。幫助你們瞭解程序開發的特色,以方便未來在應用程序開中明確本身的程序架構。java
Android程序架構1. src/ 原始碼(source)目錄 android
src 目錄中包含了一個 Android 應用程式中所需的各個程式碼檔桉。這些檔桉被包在對應 package 的子目錄下。(如本章的 BMI 例子中,子目錄指的就是 /src/com/demo/android/bmi/)架構
src 目錄中比較關鍵的程式有:ide
1. Bmi.java 這個檔桉的檔名會隨着你在創建一個新的程式專桉畫面中所填入「Create Activity」欄位值的不一樣而改變。這是新程式專桉中的主要程式區塊。咱們開發 Android 程式的多數時間,都是在 src 目錄下和 Android 打交道。
gen/ 自動生成(Generate)目錄操作系統
gen 目錄中存放全部自動生成的檔桉。插件
gen 目錄中最關鍵的程式就是 R.java 檔。xml
1. R.java 這個檔是自動產生的。會由 ADT 插件自動根據你放入 res 目錄的 XML 描述文件、圖像等資源,同步更新修改 'R.java' 這個文件中。全部的 Android 程式中都會有以 R.java 爲名的這個檔桉,你徹底不須要,也應避免手工修改 R.java 這個檔桉。htm
R.java 中自動產生的「R」 類別就像是個字典同樣,包含了使用者介面、圖像、字串等各式的資源與相應的編號(id)。Android 應用程式中不少時候會須要透過 R 類別調用資源。編譯時編譯器也會查看這個資源列表,沒有使用到的資源就不會編譯進去,爲手機應用程式節省沒必要要沒用的空間。資源
Android程序架構2. s/ 資源(Resource)目錄 開發
「res」 目錄中存放全部程式中用到的資源檔桉。"資源檔桉"指的是資料檔桉,或編譯時會被轉換成程式一部分的 XML 描述檔。Android 針對放在「res」 目錄下的不一樣子目錄的資源,會有各自不一樣處理方式。所以咱們寫程式時,最好能搞清楚各目錄下分別可放置的內容。
Android程序架構3. layout/ 版面配置(layout)目錄
「layout」目錄包含全部使用 XML 格式的介面描述檔。「layout」 中的 XML 介面描述檔就像寫網頁時用到的 HTML 檔桉同樣,用來描述螢幕上的版面編排與使用的介面元件。XML 介面描述檔描述的內容能夠是整張螢幕,也能夠只描述一部分的介面(例如描述用來產生對話框的介面元件)。
雖然你也能直接經過 Java 來創建使用者介面,不過透過 XML 描述檔來創建使用者介面相對更簡單,架構也更清晰,之後維護時更容易釐清問題。要使用這些介面元件,應透過 「R.java」 檔中自動產生的 「R」 類別來調用。
Android程序架構4. values/ 參數值(value)目錄
「values」 目錄包含全部使用 XML 格式的參數值描述檔,能夠在此添加一些額外的資源如字串(很經常使用)、顏色、風格等。使用時也是透過 「R」 類別來調用。
Android 功能清單
Android程序架構5. AndroidManifest.xml
「AndroidManifest.xml」 是 Android 程式的功能清單,應用程式在這離列出該工程所提供的功能。當應用程式開啓時,會提供諸如內容提供者(ContentProvider)、處理的資料類型、實際運行的類別、跨應用程式的資訊等等訊息。你能夠在此指定你的應用程式會使用到的服務(諸如電話功能、網路功能、GPS功能等)。當你新增一個頁面行爲類別 (Activity) 時,你也須要先在此註冊這個新增的 Activity 類別後,才能順利調用。