《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總結了工程結構。
1.2.2 Android Manifest
Android manifest包括應用程序的結構和功能的所有信息。它包括應用程序所使用的所有活動、所提供的服務、任何通過內容提供商可訪問的數據庫內容以及它處理的任何意圖。
在該manifest中你可以聲明應用要正常運行所需的硬件功能。舉個例子,如果應用需要觸屏設備才能夠正常運轉,那么在manifest中需要包括進下面這行:
`<uses-feature android:name=``"``android.hardware.touchscreen``"` `→ ``android:required=``"``true``"`` />`按照應用所需來聲明硬件功能使得Android Market可以根據用戶的硬件配置來合理地篩選應用。這樣沒有觸屏手機的用戶就不會下載到要求有觸摸屏才能正常運行的應用。
你應該努力使應用程序盡可能廣泛地兼容。列出應用需要使用的功能,通過代碼來動態決定它們的可用性并使得降低用戶體驗的方式盡可能保持優雅。
在該manifest中你同樣要聲明應用所需使用的權限。與硬件要求不同,所有運行應用所需的權限聲明都必須包括在manifest中。不存在有可選的聲明。
注意: 用戶對于要求權限過于寬泛的應用毫不留情。尤其是對于那些要求位置信息的應用。仔細考慮應用的權限需求,不要請求多余的權限。
應用程序使用的圖標和標簽也要在manifest中聲明。你可以把這些屬性賦給manifest中的許多XML元素。最重要的是頂層的<application>元素。它決定應用程序將如何在主界面以及應用頁展示。然而,圖標/標簽的組合并不只是適用于<application>元素。你可以把它們應用于權限元素之上,這將會在用戶確認安裝應用程序時展示出來。你也可以把它們置于<activity>元素,用戶將會在進程監視器中看到它們。這些元素能夠被任何子組件繼承。因此,如果已經設置好<application>圖標和標簽,但是<activity>和<intent>的圖標和標簽并沒有設置,那么這些元素將會默認使用<application>的圖標和標簽。此設置允許你使用特定組件的圖標和標簽來告知用戶應用程序的功能。
最后,manifest是聲明所支持的Android API版本的地方。正確地聲明API級別很重要,因為嘗試引用不支持的API將會導致你的應用程序崩潰。這也能很好地防止應用程序被安裝于未測試過的新的API版本。表1.2列出了更多關于API級別的信息。
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文件包含所有的應用中用戶可見的字符:
`<?xml version=``"``1.0``"`` encoding=``"``utf-8``"``?>` `<resources>` ` <string name=``"``hello``"``>Hello World, ExampleActivity!</string>` ` `` `` <string name=``"``app`_`name``"``>Example</string>` `</resources>`你不能使用Java代碼或者XML布局文件中的字符串常量。任何用戶可見的字符串都需要在strings.xml文件中聲明。這使得你的資源隨后進行本地化更加容易。在應用中可通過字符串元素的名稱屬性引用這些字符串。
res/layout/文件夾也包含聲明應用程序布局的XML文件。Android UI可以通過XML或者Java代碼創建。推薦使用XML構建布局,因為它能夠很好地把UI和應用邏輯分離開。不同的文件夾名代表不同的布局文件,以適配不同配置的設備。
總結
以上是生活随笔為你收集整理的《Android UI基础教程》——1.2节Android 应用程序的基本结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《编写可测试的JavaScript代码》
- 下一篇: 总结一些常用Android adb 命令