Lưu ý: Google Play lọc ứng dụng theo định dạng nén kết cấu (texture compression) mà ứng dụng hỗ trợ, để đảm bảo người dùng chỉ có thể cài đặt những ứng dụng này trên thiết bị có thể xử lý đúng kết cấu tương ứng. Bạn có thể dùng cách lọc nén kết cấu để nhắm đến một số loại thiết bị cụ thể, dựa trên nền tảng GPU.

Để nắm được thông tin quan trọng về cách Google Play dùng phần tử <supports-gl-texture> làm cơ sở cho hoạt động lọc, hãy đọc nội dung Google Play và bộ lọc nén kết cấu dưới đây.

cú pháp:
<supports-gl-texture
  android:name="string" />
có trong:
<manifest>
mô tả:
Khai báo một định dạng nén kết cấu GL mà ứng dụng hỗ trợ.

Một ứng dụng sẽ "hỗ trợ" định dạng nén kết cấu GL nếu ứng dụng đó có thể cung cấp tài sản kết cấu được nén ở định dạng này sau khi được cài đặt trên một thiết bị. Ứng dụng có thể cung cấp tài sản được nén cục bộ, từ bên trong .apk, hoặc có thể tải các tài sản đó xuống trên máy chủ trong thời gian chạy.

Mỗi phần tử <supports-gl-texture> khai báo chính xác một định dạng nén kết cấu được hỗ trợ sẽ được xác định là giá trị của thuộc tính android:name. Nếu ứng dụng của bạn hỗ trợ nhiều định dạng nén kết cấu, thì bạn có thể khai báo nhiều phần tử <supports-gl-texture>. Ví dụ:

<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
<supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />

Các phần tử <supports-gl-texture> được khai báo chỉ để cho biết thông tin, tức là chính hệ thống Android sẽ không kiểm tra các phần tử đó tại thời điểm cài đặt để đảm bảo khả năng hỗ trợ phù hợp trên thiết bị. Tuy nhiên, các dịch vụ (chẳng hạn như Google Play) hoặc ứng dụng khác có thể kiểm tra phần khai báo <supports-gl-texture> của ứng dụng trong quá trình xử lý hoặc tương tác với ứng dụng. Vì lý do này, việc khai báo tất cả định dạng nén kết cấu (trong danh sách bên dưới) mà ứng dụng của bạn có thể hỗ trợ là rất quan trọng.

Thường thì ứng dụng và thiết bị sẽ khai báo định dạng nén kết cấu GL được hỗ trợ bằng cách sử dụng cùng một tập hợp chuỗi phổ biến, như liệt kê dưới đây. Tập hợp chuỗi định dạng này có thể lớn dần theo thời gian (nếu cần) và vì giá trị là chuỗi nên ứng dụng có thể tự do khai báo các định dạng khác (nếu cần).

Giả sử ứng dụng được xây dựng bằng Bộ công cụ nền tảng SDK r3 (SDK Platform Tools r3) trở lên, thì quá trình lọc dựa trên phần tử <supports-gl-texture> sẽ được kích hoạt cho mọi cấp độ API.

thuộc tính:
android:name
Chỉ định một định dạng nén kết cấu GL mà ứng dụng hỗ trợ, dưới dạng chuỗi mô tả. Bạn có thể xem các mã mô tả (descriptor) thường thấy trong bảng dưới đây.
Mã mô tả định dạng nén kết cấu Nhận xét
GL_OES_compressed_ETC1_RGB8_texture Nén kết cấu Ericsson. Được chỉ định trong OpenGL ES 2.0 và có trên tất cả thiết bị chạy Android hỗ trợ OpenGL ES 2.0.
GL_OES_compressed_paletted_texture Nén kết cấu có bảng màu chung.
GL_AMD_compressed_3DC_texture Nén kết cấu ATI 3Dc.
GL_AMD_compressed_ATC_texture Nén kết cấu ATI. Có trên các thiết bị chạy GPU Adreno, bao gồm cả HTC Nexus One, Droid Incredible, EVO, v.v. Để có khả năng tương thích rộng nhất, các thiết bị cũng có thể khai báo phần tử <supports-gl-texture> có mã mô tả GL_ATI_texture_compression_atitc.
GL_EXT_texture_compression_latc Nén kết cấu alpha độ chói.
GL_EXT_texture_compression_dxt1 Nén kết cấu S3 DXT1. Được hỗ trợ trên các thiết bị chạy nền tảng Nvidia Tegra2, bao gồm cả Motorala Xoom, Motorola Atrix, Droid Bionic, v.v.
GL_EXT_texture_compression_s3tc Nén kết cấu S3, không dành riêng cho biến thể DXT. Được hỗ trợ trên các thiết bị chạy nền tảng Nvidia Tegra2, bao gồm cả Motorala Xoom, Motorola Atrix, Droid Bionic, v.v. Nếu ứng dụng của bạn yêu cầu một biến thể DXT cụ thể, hãy khai báo mã mô tả đó thay vì biến thể này.
GL_IMG_texture_compression_pvrtc Nén kết cấu PowerVR. Có trên các thiết bị chạy GPU PowerVR SGX530/540, chẳng hạn như dòng Motorola DROID, Samsung Galaxy S, Nexus S, Galaxy Tab, v.v.
xem thêm:

Google Play và lọc nén kết cấu

Google Play lọc ứng dụng mà người dùng thấy để họ chỉ có thể xem và tải các ứng dụng tương thích với thiết bị của họ xuống. Một trong những cách lọc ứng dụng của Google Play là xem xét khả năng tương thích nén kết cấu, cho phép bạn kiểm soát khả năng sử dụng của ứng dụng cho nhiều thiết bị, dựa trên khả năng của GPU của ứng dụng.

Để xác định khả năng tương thích nén kết cấu của một ứng dụng với thiết bị của một người dùng cụ thể, Google Play so sánh:

  • Các định dạng nén kết cấu được ứng dụng hỗ trợ – ứng dụng khai báo các định dạng nén kết cấu được hỗ trợ trong các phần tử <supports-gl-texture> trong tệp kê khai
    bằng...
  • Các định dạng nén kết cấu được GPU hỗ trợ trên thiết bị — thiết bị báo cáo các định dạng được hỗ trợ dưới dạng thuộc tính hệ thống chỉ có thể đọc.

Mỗi lần bạn tải một ứng dụng lên Google Play Console, Google Play sẽ quét tệp kê khai của ứng dụng đó và tìm mọi phần tử <supports-gl-texture>. Google Play trích xuất mã mô tả định dạng của các phần tử rồi lưu trữ cục bộ dưới dạng siêu dữ liệu liên kết với .apk của ứng dụng và phiên bản ứng dụng.

Khi người dùng tìm kiếm hoặc duyệt xem ứng dụng trên Google Play, dịch vụ sẽ so sánh các định dạng nén kết cấu mà ứng dụng hỗ trợ với các định dạng nén mà thiết bị của người dùng hỗ trợ. Dữ liệu so sánh sẽ dựa trên định dạng chuỗi mã mô tả và kết quả trùng khớp phải chính xác.

Nếu thiết bị hỗ trợ một định dạng nén kết cấu bất kỳ của ứng dụng, thì Google Play sẽ cho phép người dùng xem ứng dụng đó cũng như có thể tải ứng dụng đó xuống. Ngoài ra, nếu thiết bị không hỗ trợ định dạng nào của ứng dụng, thì Google Play sẽ lọc ứng dụng đó ra để không cho phép người dùng tải ứng dụng đó xuống.

Nếu một ứng dụng không khai báo phần tử <supports-gl-texture> nào, thì Google Play sẽ không áp dụng bộ lọc dựa trên định dạng nén kết cấu GL.