Manifest 中的 起个什么作用

一句话:用于指定android应用程序是否需要某个硬件或软件资源的支持,否                 则不能正常运行。

1.语法:


       android:glEsVersion="0x00020000"

       android:name="android.hardware.camera.autofocus"

       android:required="true" / >

2.属性:

      android:name   该属性为描述性字符串,指定该程序所用到的软/硬件功能。

硬件方面有:

                  摄像头:android.hardware.camera

      各种传感器:

                  加速计:android.hardware.sensor.accelerometer

                  气压计:android.hardware.sensor.barometer

                  指南针:android.hardware.sensor.compass

                  陀螺仪:android.hardware.sensor.gyroscope

                  感光:android.hardware.sensor..light

                  近距离感测:android.hardware.sensor.proximity

          麦克风:android.hardware.microphone

          定位:android.hardware.location

          USB host:android.hardware.usb.host

          WIFI:android.hardware.wifi

          蓝牙:android.hardware.bluetooth

软件方面有:

          Bluetooth Low Energy:android.software.bluetooth_le

          VOIP:android.software.sip.voip

       android.required="true/false"    表示是否需要某个功能。

           当required="false"时,表示希望设备具有这个功能,即使没有该功能程序也可以正常工作,为了程序工作更好,最好具有该功能。(在这里,个人不甚太懂,既然可有可无,不写feature不就行了,还弄个true/false ... ...)

           如果不指定,默认为true。

      android.qlEsVersion  这个属性用于声明应用程序所需要的OpenGL ES的版本。

    它的高16位代表主版本号,低16位代表次要版本号,如:要是指定OpenGL ES的版本号是2.0,那么就要设置为0x00020000。要指定的OpenGL ES的版本号是2.1,就要设置为0x00020001。

    应用程序在它的清单中应该最多只能指定一个android:glEsVersion属性,如果指定了多个,那么只会使用版本最高的那个android:glEsVersion属性,而其他的将会被忽略。

    如果应用程序没有指定一个android:glEsVersion属性,那么就假定应用程序仅需要OpenGL ES1.0,它是在所有的Android设备上都支持的版本。

    如果一个平台支持设定的OpenGL ES版本,那么它还会支持所有比设定版本低的OpenGL ES版本,因此,需要OpenGL ES1.0和OpenGL ES2.0的应用程序,必须要指定它所需要的版本时OpenGL ES2.0。

    能够用任何版本的OpenGL ES来工作的应用程序,应该仅指定应用所需的最低版本的OpenGL ES。(应用程序能够在运行时检查较高版本的OpenGL ES是否可用。)

3.uses-feature的注意事项和其他说明

    uses-feature 只起到指示性的作用, 并不是强制检测。

    ——即使程序不具有uses-feature指定的软硬件资源,也不影响启动,只是会影响该功能的正常使用。

总结:

    就如给应用贴上一个标签,方便了解app的资源需求与分类。

例如: 

        GooglePlay 会根据uses-feature的声明 过滤、分类app。

你可能感兴趣的:(Manifest 中的 起个什么作用)