Android开发者指南-Manifest.xml-<supports-gl-texture>[原创译文]

(2012-01-11 09:52:35)

<supports-gl-texture>

版本:Android 3.2

 

Android开发者指南-Manifest.xml-<supports-gl-texture>[原创译文]

Android开发者指南-Manifest.xml-<supports-gl-texture>[原创译文]

Android Market<supports-gl-texture>元素

Android Market根据应用程序支持的纹理压缩格式来对其进行过滤,以确保程序只能安装于能够正确处理纹理的设备上。开发人员可以用纹理压缩过滤器根据GPU平台来指定特定的设备类型。

关于Android Market如何利用<supports-gl-texture>元素作为过滤条件的详情,请参阅下文Android Market和纹理压缩过滤

 

 

语法:

<supports-gl-textureandroid:name="string"/>

 

包含于:

<manifest>

 

说明:

声明一个应用程序支持的GL纹理压缩格式。

所谓应用程序“支持”的GL纹理压缩格式,是指程序安装到某设备之后能够处理用这些格式压缩的纹理数据texture asset)。应用程序可以由.apk文件提供本地的压缩数据,也可以运行时从服务器下载数据。

每个<supports-gl-texture>元素只精确声明一种所支持的纹理压缩格式,以android:name属性值进行指定。如果应用程序支持多种纹理压缩格式,可以声明多个<supports-gl-texture>元素。例如:

<supports-gl-textureandroid:name="GL_OES_compressed_ETC1_RGB8_texture"/>

<supports-gl-textureandroid:name="GL_OES_compressed_paletted_texture"/>

<supports-gl-texture>元素的声明仅仅是一种声明,这意味着Android系统本身在安装程序时不会检查这些元素来确保设备是否符合要求。不过其它服务(比如Android Market)或应用程序可以在与本程序交互时检查这个声明。因此,声明本程序能够支持的所有纹理压缩格式(列表见下文)就十分重要了。

通常应用程序和服务使用一组公认的字符串(如下所列)来声明所支持的GL压缩格式。根据需要,这些格式字符串可能会随时添加。因为采用字符串来表达,应用程序也可以根据需要自由声明其它格式。

请确保程序是用r3以上版本的SDK平台工具编译的,基于<supports-gl-texture>元素的过滤适用于所有API版本级别。

 

属性:

android:name

用描述符字符串定义一个应用程序支持的GL纹理压缩格式。常用的描述符列表如下:

纹理压缩格式描述符

注释

GL_OES_compressed_ETC1_RGB8_texture

Ericsson纹理压缩。在OpenGL ES 2.0中定义,适用于所有支持OpenGL ES 2.0Android平台设备。

GL_OES_compressed_paletted_texture

通用的调色板纹理压缩。

GL_AMD_compressed_3DC_texture

ATI 3Dc 纹理压缩。

GL_AMD_compressed_ATC_texture

ATI纹理压缩。适用于运行Adreno GPU的设备,包括HTC Nexus OneDroid IncredibleEVO等等。为了保证广泛的兼容性,设备可以用GL_ATI_texture_compression_atitc描述符声明<supports-gl-texture>元素。

GL_EXT_texture_compression_latc

Luminance alpha纹理压缩。

GL_EXT_texture_compression_dxt1

S3 DXT1纹理压缩。适用于运行Nvidia Tegra2平台的设备,包括Motorala XoomMotorola AtrixDroid Bionic等等。

GL_EXT_texture_compression_s3tc

S3纹理压缩,但不支持DXT变体。适用于运行Nvidia Tegra2 平台的设备,包括Motorala XoomMotorola AtrixDroid Bionic等等。如果应用程序需要指定DXT变体,请用上一条描述符。

GL_IMG_texture_compression_pvrtc

PowerVR纹理压缩。适用于运行PowerVR SGX530/540 GPU的设备,比如Motorola DROID系列;Samsung Galaxy SNexus SGalaxy Tab等等。

 

参阅:

· Android Market过滤器

Android Market和纹理压缩过滤

Android Market会对用户所能见到的应用程序进行过滤,这样用户只能看见并下载那些与各自设备兼容的应用程序。其中一种方式是根据纹理压缩能力进行过滤,使得程序可以根据GPU的处理能力来控制对设备的适用范围。

为了确定应用程序的纹理压缩方式是否与给定的用户设备相兼容,Android Market将对以下内容进行对比:

· 程序支持的纹理压缩格式——程序在manifest<supports-gl-texture>元素里声明的所支持的纹理压缩格式。

· 设备GPU所支持的纹理压缩格式——设备以系统只读属性的方式报告的格式。

每次向Android Market发布网站上传应用程序时,Android Market都会扫描程序的manifest文件并查找<supports-gl-texture>元素,从该元素中解析出格式描述符,并作为与程序.apk及版本相关联的元数据进行内部保存。

当用户在Android Market上搜索或查看应用程序时,后台服务会把程序支持的纹理压缩格式与用户设备所支持的格式进行比较。比较是根据格式描述符进行的,对字符串进行精确匹配。

如果其中任何一种程序支持的纹理压缩格式同时获得了设备的支持,Android Market就允许用户看见此应用并提供下载。反之,如果设备对程序列出的格式都不支持,Android Market就会滤除这个应用,也就不会提供下载。

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

posted on 2013-04-24 22:25  zhengbeibei  阅读(1115)  评论(0编辑  收藏  举报