<supports-gl-texture>

注意: Google Play 会根据应用程序支持的纹理压缩格式对应用程序进行筛选,以便它们仅安装在可以正确处理其纹理的设备上。您可以使用纹理压缩筛选作为一种方法,根据 GPU 平台针对特定设备类型。

有关 Google Play 如何使用 <supports-gl-texture> 元素作为筛选基础的详细信息,请阅读 Google Play 和纹理压缩筛选 部分。

语法
<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 或更高版本构建,则基于 <supports-gl-texture> 元素的筛选将在所有 API 等级上激活。

属性
android:name
指定应用程序支持的单个 GL 纹理压缩格式,作为描述符字符串。以下表格列出了常见的描述符值。
纹理压缩格式描述符 注释
GL_OES_compressed_ETC1_RGB8_texture 爱立信纹理压缩。在 OpenGL ES 2.0 中指定,并在所有支持 OpenGL ES 2.0 的 Android 设备中可用。
GL_OES_compressed_paletted_texture 通用调色板纹理压缩。
GL_AMD_compressed_3DC_texture ATI 3Dc 纹理压缩。
GL_AMD_compressed_ATC_texture ATI 纹理压缩。在运行 Adreno GPU 的设备上可用,包括 HTC Nexus One、Droid Incredible、EVO 等。为了最广泛的兼容性,设备也可以声明一个 <supports-gl-texture> 元素,其描述符为 GL_ATI_texture_compression_atitc
GL_EXT_texture_compression_latc 亮度 alpha 纹理压缩。
GL_EXT_texture_compression_dxt1 S3 DXT1 纹理压缩。在运行 Nvidia Tegra2 平台的设备上支持,包括 Motorala Xoom、Motorola Atrix、Droid Bionic 等。
GL_EXT_texture_compression_s3tc S3 纹理压缩,不特定于 DXT 变体。在运行 Nvidia Tegra2 平台的设备上支持,包括 Motorala Xoom、Motorola Atrix、Droid Bionic 等。如果您的应用程序需要特定的 DXT 变体,请声明该描述符,而不是此描述符。
GL_IMG_texture_compression_pvrtc PowerVR 纹理压缩。在运行 PowerVR SGX530/540 GPU 的设备上可用,例如 Motorola DROID 系列;三星 Galaxy S、Nexus S 和 Galaxy Tab 等。
另请参阅

Google Play 和纹理压缩过滤

Google Play 过滤对用户可见的应用程序,以便用户只能看到和下载与其设备兼容的应用程序。它过滤应用程序的一种方法是通过纹理压缩兼容性,让您根据设备 GPU 的功能控制应用程序在各种设备上的可用性。

为了确定应用程序与给定用户设备的纹理压缩兼容性,Google Play 会比较以下内容

  • 应用程序支持的纹理压缩格式,如在清单中的 <supports-gl-texture> 元素中声明。
  • 设备上的 GPU 支持的纹理压缩格式。设备将报告其支持的格式作为只读系统属性。

每次您将应用程序上传到 Google Play Console 时,Google Play 都会扫描应用程序的清单文件,并查找任何 <supports-gl-texture> 元素。它会从元素中提取格式描述符,并将其存储在与应用程序 APK 和应用程序版本相关的元数据中。

当用户在 Google Play 上搜索或浏览应用程序时,该服务会将应用程序支持的纹理压缩格式与用户设备支持的格式进行比较。比较基于格式描述符字符串,匹配必须完全一致。

如果应用程序支持的 任何 纹理压缩格式也受设备支持,Google Play 会让用户看到该应用程序并可能下载它。如果设备不支持应用程序的任何格式,Google Play 会过滤该应用程序,使其不可下载。

如果应用程序没有声明任何 <supports-gl-texture> 元素,Google Play 不会根据 GL 纹理压缩格式应用任何过滤。