您的位置:首页 > 移动开发 > Android开发

AndroidManifest.xml 主配置清单文件 各句解释

2014-08-17 17:43 666 查看
2014-08-17

自动生成文件

<?xml version="1.0" encoding="utf-8"?>
<!-- package="com.example.helloworld"      包名 -->
<!-- android:versionCode="1"                     版本号 -->
<!--
android:installLocation="auto"    自动寻找安装路径,ROM或SDcard,默认
internalOnly  只能安装ROM上
preferExternal  安装在SD卡上
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.halloworld"
android:versionCode="1"
android:versionName="1.0" >

<!--android:versionName="1.0"   版本名称 -->

<!-- android:minSdkVersion="8"          运行的安卓最低版本 -->
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<!-- 运行的安卓最高版本 -->

<!-- application:表示应用程序的配置 只能包含一个 -->
<!-- android:allowBackup="true"             允许备份 -->
<!-- android:icon="@drawable/ic_launcher"    设置图标,@表示R.java -->
<!-- android:label="@string/app_name"      程序名称,标题 -->
<!-- android:theme                    主题 -->
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<!--activity:配置文件中要使用的activity文件  -->
<!-- android:name="com.example.helloworld.MainActivity"         activity的类名 -->
<!-- 每增加一个Activity就要在这里写一个<activity> -->
<activity
android:name="com.example.halloworld.MainActivity"
android:label="@string/app_name" >

<!-- 程序名称 -->
<!-- intent-filter      意图过滤器:用来过滤用户的一些动作和操作 -->
<intent-filter>    <!-- intent-filter:程序一执行就运行此Activity -->
<action android:name="android.intent.action.MAIN" />
<!-- "android.intent.action.MAIN"决定最先启动的activity -->

<category android:name="android.intent.category.LAUNCHER" />
<!-- 决定程序是否显示在程序列表里 -->
</intent-filter>
</activity>
</application>

</manifest>


Android配置文件中主要元素与标签

<?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>


Android配置文件中主要元素与标签的用法

<?xml version="1.0" encoding="utf-8"?>

<manifest>     <!--  AndroidManifest.xml配置文件的根元素,必须包含一个<application>元素并且指定xlmns:android和package属性。 -->
<!-- 标签语法范例 -->
<!--  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
<!-- xlmns:android指定了Android的命名空间,默认情况下是“http://schemas.android.com/apk/res/android”;
package="string"            <!-- package是标准的应用包名,也是一个应用进程的默认名称,
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"           <!-- android:versionCode是给设备程序识别版本用的,必须是一个整数值代表app更新过多少次; --
android:versionName="string"            <!-- android:versionName则是给用户查看版本用的,需要具备一定的可读性,比如“1.0.0”这样的 --
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >   -->

<!-- 基本配置 -->
<uses-permission />     <!-- 权限设定标签 -->
<!-- <!-- 网络相关功能
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 读取电话状态
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- 通知相关功能
<uses-permission android:name="android.permission.VIBRATE" /> -->
<permission />      <!-- 权限声明标签,定义了供给<uses-permission>使用的具体权限 -->
<!-- 通常情况下我们不需要为自己的应用程序声明某个权限,除非需要给其他应用程序提供可调用的代码或者数据,这个时候你才需要使用<permission>标签。 -->
<!-- 可以和<permission-group>以及<permission-tree>配合使用来构造更有层次的、更有针对性权限系统 -->
<!-- 标签语法范例 -->
<!-- <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"] /> -->
<permission-tree />
<permission-group />
<instrumentation />         <!-- 用于声明Instrumentation测试类来监控Android应用的行为并应用到相关的功能测试中 -->
<!-- Instrumentation对象是在应用程序的组件之前被实例化的,这点在组织测试逻辑的时候需要被考虑到 -->
<!-- 标签语法范例 -->
<!-- <instrumentation android:functionalTest=["true" | "false"]     测试功能开关
android:handleProfiling=["true" | "false"]                  调试功能开关
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:targetPackage="string" />                       测试用例目标对象-->
<uses-sdk />            <!-- 用于指定Android应用中所需要使用的SDK的版本 -->
<!-- 语法范例 -->
<!-- <uses-sdk android:minSdkVersion="integer"
android:targetSdkVersion="integer"      目标版本
android:maxSdkVersion="integer" /> -->
<uses-configuration />      <!-- <uses-configuration>与<uses-feature>这两个标签都是用于描述应用所需要的硬件和软件特性 -->
<!-- 语法范例 -->               <!-- 主要用于支持一些特殊的设备中的应用, -->
<!-- <uses-configuration android:reqFiveWayNav=["true" | "false"]       设备带有D-pad或者Trackball这些特殊硬件,就需要设置为true
android:reqHardKeyboard=["true" | "false"]                      带有硬件键盘,需要被设置为true
android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] /> -->
<uses-feature />
<!-- 语法范例 -->
<!-- <uses-feature android:name="string"        如果设备需要支持蓝牙,可以使用<uses-feature android:name="android.hardware.bluetooth" />来支持这个功能
android:required=["true" | "false"]
android:glEsVersion="integer" /> -->
<uses-library>              <!-- 用于指定Android应用可使用的用户库,除了系统自带的android.app、android.content、android.view和android.widget这些默认类库之外,有些应用可能还需要一些其他的Java类库作为支持, -->
<!-- 这种情况下我们就可以使用<uses-library>标签让ClassLoader加载其类库供Android应用运行时用。<uses-library>标签的用法很简单, -->
<!-- 语法范例 -->
<!-- <uses-library android:name="string"
android:required=["true" | "false"] /> -->
<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"/> -->
<compatible-screens />
<supports-gl-texture />

<!-- 应用配置 -->
<application>                 <!-- 应用配置的根元素,位于<manifest>下层,包含所有与应用有关配置的元素,其属性可以作为子元素的默认属性, -->
<!-- 语法范例 -->
<!-- <application android:allowTaskReparenting=["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: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:taskAffinity="string"
android:theme="resource or theme" >                    应用主题-->

<!-- Activity 配置 -->
<activity>              <!--  Activity活动组件(即界面控制器组件)的声明标签,Android应用中的每一个Activity都必须在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。 -->
<!-- <activity>标签还可以包含用于消息过滤的<intent-filter>元素,可用于存储预定义数据的<meta-data>元素 -->
<!-- 语法范例 -->
<!-- <activity android:allowTaskReparenting=["true" | "false"]
android:alwaysRetainTaskState=["true" | "false"]
android:clearTaskOnLaunch=["true" | "false"]
android:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation", "orientation", "screenLayout",
"fontScale", "uiMode"]
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"                                   Activity对应类名
android:noHistory=["true" | "false"]
android:permission="string"
android:process="string"
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nosensor"]
android:stateNotNeeded=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"                       对应主题
android:windowSoftInputMode=["stateUnspecified",        键盘交互模式
"stateUnchanged", "stateHidden",
"stateAlwaysHidden", "stateVisible",
"stateAlwaysVisible", "adjustUnspecified",
"adjustResize", "adjustPan"] >    -->
<intent-filter>                 <!-- 用于Intent消息过滤器的声明 -->
<!-- <intent-filter>元素可以放在<activity>、<activity-alias>、<service>和<receiver>元素标签中,
来区分可用于处理消息的Activity控制器、Service服务和广播接收器Broadcast Receiver -->
<action />                  <!-- 用于描述具体消息的名称 -->
<category />                <!-- 用于表示能处理消息组件的类别 -->
<data />                    <!-- 用于描述消息需要处理的数据格式,可以使用正则表达式来限定数据来源 -->
</intent-filter>
<!-- 语法范例 -->
<!-- <intent-filter android:icon="drawable resource"
android:label="string resource"
android:priority="integer" >
<action android:name="string" />
<category android:name="string" />
<data android:host="string"
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string" />
</intent-filter> -->
<meta-data />           <!-- 用于存储预定义数据 -->
</activity>

<activity-alias>                <!-- Activity组件别名的声明标签,简单来说就是Activity的快捷方式, -->
<!-- Activity别名也是一个独立的Activity,可以拥有自己的<intent-filter>和<meta-data>元素 -->
<!-- 语法范例 -->
<!-- <activity-alias android:enabled=["true" | "false"]     别名开关
android:exported=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"                           Activity别名名称
android:permission="string"                     权限控制
android:targetActivity="string" >               其相关的Activity名-->
<intent-filter> . . . </intent-filter>
<meta-data />           <!-- 用于存储预定义数据, -->
<!-- 和<intent-filter>类似,<meta-data>也可以放在<activity>、<activity-alias>、<service>和<receiver>这四个元素标签中。
Meta数据一般会以键值对的形式出现,个数没有限制,而这些数据都将被放到一个Bundle对象中,
程序中我们则可以使用ActivityInfo、ServiceInfo甚至ApplicationInfo对象的metaData属性中读取。
假设我们在一个Activity中定义了一个<meta-data>元素,相关示例用法如下。

<activity...>
<meta-data android:name="testData" android:value="Test Meta Data"></meta-data>
</activity>

ActivityInfo info = this.getPackageManager()
.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
String testData = info.metaData.getString("testData");
System.out.println("testData:" + testData); -->
</activity-alias>

<!-- Service 配置 -->
<service>               <!-- Service服务组件的声明标签,用于定义与描述一个具体的Android服务, -->
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<!-- 语法范例 -->
<!-- <service android:enabled=["true" | "false"]    服务开关
android:exported=["true" | "false"]
android:icon="drawable resource"        服务图标
android:label="string resource"         服务描述
android:name="string"               Service服务类名
android:permission="string"
android:process="string" > -->

<!-- Receiver 配置 -->
<receiver>              <!-- Boardcast Receiver广播接收器组件的声明标签,用于定义与描述一个具体的Android广播接收器 -->
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<!-- 语法范例 -->
<!-- <receiver android:enabled=["true" | "false"]   接收器开关
android:exported=["true" | "false"]
android:icon="drawable resource"            接收器图标
android:label="string resource"             接收器描述
android:name="string"                   Boardcast Receiver接收器类名
android:permission="string"
android:process="string" > -->

<!-- Provider 配置 -->
<provider>              <!--  Content Provider内容提供者的声明标签 -->
<grant-uri-permission />
<meta-data />
</provider>
<!-- 语法范例 -->
<!-- <provider android:authorities="list"           内容提供者标识名称
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:grantUriPermissions=["true" | "false"]      对指定URI授予权限标识
android:icon="drawable resource"
android:initOrder="integer"
android:label="string resource"
android:multiprocess=["true" | "false"]
android:name="string"
android:permission="string"
android:process="string"
android:readPermission="string"             读权限
android:syncable=["true" | "false"]
android:writePermission="string" >          写权限-->
<!-- 所需类库配置 -->
<uses-library />

</application>

</manifest>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: