Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

<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> 要素は、サポート対象のテクスチャ圧縮形式を 1 つだけ宣言し、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 Ericsson テクスチャ圧縮。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 テクスチャ圧縮。HTC Nexus One、Droid Incredible、EVO など、Adreno GPU 搭載デバイスで利用できます。最大限の互換性を確保するため、デバイスは、GL_ATI_texture_compression_atitc 記述子を使用して <supports-gl-texture> 要素を宣言していることもあります。
GL_EXT_texture_compression_latc 輝度アルファ テクスチャ圧縮。
GL_EXT_texture_compression_dxt1 S3 DXT1 テクスチャ圧縮。Motorala Xoom、Motorola Atrix、Droid Bionic など、NVIDIA Tegra2 プラットフォーム搭載デバイスでサポートされます。
GL_EXT_texture_compression_s3tc S3 テクスチャ圧縮。DXT バリアント固有の形式ではありません。Motorala Xoom、Motorola Atrix、Droid Bionic など、NVIDIA Tegra2 プラットフォーム搭載デバイスでサポートされます。アプリが特定の DXT バリアントを必要とする場合は、この記述子ではなく、対象の記述子を宣言します。
GL_IMG_texture_compression_pvrtc PowerVR テクスチャ圧縮。Motorola DROID シリーズ、Samsung Galaxy S、Nexus S、Galaxy Tab など、PowerVR SGX530 / 540 GPU 搭載デバイスで利用できます。
関連項目:

Google Play とテクスチャ圧縮フィルタリング

Google Play は、ユーザーに表示するアプリをフィルタリングしています。これにより、各ユーザーは、自分のデバイスに対応するアプリだけを表示してダウンロードすることができます。アプリをフィルタリングする際、テクスチャ圧縮の適合性も 1 つの基準となります。これにより、さまざまなデバイスに対してアプリを利用可能にするかどうかを、GPU の機能に基づいて制御することができます。

ユーザーのデバイスがアプリのテクスチャ圧縮に対応しているかどうかを判断する際、Google Play は以下の 2 つを比較します。

  • アプリがサポートしているテクスチャ圧縮形式。アプリは、サポート対象のテクスチャ圧縮形式をマニフェスト内の <supports-gl-texture> 要素で宣言します。
  • デバイスの GPU がサポートしているテクスチャ圧縮形式。デバイスは、サポート対象の形式を読み取り専用システム プロパティとしてレポートします。

デベロッパーが Google Play Console にアプリをアップロードするたびに、Google Play は、アプリのマニフェスト ファイルをスキャンして、<supports-gl-texture> 要素を検索します。その要素から形式記述子を抽出して、それをアプリの .apk およびアプリ バージョンに関連付けられたメタデータとして内部に格納します。

ユーザーが Google Play 上でアプリの検索や閲覧を行うと、Google Play は、アプリがサポートしているテクスチャ圧縮形式と、ユーザーのデバイスがサポートしている形式を比較します。この比較は、形式記述子文字列に基づいて行われ、完全一致する必要があります。

アプリがサポートしているテクスチャ圧縮形式のいずれかが、デバイスでもサポートされていた場合、Google Play は、ユーザーに対してアプリの表示やダウンロードを許可します。他方、アプリのサポート対象形式をデバイスがいずれもサポートしていなかった場合、Google Play は、アプリをフィルタリングしてダウンロードできないようにします。

アプリが <supports-gl-texture> 要素を宣言していなかった場合、Google Play は、GL テクスチャ圧縮形式に基づくフィルタリングを適用しません。