Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android Manifest.xml文件結構說明

Android Manifest.xml文件結構說明

編輯:Android開發實例

作為一個在工作中使用Visual Studio工具的程序員,我對Manifest這個文件並不陌生,它是對應用程序的說明,包括運行權限、界面主題等。在VS中有可視化的設置界面,開發人員只需要進行簡單的操作,就會自動形成這個文件,所以在通常情況下,很多VS開發人員其實並不都知道Manifest.xml文件的存在,更不用說了解它的作用了。

而在Eclipse開發工具中,似乎找不到類似的可視化的設置界面,而每個Android的application都必須包含一個AndroidManifest.xml,且文件名是固定的,不能修改。應用程序需要通過它向Android系統提供一些必需的信息,且需要在application運行前提供給系統,如下圖所示:

AndroidManifest.xml的功能介紹

AndroidManifest.xml主要包含以下功能:

  • 說明application的java 數據包,數據包名是application的唯一標識;
  • 描述application的component;
  • 說明application的component運行在哪個process下;
  • 聲明application所必須具備的權限,用以訪問受保護的部分API,以及與其他application的交互;
  • 聲明application其他的必備權限,用以component之間的交互;
  • 列舉application運行時需要的環境配置信息,這些聲明信息只在程序開發和測試時存在,發布前將被刪除;
  • 聲明application所需要的Android API的最低版本級別,比如1.0,1.1,1.5;
  • 列舉application所需要鏈接的庫;

AndroidManifest.xml的結構和規則

AndroidManifest.xml文件的結構、元素,以及元素的屬性,可以在Android SDK文檔中查看詳細說明。而在看這些眾多的元素以及元素的屬性前,需要先了解一下這些元素在命名、結構等方面的規則:

  • 元素:在所有的元素中只有<manifest>和<application>是必需的,且只能出現一次。如果一個元素包含有其他子元素,必須通過子元素的屬性來設置其值。處於同一層次的元素,這些元素的說明是沒有順序的。
  • 屬性:按照常理,所有的屬性都是可選的,但是有些屬性是必須設置的。那些真正可選的屬性,即使不存在,其也有默認的數值項說明。除了根元素<manifest>的屬性,所有其他元素屬性的名字都是以android:前綴的;
  • 定義類名:所有的元素名都對應其在SDK中的類名,如果你自己定義類名,必須包含類的數據包名,如果類與application處於同一數據包中,可以直接簡寫為“.”;
  • 多數值項:如果某個元素有超過一個數值,這個元素必須通過重復的方式來說明其某個屬性具有多個數值項,且不能將多個數值項一次性說明在一個屬性中;
  • 資源項說明:當需要引用某個資源時,其采用如下格式:@[package:]type:name例如 <activity android:icon=”@drawable/icon ” . . . >
  • 字符串值:類似於其他語言,如果字符中包含有字符“\”,則必須使用轉義字符“\\”;

實例說明

這裡,結合我們的flashlight實例中的AndroidManifest.xml文件來說明一下,原XML文件如下:

<?xml version=”1.0″ encoding=”utf-8″?>

<manifest xmlns:android=”http://schemas.android.com/apk/res/android”

package=”moandroid.flashlight”

android:versionCode=”1″

android:versionName=”1.0″>

<application android:icon=”@drawable/icon” android:label=”@string/app_name”>

<activity android:name=”.flashlight” android:label=”@string/app_name”>

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

</application>

<uses-sdk android:minSdkVersion=”3″ />

</manifest>

除去頭部XML信息說明,首先是manifest項—根節點,其屬性包括:schemas URL地址、包名(moandroid.flashlight),以及程序的版本說明。其次是manifest的子節點application,其屬性包括:程序圖標、程序名稱。前面帶有@表示引用資源,例?a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="59befae3193d2b382e383b353c">[email protected]/icon表示引用的是drawable資源中的icon,可以在其源工程的res/drawable中找到。然後就是application的子節點activity,其屬性包括:activity的名稱、activity的標簽名,其子節點intent-filter則是對activity的說明。

而在intent-filter中,action android:name=”android.intent.action.MAIN”和category android:name=”android.intent.category.LAUNCHER”用以說明程序啟動時的入口activity是哪個。如果這兩個屬性值中分別含有MAIN和LAUNCHER,則說明它就是啟動程序時的入口活動。如果想完全了解application與activity項的說明,就需要更為深入的了解和學習Android,這裡因篇幅限制暫且不提。

uses-sdk android:minSdkVersion=”3″說明程序使用的Android SDK的最低版本,其中1表示Android 1.0,2表示Android 1.1,而3則表示Android 1.5。

在Eclipse中創建工程後,會自動生成一個AndroidManifest.xml文件。在代碼編寫的過程中,需要同時修改AndroidManifest.xml,如果配置出現錯誤會導致程序不能正常運行。

其他更為詳細的元素、屬性以及值的說明,可查閱Android SDK開發指南中的詳細內容。

地址如下:

http://developer.android.com/guide/topics/manifest/manifest-intro.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved