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

Androidmanifest.xml里的<uses-feature>

 
阅读更多

如果你是一个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文件详解

    &lt;uses-feature/&gt; &lt;supports-screens/&gt; &lt;/manifest&gt; ``` #### 三、各节点详细介绍 ##### 1. 第一层 - `manifest` 节点 - **1.1 `manifest`** - **1.1.1 `xmlns:android`** 定义 Android 命名空间,通常为 `...

    Androidmanifest.xml文件分析

    一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services... &lt;uses-feature/&gt; &lt;supports-screens/&gt; &lt;/manifest&gt;

    androidmanifest.xml文件详解

    9. **&lt;uses-feature&gt; 标签**: - 用于声明应用所需的硬件功能或软件特性,如摄像头、NFC 等。 10. **&lt;uses-configuration&gt; 标签**: - 用于声明应用支持的配置选项,例如不同的语言环境或屏幕方向。 11. **...

    Android学习笔记之AndroidManifest.xml文件解析

    `&lt;uses-feature&gt;` 标签** - **用途**:声明应用依赖的硬件特性,如摄像头、GPS 等。 **2. `&lt;uses-library&gt;` 标签** - **用途**:声明应用依赖的库。 **3. `&lt;uses-configuration&gt;` 标签** - **用途**:声明应用...

    AndroidManifest.xml文件解析

    - **`&lt;uses-feature&gt;`**: 声明应用依赖的功能。 - **`&lt;supports-screens&gt;`**: 指定应用支持的屏幕尺寸和密度。 通过以上介绍可以看出,`AndroidManifest.xml`文件是Android应用程序的基础配置文件,其中包含了...

    Android教程之AndroidManifest.xml

    3. **`&lt;uses-feature&gt;`**:声明应用所需的硬件特性或软件功能。 4. **`&lt;supports-screens&gt;`**:声明应用支持的屏幕尺寸和方向。 5. **`&lt;meta-data&gt;`**:存储应用的元数据。 #### 六、总结 `AndroidManifest.xml` ...

    AndroidManifest.xml文件解读

    - **`&lt;uses-feature&gt;`**: 指明应用依赖的硬件或软件功能。 - **`&lt;supports-screens&gt;`**: 定义了应用支持的屏幕尺寸和密度。 - **`&lt;meta-data&gt;`**: 提供额外的信息,如配置或用于插件的键值对。 通过以上的分析,...

    AndroidManifest.xml uses-feature功能详解

    《AndroidManifest.xml uses-feature功能详解》 在Android应用开发中,`AndroidManifest.xml` 文件扮演着至关重要的角色,它是应用程序的元数据中心,包含了应用程序所需的权限、组件信息以及硬件需求等。其中,`...

    AndroidManifest.xml文件解读(完美解读、最权威、最全面)

    8. **`&lt;uses-feature&gt;`** - 指明应用依赖的硬件特性或软件功能。 9. **`&lt;supports-screens&gt;`** - 表明应用支持的屏幕尺寸和方向。 #### 三、关键节点深入分析 - **`&lt;activity&gt;`**:用于声明应用中的每个Activity,...

    学习笔记之AndroidManifest.xml文件解析.docx

    * `&lt;uses-feature&gt;`:定义了应用程序所需的设备功能。 二、AndroidManifest.xml 文件的节点详解 ### `&lt;manifest&gt;` 节点 * `xmlns:android`:定义了 Android 命名空间,一般为 ...

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

    因此,开发者在编写 `AndroidManifest.xml` 文件时应仔细考虑每个 `&lt;uses-feature&gt;` 和 `&lt;uses-permission&gt;` 的声明,确保应用的功能需求和权限请求既合理又透明。 总之,了解并正确使用 `&lt;uses-feature&gt;` 和 `...

    AndroidManifest所有属性详细介绍

    4. **`&lt;uses-permission&gt;`**、**`&lt;uses-sdk&gt;`**、**`&lt;uses-feature&gt;`** 等标签:声明应用程序所需的权限、支持的 SDK 版本及特定功能需求等。 #### 三、各层级详细解析 ##### 1. `&lt;manifest&gt;` 层级详解 - **`...

    android manifet文件简介

    该文件由多个节点组成,包括`&lt;manifest&gt;`、`&lt;application&gt;`、`&lt;activity&gt;`、`&lt;service&gt;`、`&lt;receiver&gt;`、`&lt;provider&gt;`等,以及相关的子节点,如`&lt;intent-filter&gt;`、`&lt;uses-permission&gt;`等。结构如下: ```xml ...

    android 系统程序源码

    &lt;uses-feature android:name="android.hardware.camera2.full" android:required="true" /&gt; ``` 这确保了应用只能在支持Camera2 API的设备上运行。同时,可能还需要声明其他相关权限,如访问存储权限来保存照片。...

    AndroidManifest.xml配置文件解析

    `&lt;uses-feature&gt;`和`&lt;uses-configuration&gt;`用于声明应用支持的硬件特性或设备配置,这会影响应用能否在特定设备上安装。例如,如果应用需要摄像头,可以添加`&lt;uses-feature android:name="android.hardware.camera" ...

    Android 照相机 Camera

    &lt;uses-feature android:name="android.hardware.camera"/&gt; &lt;uses-feature android:name="android.hardware.autofocus"/&gt; &lt;uses-feature android:name="android.hardware.flash"/&gt; ``` 这些权限分别表示: - `...

    低功耗蓝牙

    &lt;uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /&gt; 18.外加注册一个服务 &lt;service android:name="com.changda.smartsystemlock.bluet.BluetoothLeService" android:...

Global site tag (gtag.js) - Google Analytics