如果你是一个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个路径的代码,分别在两种设备上运行。

最新文章

  1. OleDbDataReader快速数据读取方式
  2. PYTHON 随机验证码生成
  3. 配置Samba共享服务器
  4. SpringMVC(六) RequestMapping 路径中ant风格的通配符
  5. 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
  6. MyEclipse2015配置Tomcat方法----》myeclipse2015
  7. 获取Mac地址
  8. 创建ROS功能包(四)
  9. winform INI文件操作辅助类
  10. 粗谈Android中的对齐
  11. get mac 20150202
  12. gets函数完美替代
  13. DOM事件第二弹(UIEvent事件)
  14. SQL反模式学习笔记11 限定列的有效值
  15. Kotlin 泛型
  16. linux下查看进程id时用到的命令
  17. mysql 悲观锁与乐观锁的理解
  18. java 线程Thread 技术--1.5Lock 与condition 演示生产者与消费模式
  19. Django ModelForm类生成表单
  20. Google浏览器清除缓存快捷键

热门文章

  1. 使用泛型与不使用泛型的Map的遍历
  2. 在WIN7下安装运行mongodb
  3. pm2命令管理启动的nodejs项目进程
  4. Hive(9)-自定义函数
  5. Python3简单登录接口编写及遇到的问题分享
  6. Java中的IO
  7. C# 面试题 (三)
  8. 武汉Uber优步司机奖励政策(12月14日到12月20日)
  9. Mac iTem2 自动登录服务器配置
  10. springboot shiro没有注解解决方案