Khi người dùng tìm kiếm hoặc duyệt tìm ứng dụng để tải từ Google Play xuống, kết quả sẽ được lọc dựa trên những ứng dụng tương thích với thiết bị. Ví dụ: nếu ứng dụng yêu cầu máy ảnh, Google Play sẽ không hiển thị ứng dụng đó với thiết bị không có máy ảnh. Quá trình lọc này giúp nhà phát triển quản lý việc phân phối ứng dụng và giúp đảm bảo trải nghiệm người dùng tốt nhất có thể. Show Việc lọc trong Google Play dựa trên một số loại siêu dữ liệu ứng dụng và tuỳ chọn cài đặt cấu hình, bao gồm cả việc khai báo tệp kê khai, các thư viện cần thiết, phần phụ thuộc vào kiến trúc và tuỳ chọn kiểm soát phân phối trong Google Play Console, chẳng hạn như tuỳ chọn nhắm mục tiêu theo địa lý, giá cả và các thông tin khác. Hoạt động lọc của Google Play dựa trên một phần của nội dung khai báo tệp kê khai và các khía cạnh khác của khung Android, tuy nhiên hành vi lọc thực tế sẽ khác biệt với khung và không bị ràng buộc với các cấp độ API cụ thể. Tài liệu này đề cập tới các quy tắc lọc hiện tại mà Google Play sử dụng. Cách bộ lọc hoạt động trên Google PlayGoogle Play sử dụng hạn chế về bộ lọc được mô tả bên dưới để xác định khả năng hiển thị ứng dụng cho người dùng đang duyệt web hoặc tìm kiếm ứng dụng trên ứng dụng Google Play. Để xác định có hiển thị ứng dụng hay không, Google Play sẽ kiểm tra yêu cầu về phần cứng và phần mềm của thiết bị, cũng như nhà mạng, vị trí và các đặc điểm khác. Sau đó, Google Play so sánh với các hạn chế và phần phụ thuộc của tệp kê khai và thông tin phát hành chi tiết của ứng dụng. Nếu ứng dụng tương thích với thiết bị theo quy tắc bộ lọc, Google Play sẽ hiển thị ứng dụng đó cho người dùng. Nếu không, Google Play sẽ ẩn ứng dụng của bạn khỏi kết quả tìm kiếm và duyệt xem theo danh mục, ngay cả khi người dùng yêu cầu cụ thể ứng dụng bằng cách nhấp vào một đường liên kết sâu trỏ trực tiếp tới mã nhận dạng ứng dụng trong Google Play. Bạn có thể sử dụng bất cứ tổ hợp bộ lọc có sẵn nào cho ứng dụng. Ví dụ: bạn có thể đặt yêu cầu Tất cả hạn chế về việc lọc đều được liên kết với phiên bản của ứng dụng và bạn có thể thay đổi giữa các phiên bản. Ví dụ: nếu người dùng đã cài đặt ứng dụng của bạn và bạn phát hành một bản cập nhật khiến ứng dụng đó không hiển thị với người dùng, thì người dùng sẽ không thấy có bản cập nhật. Lọc trên trang web của Google PlayKhi người dùng duyệt qua trang web trên Google Play, họ có thể thấy tất cả ứng dụng đã phát hành. Tuy nhiên, trang web Google Play sẽ so sánh các yêu cầu về ứng dụng với từng thiết bị mà người dùng đã đăng ký để đảm bảo khả năng tương thích. Đồng thời, Google Play sẽ chỉ cho phép họ cài đặt nếu ứng dụng đó tương thích với thiết bị của họ. Lọc dựa trên tệp kê khai ứng dụngHầu hết các bộ lọc được kích hoạt bởi các phần tử trong tệp kê khai của ứng dụng, AndroidManifest.xml (mặc dù không phải tất cả nội dung trong tệp kê khai đều có thể kích hoạt tính năng lọc). Bảng 1 liệt kê các phần tử trong tệp kê khai mà bạn nên sử dụng để kích hoạt tính năng lọc và giải thích cách bộ lọc hoạt động cho mỗi phần tử. Bảng 1. Các phần tử tệp kê khai kích hoạt tính năng lọc trên Google Play. Phần tử tệp kê khai Tên bộ lọc Cách thức hoạt động`<supports-screens>` Kích thước màn hình Một ứng dụng cho biết kích thước màn hình mà ứng dụng này có thể hỗ trợ bằng cách thiết lập các thuộc tính của phần tử Theo nguyên tắc chung, Google Play giả định rằng nền tảng trên thiết bị có thể điều chỉnh các bố cục nhỏ cho phù hợp với màn hình lớn hơn, nhưng không thể điều chỉnh các bố cục lớn hơn cho màn hình nhỏ hơn. Do đó, nếu một ứng dụng chỉ khai báo hỗ trợ kích thước màn hình "bình thường", Google Play sẽ cung cấp ứng dụng đó cho cả thiết bị có màn hình thông thường và màn hình lớn, và lọc ứng dụng để không hiển thị cho thiết bị có màn hình nhỏ. Nếu một ứng dụng không khai báo thuộc tính cho`<supports-screens>`, Google Play sẽ sử dụng giá trị mặc định cho các thuộc tính đó. Những thuộc tính này thay đổi theo Cấp độ API. Cụ thể:
Ví dụ 1:
Tệp kê khai khai báo Ví dụ 2:
Tệp kê khai khai báo Ví dụ 3:
Tệp kê khai khai báo Để biết thêm thông tin về cách khai báo hỗ trợ cho kích thước màn hình trong ứng dụng, hãy xem `"4"`9 Cấu hình thiết bị: bàn phím, thanh điều hướng, màn hình cảm ứng Một ứng dụng có thể yêu cầu một số tính năng phần cứng nhất định và Google Play sẽ chỉ hiển thị ứng dụng trên thiết bị có phần cứng được yêu cầu. Ví dụ 1: Tệp kê khai bao gồm `smallScreens="false"`0 và người dùng đang tìm kiếm ứng dụng trên thiết bị không có tuỳ chọn kiểm soát điều hướng năm chiều. Kết quả: Google Play sẽ không hiển thị ứng dụng với người dùng. Ví dụ 2: Tệp kê khai không bao gồm phần tử `smallScreens="false"`1. Kết quả: Google Play sẽ hiển thị ứng dụng với tất cả người dùng, trừ khi bộ lọc khác được áp dụng. Để biết thêm thông tin, hãy xem `smallScreens="false"`1. `smallScreens="false"`3 Tính năng của thiết bị (`smallScreens="false"`4) Ứng dụng có thể yêu cầu thiết bị phải có một số tính năng nhất định. Chức năng này đã được giới thiệu trong Android 2.0 (API cấp 5). Ví dụ 1: Tệp kê khai bao gồm `smallScreens="false"`5 và người dùng đang tìm kiếm ứng dụng trên thiết bị không có cảm biến ánh sáng. Kết quả: Google Play sẽ không hiển thị ứng dụng với người dùng. Ví dụ 2: Tệp kê khai không bao gồm phần tử `smallScreens="false"`6. Kết quả: Google Play sẽ hiển thị ứng dụng với tất cả người dùng, trừ khi bộ lọc khác được áp dụng. Để biết toàn bộ thông tin, hãy xem `smallScreens="false"`3. Lọc theo các tính năng ngụ ý: Trong một số trường hợp, Google Play diễn giải các quyền được yêu cầu thông qua các phần tử `smallScreens="false"`8 là những yêu cầu về tính năng tương đương với các yêu cầu được khai báo trong phần tử `smallScreens="false"`6. Xem , dưới đây. Phiên bản OpenGL-ES (`<supports-screens>`1) Một ứng dụng có thể yêu cầu rằng thiết bị phải hỗ trợ phiên bản OpenGL-ES cụ thể bằng cách sử dụng thuộc tính `<supports-screens>`2. Ví dụ 1: Một ứng dụng yêu cầu nhiều phiên bản OpenGL-ES bằng cách chỉ định `<supports-screens>`1 nhiều lần trong tệp kê khai. Kết quả: Google Play giả định rằng ứng dụng này yêu cầu phiên bản mới nhất được biểu thị. Ví dụ 2: Một ứng dụng yêu cầu OpenGL-ES phiên bản 1.1 và người dùng đang tìm kiếm ứng dụng trên thiết bị hỗ trợ OpenGL-ES phiên bản 2.0. Kết quả: Google Play sẽ hiển thị ứng dụng với người dùng, trừ khi bộ lọc khác được áp dụng. Nếu thiết bị báo cáo rằng có hỗ trợ phiên bản OpenGL-ES X, thì Google Play sẽ giả định rằng thiết bị đó cũng hỗ trợ mọi phiên bản cũ hơn X. Ví dụ 3: Người dùng đang tìm kiếm ứng dụng trên thiết bị không có phiên bản OpenGL-ES (ví dụ: thiết bị chạy Android 1.5 trở xuống). Kết quả: Google Play giả định rằng thiết bị chỉ hỗ trợ OpenGL-ES phiên bản 1.0. Google Play sẽ chỉ hiển thị cho người dùng ứng dụng không chỉ định `<supports-screens>`1 hoặc ứng dụng không chỉ định OpenGL-ES phiên bản mới hơn 1.0. Ví dụ 4: Tệp kê khai không chỉ định `<supports-screens>`1. Kết quả: Google Play sẽ hiển thị ứng dụng với tất cả người dùng, trừ khi bộ lọc khác được áp dụng. Để biết thêm thông tin, hãy xem `smallScreens="false"`6. `<supports-screens>`7 Thư viện phần mềm Một ứng dụng có thể đòi hỏi thiết bị phải có một số thư viện chia sẻ cụ thể. Ví dụ 1:
Một ứng dụng đòi hỏi có thư viện Ví dụ 2: Tệp kê khai không bao gồm phần tử `<supports-screens>`0. Kết quả: Google Play sẽ hiển thị ứng dụng với tất cả người dùng, trừ khi bộ lọc khác được áp dụng. Để biết thêm thông tin, hãy xem `<supports-screens>`0. `<supports-screens>`2 Google Play tuyệt đối không lọc dựa trên các phần tử Nhìn chung, nếu một ứng dụng yêu cầu quyền liên quan đến phần cứng, thì Google Play sẽ giả định rằng ứng dụng đó yêu cầu tính năng cơ bản dành cho phần cứng, mặc dù có thể không có nội dung khai báo tương ứng với`smallScreens="false"`6. Sau đó, Google Play sẽ thiết lập bộ lọc dựa trên tính năng được ngụ ý trong phần khai báo `smallScreens="false"`6. Để nắm được danh sách các quyền ngụ ý về tính năng phần cứng, hãy xem tài liệu cho phần tử .
Một ứng dụng có thể yêu cầu một cấp độ API tối thiểu. Ví dụ 1: Tệp kê khai bao gồm `<supports-screens>`3 và ứng dụng sử dụng API đã được giới thiệu trong API cấp 3. Người dùng đang tìm kiếm ứng dụng trên thiết bị có API cấp 2. Kết quả: Google Play sẽ không hiển thị ứng dụng với người dùng. Ví dụ 2:
Tệp kê khai không bao gồm Vì muốn tránh tình huống thứ hai này, bạn luôn nên khai báo Phiên bản khung tối đa (`<supports-screens>`8) Không dùng nữa. Android 2.1 trở lên không kiểm tra hoặc thực thi thuộc tính Bạn không nên khai báo `<supports-screens>`8. Để biết chi tiết, hãy xem . Bộ lọc tệp kê khai nâng caoNgoài phần tử tệp kê khai trong , Google Play cũng có thể lọc các ứng dụng dựa trên phần tử tệp kê khai nâng cao trong bảng 2. Các phần tử tệp kê khai này và bộ lọc mà chúng kích hoạt chỉ dành cho trường hợp sử dụng ngoại lệ. Các ứng dụng này được thiết kế dành cho một số loại trò chơi đòi hỏi hiệu suất cao và các ứng dụng tương tự có yêu cầu nghiêm ngặt về các tuỳ chọn kiểm soát việc phân phối ứng dụng. Hầu hết ứng dụng không bao giờ sử dụng các bộ lọc này. Bảng 2. Các phần tử tệp kê khai nâng cao cho bộ lọc Google Play. Phần tử tệp kê khaiTóm tắt`[android: minSdkVersion](https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=vi min)`4Google Play sẽ lọc ứng dụng nếu kích thước và mật độ màn hình của thiết bị không khớp với bất kỳ cấu hình màn hình nào (do phần tử `[android: minSdkVersion](https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=vi min)
|