Android 知识要点整理(3)----AndroidManifest

Android 配置文件构成

<?xml version="1.0" encoding="utf-8"> <!-- 权限配置 --> <uses-permission/> <permission/> <permission-tree/> <permission-group/> <instrumentation/> <!-- 环境配置 --> <uses-sdk/> <uses-configuration/> <uses-feature/> <supports-screen/> <!-- 应用基本配置 --> <application> <!-- 界面组件配置 --> <activity> <intent-filter> <action/> <category/> <data /> </intent-filter> <meta-data/> </activity> <!-- 服务组件配置 --> <service> <intent-filter>...</intent-filter> <meta-data/> </service> <!-- 触发器组件配置 --> <receiver> <intent-filter>...</intent-filter> <meta-data/> </receiver> <!-- 数据源组件配置 --> <provider> <grant-uri-permission/> <meta-data/> </provider> <!-- 依赖库配置 --> <uses-library/> </application> 

权限配置

包含权限定义和权限声明两部分

  • 权限定义
 <uses-permission android:name="android.permission.READ_CONTACTS" />
  • 权限声明
<permission android:name="com.zna.test.permission.SAMPLE" android:label="权限的名字" android:description="具体描述" android:permissionGroup="android.permission-group.COST_MONEY" android:protectionLevel="normal"/>

权限定义中的标签描述会展示给用户;权限分组可以使用户更好地理解;权限分组可以通过<permission-group/>自行定义。
- 权限校验
组件管理i服务在构造一个组件对象时,会校验请求组件的权限声明是否与该组件的权限配置相匹配;权限也可以不事先部署在组件上,而是在运行时调用Context.checkPermission系列函数动态校验。
- 单向权责关系
Android权限体系,需要组件使用者事先知晓被使用组件的权限状况。
- 权限赦免机制
在Intent对象的标志位中,可以添加Intent.FLAG_GRANT_READ_URI_PERMISSION等相关标识位,临时允许被调用的组件跳过权限约束,直接访问特定URI路径下的资源信息。

环境配置

每个应用都有它所依赖的软硬件环境,这些都需要在配置文件中生命。

  • 依赖SDK
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19"/>
  • 依赖外设
<uses-feature android:name="android.hardware.camera"/>
  • 依赖输入设备
<uses-configurationandroid:reqFiveWayNav="true" android:reqTouchScreen="finger" android:reqKeyboardType="qwerty"/>

<uses-configurationandroid:reqFiveWayNav="true" android:reqTouchScreen="finger" android:reqKeyboardType="twelvekey"/>
  • 依赖屏幕设置
<supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] android:anyDensity=["true" | "false"] android:requiresSmallestWidthDp="integer" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer"/>

应用组件配置

  • 基本信息描述
    组件类名,名字,图标等。
  • 接口描述
    通过意图机制进行连接,可以放置若干个<intent-filter>,表达该组件可以处理的Inten对象。
  • 运行模型描述
    默认情况下,各个组件都会运行于应用的主进程中;在一些特殊情况下,需要把组件放到特定的进程去执行,可以通过process项来设置。
  • 权限描述
    配置自定义的权限。
  • 元数据描述
    键值对信息,主要用于告诉系统为组件附加一些系统功能。
  • 可用性描述
  • enable 设置组件的可用状态,exported设置是否可以被其他应用使用。
  • 依赖库描述
    用于声明需要链接的附加类库;这些类库属于SDK中的可选部分,不一定在每一个Android设备中都包含。系统中若不包含该类库时,应用会在运行时崩溃。

你可能感兴趣的:(Android 知识要点整理(3)----AndroidManifest)