android清单文件属性

来源:互联网 发布:js number() 编辑:程序博客网 时间:2024/06/06 00:07
学习时获得的,没有具体来源,无法写出原地址
<?xml version="1.0" encoding="utf-8"?> 
  <!-- xmlns:android 指定了Android的命名空间,默认情况下是“http://schemas.android.com/apk/res/android”-->
  <!-- android:versionCode是给设备程序识别版本用的,必须是一个整数值代表app更新过多少次 -->
  <!-- android:versionName则是给用户查看版本用的,需要具备一定的可读性,比如:"1.0" -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.manifestdemo"
    android:versionCode="1"
    android:versionName="1.0"> 
 
    <!-- 基本配置 -->
    <!--  网络相关的权限 -->
   
    <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"/>
   
    <!--  权限声明标签,定义了供给<uses-permission>使用的具体权限,通常情况下我们不需要为自己的应用程序声明某个权限,
                   除非需要给其他应用程序提供可调用的代码或者数据,这个时候你才需要使用<permission>标签。
                   该标签中提供了android:name权限名标签,
                   权限图标android:icon以及权限描述android:description等属性,
                   另外还可以和<permission-group>以及<permission-tree>配合使用来构造更有层次的、更有针对性权限系统。 -->
    <permission android:name="string"
                android:description="@string/action_settings"
                android:label="@string/app_name"
                android:permissionGroup="string"
                android:protectionLevel="normal"/> 
                <!-- permission-tree和permission-group不做理解 -->
    <permission-tree /> 
    <permission-group android:name="string"/> 
    <!-- 用于声明Instrumentation测试类来监控Android应用的行为并应用到相关的功能测试中.
        重要的属性有:
                             测试功能开关android:functionalTest,profiling
                             调试功能开关android:handleProfiling,
                             测试用例目标对象android:targetPackage等。
        注意:Instrumentation对象是在应用程序的组件之前被实例化的,这点在组织测试逻辑的时候需要被考虑到
     -->
    <instrumentation android:targetPackage="string"
         android:name="string"
         android:functionalTest="true"
         android:handleProfiling="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"/> 
        
    <!-- 用于指定Android应用中所需要使用的SDK的版本 -->
    <uses-sdk
        android:targetSdkVersion="8"
        android:minSdkVersion="8"
        android:maxSdkVersion="19"/> 
     
    <!-- uses-configuration和uses-feature用于描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装。 -->
    <uses-configuration android:reqKeyboardType="nokeys"/> 
    <!-- 设备需要支持蓝牙 -->
    <uses-feature android:name="android.hardware.bluetooth"/> 
    <!-- 指定支持的屏幕特征 -->
    <!-- 重要的属性包括:
          屏幕自适应属性android:resizeable,
          小屏(android:smallScreens)、中屏(android:normalScreens)、大屏(android:largeScreens)和
          特大屏(android:xlargeScreens)支持属性,
          按屏幕渲染图像属性android:anyDensity以及最小屏幕宽度属性android:requiresSmallestWidthDp等 -->
    <supports-screens android:resizeable="true"/> 
    <compatible-screens /> 
    <supports-gl-texture /> 
     
    <!-- 应用配置 --> 
    <application> 
         
        <!-- Activity 配置 --> 
        <!-- 加载模式android:launchMode,键盘交互模式android:windowSoftInputMode -->
        <activity android:name="com.example.manifest.MainActivity"> 
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data /> 
        </activity> 
        <!-- Activity组件别名的声明标签,简单来说就是Activity的快捷方式,属性android:targetActivity表示的就是其相关的Activity名,
                          当然必须是前面已经声明过的Activity。 -->
        <activity-alias> 
            <intent-filter> . . . </intent-filter> 
            <meta-data /> 
        </activity-alias> 
        <!--  <intent-filter>用于Intent消息过滤器的声明,<intent-filter>元素
               可以放在<activity>、<activity-alias>、<service>和<receiver>元素标签中,
               来区分可用于处理消息的Activity控制器、Service服务和广播接收器Broadcast Receiver。
               另外,我们还知道Intent消息还包含有名称、动作、数据、类别等几个重要属性。
               这点与该标签的写法也有一定的关系,比如<intent-filter>中必须包含有
        <action>元素用于描述具体消息的名称;
        <category>标签则用于表示能处理消息组件的类别,即该Action所符合的类别;
        <data>元素则用于描述消息需要处理的数据格式,我们甚至还可以使用正则表达式来限定数据来源。 -->
        <!-- Service 配置 --> 
        <service android:name=""
            android:permission="android.permission.ACCESS_WIFI_STATE"
            android:enabled="true"> 
            <intent-filter> . . . </intent-filter> 
            <!-- 用于存储预定义数据,和<intent-filter>类似,
            <meta-data>也可以放在<activity>、<activity-alias>、<service>和<receiver>这四个元素标签中。
            Meta数据一般会以键值对的形式出现,个数没有限制,而这些数据都将被放到一个Bundle对象中,
                       程序中我们则可以使用ActivityInfo、ServiceInfo甚至ApplicationInfo对象的metaData属性中读取。
                       假设我们在一个Activity中定义了一个<meta-data>元素, -->
            <meta-data android:name="testData" android:value="Test Meta Data"/>
            <!-- ActivityInfo info = this.getPackageManager()
                  .getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
                 String testData = info.metaData.getString("testData");
                 System.out.println("testData:" + testData); -->
           
        </service> 
         
        <!-- Receiver 配置 --> 
        <!-- Boardcast Receiver广播接收器组件的声明标签,用于定义与描述一个具体的Android广播接收器 -->
        <receiver android:name=""> 
            <intent-filter> . . . </intent-filter> 
            <meta-data /> 
        </receiver> 
         
        <!-- Provider 配置 --> 
        <!-- ContentProvider内容提供者的声明标签
                内容提供者标识名称android:authorities,
                对指定URI授予权限标识android:grantUriPermission以及具体的读、写权限,即android:readPermission和android:writePermission -->
        <provider android:name=""
            android:authorities=""  >
            <!-- 如果内容提供器的grantUriPermissions属性被设置为true,那么权限能够被授予内容提供器范围内的任何数据。
                                  但是,如果grantUriPermission属性被设置为false,那么权限就只能授予这个元素所指定的数据子集。
                                  一个内容提供器能够包含任意多个个<grant-uri-permission>元素。每个都只能指定一个路径 -->
            <grant-uri-permission /> 
            <meta-data /> 
        </provider> 
         
        <!-- 所需类库配置 --> 
        <!-- 用于指定Android应用可使用的用户库,除了系统自带的android.app、android.content、android.view
                 和android.widget这些默认类库之外,有些应用可能还需要一些其他的Java类库作为支持,这种情况下我们就可以
                 使用<uses-library>标签让ClassLoader加载其类库供Android应用运行时用。 -->
        <uses-library android:name="string"
            android:required="true"/> 
 
    </application> 
 
</manifest> 
0 0
原创粉丝点击