清单文件 示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了清单文件 示例相关的知识,希望对你有一定的参考价值。


示例
<?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.READ_CONTACTS"/>
    <!--  标签<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,调试功能开关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,小屏smallScreens、中屏normalScreens、大屏largeScreens、特大屏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消息过滤器的声明,可以放在<activity>、<activity-alias>、<service>和<receiver>元素标签中
                 <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> 






以上是关于清单文件 示例的主要内容,如果未能解决你的问题,请参考以下文章

Ansible自动化运维之配置清单Inventory

Android清单文件合并的那些事

Nginx 常用配置清单

Web 应用清单

Nginx 常用配置清单

Redshift - 复制多个清单文件