【Android開發日記】之入門篇(十)——Android應用配置文件解析


在Android基於組件的應用設計架構中,配置文件是一個很重要的元素。它將應用所包含的組件、各組件的能力和配置以及應用環境介紹給Android框架層的各個服務,讓Android知道如何去調度應用中的各個組件。Android的配置文件就像一本書的目錄,它會告訴我們里面有什么內容。

 

一、權限設置

應用通過配置文件聲明其所需權限,以訪問其應用或系統中的受限資源。這些權限聲明會在應用安裝時告知用戶,用戶可以根據這些信息決定是否要安裝該應用。

添加權限,如

    <!-- 添加讀取聯系人記錄的權限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />

如果開發者需要定義權限來限制第三方應用的訪問,則可以通過<permission>配置項來進行定義,在上次的廣播組件中有過一次應用,不知道大家還記得否。

    <permission 
        android:name="com.example.test"
        android:label="權限的名字"
        android:description="權限的具體描述"
        android:permissionGroup="android.permission-group.COST_MONEY"
        android:protectionLevel="normal">
    </permission>

定義了的權限還需要部署到對應的組件上才能生效。組件管理系統在構造一個組件對象時,會檢驗請求組件的權限聲明是否與該組件的權限配置相匹配,如果匹配失敗,會拋出異常阻止這次調用。

二、環境配置

每個應用都會有它所依賴的軟硬件環境。有點應用實現會依賴特定版本的SDK,而有的應用則需要一些特定硬件的支持。應用所依賴的軟硬件信息,都需要在配置文件的環境配置部分聲明。

使用配置項<uses-sdk>,可以聲明應用所依賴的SDK版本信息。而<users-feature>配置項,則用於聲明應用所依賴的外設或Android的特色功能。比如,一款主打拍照功能的應用需要聲明所安裝設備要有相機

<uses-feature android:name="android.hardware.camera"/>

此外,<uses-configuration>配置項,用於描述應用所需的輸入設備配置;<supports-screens>配置項,用於聲明應用所依賴的屏幕設置。對輸入或顯示有特殊需求的應用,都需要聲明這些配置項。

三、應用和組件配置

配置文件的核心部分就是對應用及其各組件的特征的描述。應用中的各個組件都會有其調用和運行的需求,在配置文件中需要對這些信息進行描述,幫助Android系統服務知曉如何調度這些組件。配置文件對組件的描述,主要包括幾個方面。

(1)基本信息描述
每個組件都會有一些最基本的配置信息,包括該組件對應的實現類名name、組件名字label、組件圖標icon等。

(2)接口描述
每個組件的功能都是在配置文件中進行描述的。界面組件,服務組件和廣播組件都是通過Android的Intent進行連接的每個組件的配置信息中,都可以放置若干個<intent-filter>項,表達該組件可以處理的Intent對象。

(3)運行模型描述
在默認情況下,各個組件都會運行與應用的主線程中;在一些特殊情況下,需要將某些組件放在特定的進程中執行,可以通過process項來設置。

(4)權限描述
通過組件的permission參數進行設置。

(5)元數據描述
任意存放鍵值對信息,主要用於告知系統為組件附加一些系統功能。比如,如果想為組件綁定特定的搜索模塊,就可以通過<meta-data>進行配置。

(6)可用性描述
某些參數在應用安裝后會處於不可用的狀態。這就需要通過組件配置中的enable參數進行設置。而某些組件僅能被應用本身使用,就需要將exported參數設為false。

除此以外,還有<uses-library>,用於聲明應用需要鏈接的附加類庫。

 

額,這篇算是組件部分的附加篇吧,讓大家了解如何在配置文件中注冊組件以及其他信息。

參考文章:AndroidManifest.xml配置文件詳解  http://blog.chinaunix.net/uid-9185047-id-3460344.html

========================================

作者:cpacm

地址:http://www.cnblogs.com/cpacm/p/3935268.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM