成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android SDK上手指南:項目清單

譯文
移動開發 Android
對于一個項目來說,清單既可以很簡單、也可以很復雜,其具體情況要視應用程序而定。我們首先看看清單中那些在所有應用中都不可或缺的組成部分,再進一步探索未來在項目開發中可能涉及的備選組成部分。

在本系列教程當中,我們將共同從零開始學習Android開發,同時了解與這套移動平臺協作所必需的基礎概念及實踐。到目前為止,我們已經熟悉了Android項目中的各個組成部分,包括其資源。在今天的文章中,我們將以項目清單文件作為核心內容。

介紹

對于一個項目來說,清單既可以很簡單、也可以很復雜,其具體情況要視應用程序而定。我們首先看看清單中那些在所有應用中都不可或缺的組成部分,再進一步探索未來在項目開發中可能涉及的備選組成部分。

清單文件當中可以包含眾多元素與屬性,我們不妨點擊此處在Android開發者指南當中找到關于它們的詳細信息。清單擁有幾大主要作用:它指定應用程序包、提供應用組件的形式化描述,此外還負責聲明權限、必要的API級別以及鏈接庫等。我們目前只討論能夠在清單中列出的最為基礎的元素與屬性,但大家也要知道其中完全可以容納更多元素、并在所涵蓋的元素范圍之外使用更多附加屬性。

1. 清單元素

在Eclipse當中打開我們的項目清單文件——大家總能在項目的根目錄下找到這份清單。正如前面所提到,大家可以通過多種方式查看清單內容。在底部的編輯器區域中,大家可以看到清單、應用、權限、工具以及XML代碼等多個標簽。現在快速瀏覽這些標簽——我們需要使用XML代碼,所以請切換到“AndroidManifest.xml”標簽。

清單文件中所顯示的元素是由Eclipse在我們創建項目的同時生成的。但這些只夠滿足簡單應用的需求,在大多數情況下、我們還需要在創建項目時向清單中添加更多元素。文件中的根元素為manifest元素:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     package="com.example.myfirstapp" 
  3.     android:versionCode="1" 
  4.     android:versionName="1.0" > 
  5. </manifest> 

Eclipse會在項目創建時將大家所選擇的包名稱作為manifest元素的屬性。版本代碼與名稱初始分別為1與1.0。當大家將應用程序提交到Play商店中并進行后續次級版本更新時,需要為每一次更新分配一個更新數字。版本名稱是用戶們在Play商店中所看到的應用程序的實際名稱,所以大家可以隨意使用自己喜歡的數字來表示。用戶們是無法看到版本代碼的,而且新版本的數字必須高于舊版本——不過每一次遞增的幅度并不固定。如果大家嘗試向Google Play軟件商店上傳新的應用程序版本,但其版本代碼并未高于之前版本的代碼,那么Play商店將拒絕這一上傳操作。

2. Uses-SDK元素

我們在manifest元素當中首先見到的應該是uses-sdk元素:

  1. <uses-sdk 
  2.     android:minSdkVersion="8" 
  3.     android:targetSdkVersion="18" /> 

這一元素負責定義最低必要API級別以及大家在測試項目時所設定的目標級別。我們在創建應用程序時就需要選擇這些相關值。如果需要,大家也可以在項目創建完成后,通過修改清單文件內容進行屬性變更。舉例來說,大家可能發現自己需要使用某些當前選定API級別無法實現的平臺功能,這時就需要通過清單文件作出調整了。如果大家改變了SDK版本,Eclipse會重新建立整個項目。

如果用戶設備所運行的API級別低于項目的最低要求,則無法下載并安裝我們的應用程序。列出目標API級別代表著我們已經對當前應用版本進行過測試。為保證應用產品的可靠性,大家應該在盡可能多的API級別之下進行應用程序測試。

3. Application元素

Eclipse還會向我們的清單中插入application元素。該元素中包含多種子元素,我們將在稍后逐一討論。現在先來看看打開標簽后的內容:

  1. <application 
  2.     android:allowBackup="true" 
  3.     android:icon="@drawable/ic_launcher" 
  4.     android:label="@string/app_name" 
  5.     android:theme="@style/AppTheme" > 

需要注意的幾種主要屬性分別為圖標、標簽和主題條目。該元素還能夠承載多種附加屬性。圖標屬性代表應用可繪制資源中的某個文件。在默認情況下項目會直接使用Android圖標,但大家可以添加自己的圖標文件并將其引用到這里。標簽圖標引用的同樣是來自應用程序資源的字符串。打開名稱中包含“res/values”字符串XML文件,大家會看到被引用的字符串,內容如下所示:

  1. <string name="app_name">MyFirstApp</string> 

這應該是一條可讀字符串,因為它會顯示在用戶界面中的多個位置,包括緊靠著啟動圖標的設備菜單。大家通常需要變更上述字符串內容,例如在表述中加入空格——即“My First App”。

回到清單文件當中,請注意application元素的主題屬性。它同樣引用一種資源,大家可以在“res/values”類型的XML文件中找到其具體引用關系,馬上去看看吧。接下來切換回清單標簽。如果大家稍后決定定義自己的應用程序風格,則可以在主題屬性當中對其加以引用。

4. Activity元素

在application元素當中,大家會看到一項activity元素——它對應著我們在項目開發中所創建的Activity類。在activity元素中包含有多種子元素,我們稍后再詳加討論。現在先來看看打開后的標簽內容:

  1. <activity 
  2.     android:name="com.example.myfirstapp.MainActivity" 
  3.     android:label="@string/app_name" > 

名稱屬性利用應用程序包中所限定的路徑引用對應類。標簽允許我們控制Activity啟用時、窗口標題中的顯示內容。在默認情況下,窗口標題往往就是應用程序名稱,因此大家一般不需要再進行額外調整。不過隨著應用程序復雜性的提高,大家將向項目中添加更多Activity——每一個對應UI中的一套屏幕顯示方案。每一次向應用程序中添加新的Activity類時,大家都需要在application元素中添加一個對應子元素,如下所示:

  1. <activity android:name=".About" > 
  2. </activity> 

如大家所見,我們并不總是需要使用完整的應用包名稱。上面展示的簡寫形式也能正常起效,只要Activity類(名稱為‘About’)仍然處于manifest元素所定義的應用包當中即可。Activity元素能夠容納多種屬性,從而決定用戶如何與其進行交互。

5. 意圖過濾器

在主activity元素當中,大家會看到一個intent-filter元素:

  1. <intent-filter> 
  2.     <action android:name="android.intent.action.MAIN" /> 
  3.     <category android:name="android.intent.category.LAUNCHER" /> 
  4. </intent-filter> 

這里的Intent Filter用于描述主activity能夠響應哪些“意圖”。在Android系統中,所謂意圖是指在Activity啟動時向其傳遞的數據對象。當大家在自己的應用程序中啟用一個又一個Activity時,就需要使用到意圖機制了——不過意圖也可以在不同應用之間進行傳遞。

針對主activity的意圖過濾器代表前者應該在應用程序運行時被一并啟用。意圖是通過action元素實現這一效果的,也就是上述代碼中的“MAIN”操作。另外,category元素旨在通過分類名稱描述意圖過濾器,在我們的示例中就是“LAUNCHER”。這兩種元素相結合意味著我們的應用程序應該利用Activity作為其主入口點,而且該入口點將在應用程序運行時一并啟動。

意圖過濾器當中可以包含多種子元素,其中包括數據規范。如果大家希望了解更多信息,可以點擊此處查看Android開發者指南中的“意圖與意圖管理器”章節。在activity元素中,除了intent-filter之外還可以包含其它子元素——例如metadata,其作用是定義一個數據條目的名值對。

6. 用戶權限

我們已經了解了創建項目時Eclipse當中所包含的所有清單元素,現在再來看看今后開發復雜應用時需要涉及的其它元素。某些應用程序需要判斷用戶是否有權執行特定操作或者查看特定內容,這種與權限相關的功能要靠uses-permission元素來實現。當用戶在Play軟件商店中查看我們的應用時,該平臺會在應用下載前顯示使用全部功能所必需的權限。如果用戶選擇繼續,則需要接受權限控制提示,而后應用才能正常運行。 在清單當中必須強制要求的權限包括使用內部數據、寫入外部存儲以及訪問攝像頭等設備功能。我們通過以下示例代碼演示這一概念:

  1. <uses-permission android:name="android.permission.INTERNET" /> 

應用程序還可以強制要求其它幾種潛在權限,請大家點擊此處查看API引用說明中的“Manifest.permission”部分。

7. 用戶設備

有這樣一類清單元素可以被用于描述應用程序運行所必需的硬件及軟件功能,其中包括uses-configuration元素。在該元素中,大家可以為導航、鍵盤以及觸摸屏選項指定相關要求。在uses-feature元素中,大家可以通過功能名稱與布爾標記列舉關于硬件或者軟件的單一功能要求。這些功能包括藍牙與攝像頭選項,例如閃存、位置檢測以及傳感器。而supports-screens元素則允許大家為應用程序定義所支持的屏幕尺寸,所指定的元素可同時涉及尺寸與像素密度。

8. 其它元素

我們前面所探討的元素主要圍繞著自己的初始應用展開,但其它不同類型的應用中也有一些元素值得關注。我們為標準應用所創建的初始項目在啟動后只涉及用戶菜單并為使用者提供一個或者多個Activity屏幕。然而其它類型的應用還可能包括功能部件以及持續運行的后臺進程——旨在處理數據訪問或者接收系統通知。

應用程序通常會利用Android系統中的Service類來處理后臺進程,這就要求我們在清單當中添加service元素——與Activity類似,service元素與Service類之間一一對應。Android應用中的內容提供器負責管理對數據源的訪問,具體內容被列入provider元素當中。最后,清單中的receiver元素旨在幫助應用接收來自其它應用或者操作系統本身的意圖。

結論

到這里,我們已經闡述了Android應用的清單文件中,最為基礎的各項功能。當大家創建應用程序時,Eclipse都會同時向清單文件中添加初始項目必需的主要元素。隨著在應用中引入更多功能,我們需要不斷向清單內增加新內容以確保應用程序整體能夠順利起效。如果大家在開發過程中的實機或者虛擬設備測試出現了問題,很可能是因為清單中缺少某些必要元素。在下一篇系列教程中,我們將一同了解Android應用如何存儲及訪問數據。

原文鏈接: http://mobile.tutsplus.com/tutorials/android/android-sdk-project-manifest/

責任編輯:張葉青 來源: 51CTO
相關推薦

2013-12-26 15:40:33

Android SDK項目

2014-01-22 10:00:10

Android SDKAndroid開發

2013-12-04 14:44:41

Android SDK用戶交互

2013-12-26 15:14:38

Android SDK運行調試

2013-12-26 14:52:52

Android SDK物理設備

2013-12-04 14:29:18

Android SDK應用程序

2013-12-26 15:47:59

Android SDK應用程序

2013-11-27 10:12:11

2013-12-26 15:26:48

Android SDKActivity生命周期

2013-12-04 15:11:03

Android SDK應用程序

2014-03-16 09:21:39

Android開發Android SDK

2013-12-04 15:20:33

Android SDK應用程序

2013-12-04 13:51:38

Android SDK應用程序

2014-06-24 09:41:56

Android Stu教程

2014-02-28 11:01:22

Android開發Android SDK

2021-01-26 08:37:18

MobXVueReact

2025-05-28 15:46:13

2024-01-29 00:36:50

Backstage設施工具

2016-06-20 10:20:22

Docker云計算

2021-11-26 09:40:37

EclipseIDEA開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 爱草视频| 亚洲欧美综合 | 黄色毛片黄色毛片 | 国产成人精品久久二区二区91 | 成人精品一区二区三区中文字幕 | 99资源| 欧美性生活一区二区三区 | 888久久久| 欧美在线 | 中文字幕爱爱视频 | 91av在线不卡 | 日韩精品在线一区 | 91视频精选 | 色橹橹欧美在线观看视频高清 | 国产一级片免费看 | 狠狠爱网址 | 免费看国产精品视频 | 亚洲欧洲日韩精品 中文字幕 | 欧美老少妇一级特黄一片 | 久久久久久国产精品mv | 亚洲一区二区三区四区五区中文 | 在线观看黄色电影 | 国产激情在线看 | 久久专区| 欧美不卡一区二区三区 | 欧美激情国产日韩精品一区18 | 日韩午夜一区二区三区 | 神马久久春色视频 | 国产精品视频 | 日韩精品在线观看一区二区三区 | 午夜视频在线免费观看 | 一级黄a视频 | 日韩精品不卡 | 日韩一区二区三区在线播放 | 777zyz色资源站在线观看 | 国产精品久久国产精品 | 黄网站在线播放 | 国产美女自拍视频 | 国产99精品 | 黄色大片在线视频 | 欧美成人h版在线观看 |