天天看點

《Android UI基礎教程》——1.2節Android 應用程式的基本結構

本節書摘來自異步社群《android ui基礎教程》一書中的第1章,第1.2節android 應用程式的基本結構,作者 【美】jason ostrander,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.2 android 應用程式的基本結構

android ui基礎教程

在開始一個android項目時,eclipse ide已經為你建立了一個初始的工程結構。這個工程包含你需要用來建構應用程式的所有所需元素,你也應把所有的工作内容放置于這個工程中。盡管可以建立一個應用程式之間的代碼共享的庫工程,但對于絕大多數應用程式來說,并沒有這個必要。本節将會介紹基本的工程檔案夾結構以及應該在哪裡放置代碼、布局檔案和素材。

1.2.1 檔案夾結構

對在package explorer的示例工程檔案夾的基礎上進行擴充,并仔細觀察工程結構。android使用的是标準的java應用程式的布局。表1.1總結了工程結構。

《Android UI基礎教程》——1.2節Android 應用程式的基本結構

1.2.2 android manifest

android manifest包括應用程式的結構和功能的所有資訊。它包括應用程式所使用的所有活動、所提供的服務、任何通過内容提供商可通路的資料庫内容以及它處理的任何意圖。

在該manifest中你可以聲明應用要正常運作所需的硬體功能。舉個例子,如果應用需要觸屏裝置才能夠正常運轉,那麼在manifest中需要包括進下面這行:

按照應用所需來聲明硬體功能使得android market可以根據使用者的硬體配置來合理地篩選應用。這樣沒有觸屏手機的使用者就不會下載下傳到要求有觸摸屏才能正常運作的應用。

你應該努力使應用程式盡可能廣泛地相容。列出應用需要使用的功能,通過代碼來動态決定它們的可用性并使得降低使用者體驗的方式盡可能保持優雅。

在該manifest中你同樣要聲明應用所需使用的權限。與硬體要求不同,所有運作應用所需的權限聲明都必須包括在manifest中。不存在有可選的聲明。

注意: 使用者對于要求權限過于寬泛的應用毫不留情。尤其是對于那些要求位置資訊的應用。仔細考慮應用的權限需求,不要請求多餘的權限。

應用程式使用的圖示和标簽也要在manifest中聲明。你可以把這些屬性賦給manifest中的許多xml元素。最重要的是頂層的<application>元素。它決定應用程式将如何在主界面以及應用頁展示。然而,圖示/标簽的組合并不隻是适用于<application>元素。你可以把它們應用于權限元素之上,這将會在使用者确認安裝應用程式時展示出來。你也可以把它們置于<activity>元素,使用者将會在程序螢幕中看到它們。這些元素能夠被任何子元件繼承。是以,如果已經設定好<application>圖示和标簽,但是<activity>和<intent>的圖示和标簽并沒有設定,那麼這些元素将會預設使用<application>的圖示和标簽。此設定允許你使用特定元件的圖示和标簽來告知使用者應用程式的功能。

最後,manifest是聲明所支援的android api版本的地方。正确地聲明api級别很重要,因為嘗試引用不支援的api将會導緻你的應用程式崩潰。這也能很好地防止應用程式被安裝于未測試過的新的api版本。表1.2列出了更多關于api級别的資訊。

《Android UI基礎教程》——1.2節Android 應用程式的基本結構

1.2.3 資源

android應用在res/檔案夾中存儲所有的資源。什麼是資源?基本上,所有不是java代碼的都是資源。圖像、布局檔案、應用程式字元串、局部字元串、主題甚至動畫都放在res/檔案夾中。android使用目錄結構來隔離資源使得在不同裝置配置上都能使用。在hello world應用中,有3個drawable檔案夾:drawable-ldpi、drawable-mdpi和 drawable-hdpi,分别代表低、中、高密度的資源。運作時,android系統會基于裝置硬體選擇合适的資源。如果沒有資源能夠比對,它将會選擇最接近的比對資源。在第3章中對此将會有深入講解。

在布局中使用的常量值都放置在res/values/檔案夾下。你應當把所有的顔色、尺寸規格、風格以及字元串放置在此檔案夾中。在示例的hello world應用中,有一個單個的strings.xml檔案包含所有的應用中使用者可見的字元:

你不能使用java代碼或者xml布局檔案中的字元串常量。任何使用者可見的字元串都需要在strings.xml檔案中聲明。這使得你的資源随後進行本地化更加容易。在應用中可通過字元串元素的名稱屬性引用這些字元串。

res/layout/檔案夾也包含聲明應用程式布局的xml檔案。android ui可以通過xml或者java代碼建立。推薦使用xml建構布局,因為它能夠很好地把ui和應用邏輯分離開。不同的檔案夾名代表不同的布局檔案,以适配不同配置的裝置。