在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

更多相关文章

  1. Android省市区三级联动滚轮选择(真实项目中提取出来的组件)
  2. Android 菜鸟认知总结——Android初印象之系统架构和app 组件
  3. (一)Android应用程序及组件简介
  4. Android中各种组件的生命周期
  5. Android Studio 第六十五期 - Android业务组件库
  6. android:sharedUserId="android.uid.system" 系统级权限并重新系
  7. Android 左右侧滑组件
  8. 如何使Android应用程序获取系统权限
  9. android开发之权限问题整理

随机推荐

  1. Android新特性介绍
  2. 多式样ProgressBar
  3. 图片中的毕加索【Picasso】
  4. android ndk 04 C语言 结构体_结构体指针
  5. 31.Android(安卓)MVP模式
  6. Android返回键处理(事件)
  7. AndServer,一个Android端的web服务器
  8. 〖Android〗把CM(Android)源代码导入ecli
  9. Android(安卓)Chromium for WebView代码
  10. Eclipse下加载Android(安卓)SDK源码