`
xp9802
  • 浏览: 1214388 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android uses-feature

阅读更多

<uses-feature android:glEsVersion="0x00020000" required="true"/>

它将使我们的游戏只被支持OPenGL ES 2.0 和 假装有相当的图形处理能力的设备所看到。

 

 

<!-- 步骤(4)Google Map v2需要OpenGL ES,需要用uses-feature中声明 -->     <uses-feature          android:glEsVersion="0x00020000"         android:required="true" /> 

 

 

如果你是一个Android用户,而且你有一个老旧的安装有android 1.5 的android设备,你可能会注意到一些高版本的应用没有在手机上的Android Market 中显示。这必定是应用使用了<uses-feature>的结果。

 

 

Android Market会根据uses-feature过滤所有你设备不支持的应用。通过使用<uses-feature>元素,一个应用可以指定它所支持的硬件型号,举个例子,有些设备不支持多点触控或者OpenGL ES 2.0,那么过滤器就会过滤需要这些硬件支持(多点触控或者OpenGL ES 2.0)的应用,用户就不会在android market上看到这些应用。

 

一个<uses-feature>元素包含以下属性:

<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" />

 

name属性指定了应用的特征,required属性告诉过滤器我们是否在任何情况下必须要需要这个设备的支持,或者仅仅只是“nice to have”。

 

最后一个属性是可选择的,只是用在需要指定一个OpenGL ES版本的时候。

 

接下来的几个硬件特征对于游戏开发是非常有用的。

 

android.hardware.touchscreen.multitouch:它要求设备有一个多点触控的屏幕以支持基本的多点触控交互,就如收缩(放大)图像比例。这些类型的屏幕跟踪多个手指的能力都有所不同,所以你必须确保这个屏幕的性能是能够支持的游戏进行。

 

android.hardware.touchscreen.multitouch.distinct: 这是一个多点触控的兄弟属性,它要求提设备供完整的多点触控功能。

 

我们将会在接下来的章节片段中看到多点触控。现在只要记住在当你的游戏需要一个支持多点触控的屏幕的时候,我们可以使用 <uses-feature>元素来剔除所有不支持多点触控的设备,就像下面这样:

 

<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/>

 

另外一个在游戏开发中非常有用的是去指定需要的OpenGL ES版本。在本书中,我们只关心OpenGL ES1.0和OpenGL ES1.1就可以了。由于这2者基本上没有什么不同,所以我们也不用去指定<uses-feature>了。然而,有些设备支持更强大的OpenGL ES2.0

 

如果你的游戏需要更强大的图形处理能力,我们可以指定OpenGL ES 2.0,然后我们的游戏只会被支持OpenGL ES 2.0的设备所看见。注意,在本书中不会使用OPenGL ES 2.0, 我们只是过滤那些不能提供足够图形处理能力的设备。下面显示了我们怎么去实现它。

 

<uses-feature android:glEsVersion="0x00020000" required="true"/>

 

它将使我们的游戏只被支持OPenGL ES 2.0 和 假装有相当的图形处理能力的设备所看到。

 

NOTE: 有些设备所反映的性能特征是不正确的,所以开发你的应用的时候尽量去支持各种不同的设备。要谨慎使用<uses-feature>。

 

 

现在就以硬件而言,你的应用已经直接地减少了许多安装量,这将直接影响到你应用的销量。所以当你定义<uses-feature>之前请慎重考虑。举个例子,如果你的游戏需要有多点触控的支持,但是我们也可以思考另外一种方法,是游戏能够在支持单点触控的设备上运行良好,我们就可以写2个路径的代码,分别在两种设备上运行。

分享到:
评论

相关推荐

    AndroidManifest.xml uses-feature功能详解

    &lt;uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/&gt; ``` 这将确保只有具备多点触控功能的设备可以安装并运行游戏。同样,如果游戏需要OpenGL ES 2.0的图形处理能力...

    Android代码-仿微信短视频录像

    Recorder 参考微信实现的短视频录像 allprojects { repositories { ... ... } } dependencies { ...&lt;uses-permission android:name="android.permission.RECORD_AUDIO...&lt;uses-feature android:name="android.hardware.c

    android gps 获取经纬度

    &lt;uses-feature android:name="android.hardware.location.gps" android:required="true" /&gt; ``` `ACCESS_FINE_LOCATION`权限是获取精确位置信息(如经纬度)所必需的,而`uses-feature`标签则表明应用需要GPS硬件...

    AndroidManifest.xml &lt;uses-feature&gt;和&lt;uses-permisstion&gt;分析及比较

    &lt;uses-feature android:name="android.hardware.camera" android:required="false" /&gt; ``` 这样做允许没有摄像头的设备也能安装你的应用,但用户需知道应用可能无法充分利用所有功能。 接下来,`&lt;uses-permission&gt;`...

    anroid 全景图

    uses-permission android:name="android.permission.INTERNET" /&gt; &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&gt; &lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt; ...

    Android代码-摄像头实时滤镜处理库

    &lt;uses-permission android:name="android.permission.CAMERA"/&gt; Declare feature: &lt;uses-feature android:glEsVersion="0x00020000" android:required="true"/&gt; Step 1 mFilterManager = FilterManager ....

    arcgis-android-sdk-v10.2.5下载

    &lt;uses-feature android:glEsVersion="0x00020000" android:required="true" /&gt; &lt;uses-permission android:name="android.permission.INTERNET" /&gt; &lt;uses-permission android:name="android.permission.WRITE_...

    android串口通信源码(android-serialport-api)

    &lt;uses-feature android:name="android.hardware.usb.host" /&gt; ``` 2. **查找串口**:使用SerialPortFinder查找可用的串口,并选择一个进行通信。 3. **配置串口**:创建SerialPort对象,设置波特率、数据位等...

    Android使用android-beacon-library接收beacon

    &lt;uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /&gt; ``` 3. **初始化BeaconManager** 在你的应用程序中,创建一个`BeaconManager`实例并进行配置。这通常在Application类或一...

    安卓串口demo(android-serialport-api-android-serialport-api

    6. **权限管理**:在Android系统中,访问串口可能需要特定的权限,比如`&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;`和`&lt;uses-feature android:name="android.hardware.usb.host" ...

    android-serialport-api.rar

    &lt;uses-feature android:name="android.hardware.usb.host" android:required="true" /&gt; ``` 4. **源码分析**: 压缩包中的源码展示了如何使用`SerialPort`类进行串口操作。`SerialPortFinder`用于查找可用的串口...

    android-Camera2Basic-master

    1. `AndroidManifest.xml`: 安卓应用的核心配置文件,包含了应用的元数据、权限声明和活动(Activity)定义,其中会声明相机权限(如`&lt;uses-feature android:name="android.hardware.camera2.full" /&gt;`)。...

    AndroidFFmpeg-master.zip

    &lt;uses-feature android:name="android.hardware.camera" /&gt; &lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt; ``` 3. **初始化FFmpeg**:在Android应用中,你需要在适当的地方初始化FFmpeg库...

    usb-serial-for-android-master.zip

    9. **权限管理**: 在Android中,使用USB Host功能需要在AndroidManifest.xml文件中声明相应的权限,如`&lt;uses-feature android:name="android.hardware.usb.host" /&gt;`。 10. **调试与测试**: 由于描述中提到项目已...

    安卓代码日志分析

    &lt;uses-feature android:name="android.hardware.camera"/&gt; &lt;uses-feature android:name="android.hardware.camera.autofocus"/&gt; &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt; ...

    Android代码-拍照与录像切换UI源码.zip

    6. **Permissions**: 使用摄像头功能需要在AndroidManifest.xml中声明权限,如`&lt;uses-permission android:name="android.permission.CAMERA"/&gt;` 和 `&lt;uses-feature android:name="android.hardware.camera"/&gt;`。...

    android-serialport-api安卓串口驱动源码

    2. **权限设置**:在AndroidManifest.xml中添加必要的权限,例如`&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/&gt;`和`&lt;uses-feature android:name="android.hardware.usb.host" android...

    AndroidUSB-demo.zip

    使用`&lt;uses-feature&gt;`标签声明USB主机功能,`&lt;uses-permission&gt;`标签请求`android.permission.ACCESS_USB`权限。 4. **BroadcastReceiver** 为了监听U盘插入事件,我们需要创建一个BroadcastReceiver,注册对` ...

    Android代码-视频浮动窗口源码.zip

    2. **Manifest配置**:在AndroidManifest.xml文件中,需要为应用添加`&lt;uses-feature&gt;`标签声明支持Picture-in-Picture,并为使用该功能的Activity添加`android:supportsPictureInPicture="true"`属性。 3. **浮窗...

Global site tag (gtag.js) - Google Analytics