<supports-gl-texture android:name="string" />
Android Market and
Android Market filters applications according to the texture compression formats that they support, to ensure that they can be installed only on devices that can handle their textures properly. Developers can use texture compression filtering as a way of targeting specific device types, based on GPU platform.
For important information about how Android Market uses
<supports-gl-texture> elements as the basis for filtering, please read Android Market and texture compression filtering, below.
An application "supports" a GL texture compression format if it is capable of providing texture assets that are compressed in that format, once the application is installed on a device. The application can provide the compressed assets locally, from inside the
.apk, or it can download them from a server at runtime.
<supports-gl-texture> element declares exactly one supported texture compression format, specified as the value of a
android:name attribute. If your application supports multiple texture compression formats, you can declare multiple
<supports-gl-texture> elements. For example:
<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" /> <supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />
<supports-gl-texture> elements are informational, meaning that the Android system itself does not examine the elements at install time to ensure matching support on the device. However, other services (such as Android Market) or applications can check your application's
<supports-gl-texture> declarations as part of handling or interacting with your application. For this reason, it's very important that you declare all of the texture compression formats (from the list below) that your application is capable of supporting.
Applications and devices typically declare their supported GL texture compression formats using the same set of well-known strings, as listed below. The set of format strings may grow over time, as needed, and since the values are strings, applications are free to declare other formats as needed.
Assuming that the application is built with SDK Platform Tools r3 or higher, filtering based on the
<supports-gl-texture> element is activated for all API levels.
|Texture Compression Format Descriptor||Comments|
||Ericsson texture compression. Specified in OpenGL ES 2.0 and available in all Android-powered devices that support OpenGL ES 2.0.|
||Generic paletted texture compression.|
||ATI 3Dc texture compression.|
||ATI texture compression. Available on devices running Adreno GPU, including HTC Nexus One, Droid Incredible, EVO, and others. For widest compatibility, devices may also declare a
||Luminance alpha texture compression.|
||S3 DXT1 texture compression. Supported on devices running Nvidia Tegra2 platform, including Motorala Xoom, Motorola Atrix, Droid Bionic, and others.|
||S3 texture compression, nonspecific to DXT variant. Supported on devices running Nvidia Tegra2 platform, including Motorala Xoom, Motorola Atrix, Droid Bionic, and others. If your application requires a specific DXT variant, declare that descriptor instead of this one.|
||PowerVR texture compression. Available in devices running PowerVR SGX530/540 GPU, such as Motorola DROID series; Samsung Galaxy S, Nexus S, and Galaxy Tab; and others.|
Android Market filters the applications that are visible to users, so that users can see and download only those applications that are compatible with their devices. One of the ways Market filters applications is by texture compression compatibility, giving you control over the availability of your application to various devices, based on the capabilities of their GPUs.
To determine an application's texture compression compatibility with a given user's device, Android Market compares:
<supports-gl-texture>elements in its manifest
Each time you upload an application to the Android Market Publisher Site, Android Market scans the application's manifest file and looks for any
<supports-gl-texture> elements. It extracts the format descriptors from the elements and stores them internally as metadata associated with the application
.apk and the application version.
When a user searches or browses for applications on Android Market, the service compares the texture compression formats supported by the application with those supported by the user's device. The comparison is based on the format descriptor strings and a match must be exact.
If any of an application's supported texture compression formats is also supported by the device, Android Market allows the user to see the application and potentially download it. Otherwise, if none of the application's formats is supported by the device, Android Market filters the application so that it is not available for download.
If an application does not declare any
<supports-gl-texture> elements, Android Market does not apply any filtering based on GL texture compression format.