AndroidManifest.xml元素详解
2013-10-25 15:35
585 查看
<?xml version="1.0" encoding="utf-8"?> <manifest> <!-- 基本配置 --> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <compatible-screens /> <supports-gl-texture /> <!-- 应用配置 --> <application> <!-- Activity 配置 --> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias> <intent-filter> . . . </intent-filter> <meta-data /> </activity-alias> <!-- Service 配置 --> <service> <intent-filter> . . . </intent-filter> <meta-data/> </service> <!-- Receiver 配置 --> <receiver> <intent-filter> . . . </intent-filter> <meta-data /> </receiver> <!-- Provider 配置 --> <provider> <grant-uri-permission /> <meta-data /> </provider> <!-- 所需类库配置 --> <uses-library /> </application> </manifest>
1. <manifest> </manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > . . . </manifest>
它必须包含以下两个属性:
1) xmlns:android
2) package
2. <uses-permission />申请权限
<uses-permission android:name="string" />
申请程序正常运行所必须的权限,在安装时由用户授予。
android:name可以其它应用程序通过<permission />定义的权限;也可以是系统定义的权限,如:
"android.permission.CAMERA" or "android.permission.READ_CONTACTS"
3. <permission />定义权限
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />
4. <uses-sdk />
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
"interger"为API Level。
5. <supports-screens />
<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"/>
6. <compatible-screens> </compatible-screens>
<compatible-screens> <screen android:screenSize=["small" | "normal" | "large" | "xlarge"] android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] /> ... </compatible-screens>
Android系统在安装或运行时,都不会读取<compatible-screens>元素。此元素被外部服务(如Google Play)使用,以更好地理解应用程序与屏幕配置的兼容性,并且为用户进行过滤。示例如下:
<manifest ... > ... <compatible-screens> <!-- all small size screens --> <screen android:screenSize="small" android:screenDensity="ldpi" /> <screen android:screenSize="small" android:screenDensity="mdpi" /> <screen android:screenSize="small" android:screenDensity="hdpi" /> <screen android:screenSize="small" android:screenDensity="xhdpi" /> <!-- all normal size screens --> <screen android:screenSize="normal" android:screenDensity="ldpi" /> <screen android:screenSize="normal" android:screenDensity="mdpi" /> <screen android:screenSize="normal" android:screenDensity="hdpi" /> <screen android:screenSize="normal" android:screenDensity="xhdpi" /> </compatible-screens> <application ... > ... <application> </manifest>
7. <supports-gl-texture />
<supports-gl-texture android:name="string" />
宣布应用程序支持“a single GL texture compression format”,应用程序可以提供本地的压缩资源(在.apk中),或应用程序在运行时从服务器下载。实例如下:
<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" /> <supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />
android:name可使用的值如下表所示:
8. <application> </application>
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:backupAgent="string" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:hasCode=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requiredAccountType="string" android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:vmSafeMode=["true" | "false"] > . . . </application>
它可以包含:
<activity>
<activity-alias>
<service>
<receiver>
<provider>
<uses-library>
• android:hardwareAccelerated
当绘制应用的所有activities和views时,是否启用了硬件加速。
默认值:"true": 如果minSdkVersion or targetSdkVersion大于等于14
"false":如果minSdkVersion or targetSdkVersion小于14
• android:permission
需要与此应用交互的客户端必须具有的权限。
• android:persistent
标志应用是否一直运行。普通应用程序通常不应该设置为"true",此模式是为特定的系统应用程序所用。
• android:process
所有应用组件应当在进程名由android:process指定的进程中运行。每个组件也可以指定它所运行的进程名。
当应用中的组件第一次需要运行时,Android系统默认为为它创建一个进程,且进程名为“package name”。
如果两个应用运行在同一个进程,则它们必须具有相同的userID和签名。
8. <activity> </activity>
<activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "screenSize", "smallestScreenSize"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:launchMode=["multiple" | "singleTop" | "singleTask" | "singleInstance"] android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:permission="string" android:process="string" android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:stateNotNeeded=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > . . . </activity>
它可以包含:
<intent-filter>
<meta-data>
Activity活动组件(即界面控制器组件)的声明标签,Android应用中的每一个Activity都必须在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。<activity>标签中常用的属性有:Activity对应类名android:name,对应主题android:theme,加载模式android:launchMode,键盘交互模式android:windowSoftInputMode等。
9. <activity-alias> </activity-alias>
<activity-alias android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:targetActivity="string" > . . . </activity-alias>
它可以包含:
<intent-filter>
<meta-data>
10. <service> </service>
<service android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > . . . </service>
它可以包含:
<intent-filter>
<meta-data>
相关文章推荐
- AndroidManifest.xml元素详解
- AndroidManifest.xml文件详解
- AndroidManifest.xml文件详解
- AndroidManifest.xml文件详解
- AndroidManifest.xml配置文件详解
- AndroidManifest.xml文件详解(application)
- AndroidManifest.xml文件详解(uses-sdk)
- 【转载】51CTO-AndroidManifest.xml文件详解
- Android Manifest.xml详解
- AndroidManifest.xml配置文件详解 .
- AndroidManifest.xml文件详解(uses-feature)
- AndroidManifest.xml 详解 2 配置 详解
- Android AndroidManifest.xml文件的android:supportsRtl属性详解
- AndroidManifest.xml详解(上)
- AndroidManifest.xml文件综合详解(此文出处:http://yangguangfu.iteye.com/blog/796062)
- android程序中的AndroidManifest.xml中的uses-feature详解
- AndroidManifest.xml中uses-sdk配置详解
- AndroidManifest.xml之元素manifest
- AndroidManifest.xml清单文件详解--application节点
- AndroidManifest.xml清单文件详解--instrumentation节点