<supports-gl-texture>
语法:
<supports-gl-texture
android:name="string" />
包含于:
<manifest>
说明:
声明应用程序支持的单个GL纹理压缩格式。
如果应用程序安装在设备上,则应用程序“支持”GL纹理压缩格式,如果它能够提供以该格式压缩的纹理资源。应用程序可以在.apk内部本地提供压缩资产,也可以在运行时从服务器下载它们。
每个<supports-gl-texture>元素都只声明一种支持的纹理压缩格式,指定为android:name属性的值。如果您的应用程序支持多种纹理压缩格式,则可以声明多个<supports-gl-texture>元素。例如:
<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
<supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />
声明的<supports-gl-texture>元素是信息性的,这意味着Android系统本身不会在安装时检查元素以确保在设备上匹配支持。但是,其他服务(例如Google Play)或应用程序可以检查应用程序的<supports-gl-texture>声明,作为处理应用程序或与应用程序交互的一部分。因此,声明应用程序能够支持的所有纹理压缩格式(从下面的列表中)非常重要。
应用程序和设备通常使用同一组众所周知的字符串声明其支持的GL纹理压缩格式,如下所示。根据需要,格式字符串集可能会随着时间的推移而增长,并且由于值是字符串,因此应用程序可以根据需要自由声明其他格式。
假设应用程序是使用SDK Platform Tools r3或更高版本构建的,则会为所有API级别激活基于<supports-gl-texture>元素的过滤。
属性:
android:name
指定应用程序支持的单个GL纹理压缩格式,作为描述符字符串。公共描述符值列在下表中。
参阅:
- Filters on Google Play
Google Play和纹理压缩过滤
Google Play会过滤用户可见的应用程序,以便用户只能查看和下载与其设备兼容的应用程序。过滤应用程序的方法之一是通过纹理压缩兼容性,使您可以根据GPU的功能控制应用程序对各种设备的可用性。
要确定应用程序与给定用户设备的纹理压缩兼容性,Google Play会比较:
- 应用程序支持的纹理压缩格式 - 应用程序在其清单中的<supports-gl-texture>元素中声明其支持的纹理压缩格式与...
- 设备上GPU支持的纹理压缩格式 - 设备将其支持的格式报告为只读系统属性。
每次将应用程序上传到Google Play开发者控制台时,Google Play都会扫描应用程序的清单文件并查找任何<supports-gl-texture>元素。它从元素中提取格式描述符,并在内部将它们存储为与应用程序.apk和应用程序版本相关联的元数据。
当用户在Google Play上搜索或浏览应用程序时,该服务会将应用程序支持的纹理压缩格式与用户设备支持的格式压缩格式进行比较。比较基于格式描述符字符串,匹配必须准确。
如果设备也支持任何应用程序支持的纹理压缩格式,Google Play允许用户查看该应用程序并可能下载该应用程序。否则,如果设备不支持任何应用程序格式,Google Play会过滤该应用程序,以使其无法下载。
如果应用程序未声明任何<supports-gl-texture>元素,则Google Play不会应用基于GL纹理压缩格式的任何过滤。