Gdy użytkownik wyszukuje lub przegląda aplikacje do pobrania w Google Play, wyniki są filtrowane na podstawie tego, które aplikacje są zgodne z urządzeniem. Jeśli na przykład aplikacja wymaga aparatu, Google Play nie wyświetla jej na urządzeniach, które nie mają aparatu. Ten filtr pomaga deweloperom zarządzać dystrybucją aplikacji i zapewnia użytkownikom jak najlepsze wrażenia.
Filtrowanie w Google Play odbywa się na podstawie kilku typów metadanych aplikacji i ustawień konfiguracji, w tym deklaracji pliku manifestu, wymaganych bibliotek, zależności od architektury oraz ustawień dystrybucji określonych w Konsoli Play, takich jak kierowanie geograficzne, ceny itp.
Filtrowanie w Google Play jest częściowo oparte na deklaracjach w pliku manifestu i innych aspektach platformy Android, ale rzeczywiste zachowania filtrowania różnią się od platformy i nie są powiązane z konkretnymi poziomami interfejsu API. Ten dokument określa aktualne reguły filtrowania używane przez Google Play.
Jak działają filtry w Google Play
Google Play używa opisanych poniżej ograniczeń filtra, aby określić, czy wyświetlić Twoją aplikację użytkownikowi, który przegląda lub wyszukuje aplikacje w aplikacji Google Play.
Określając, czy wyświetlić aplikację, Google Play sprawdza wymagania dotyczące sprzętu i oprogramowania, a także operatora, lokalizację i inne cechy urządzenia. Następnie porównuje je z ograniczeniami i zależnościami określonymi w pliku manifestu aplikacji i szczegółach publikacji.
Jeśli aplikacja jest zgodna z urządzeniem zgodnie z zasadami filtra, Google Play wyświetla ją użytkownikowi. W przeciwnym razie Google Play ukrywa aplikację w wynikach wyszukiwania i podczas przeglądania kategorii, nawet jeśli użytkownik żąda otwarcia aplikacji przez kliknięcie precyzyjnego linku, który prowadzi bezpośrednio do identyfikatora aplikacji w Google Play.
Możesz użyć dowolnej kombinacji dostępnych filtrów. Możesz na przykład ustawić wymagania minSdkVersion
"4"
i smallScreens="false"
w aplikacji, a potem podczas przesyłania aplikacji do Google Play możesz kierować ją tylko na kraje europejskie (operatorów). Filtry Google Play uniemożliwią dostęp do aplikacji na dowolnym urządzeniu, które nie spełnia wszystkich tych wymagań.
Wszystkie ograniczenia filtrowania są powiązane z wersją aplikacji i mogą się zmieniać w zależności od wersji. Jeśli np. użytkownik zainstaluje Twoją aplikację, a Ty opublikujesz aktualizację, która spowoduje, że aplikacja stanie się niewidoczna dla użytkownika, nie będzie on widzieć, że aktualizacja jest dostępna.
Filtrowanie na stronie internetowej Google Play
Gdy użytkownicy przeglądają stronę internetową Google Play, widzą wszystkie opublikowane aplikacje. Strona internetowa Google Play porównuje wymagania aplikacji z każdym zarejestrowanym urządzeniem użytkownika pod kątem zgodności i zezwala na instalację aplikacji tylko wtedy, gdy jest ona zgodna z tym urządzeniem.
Filtrowanie na podstawie pliku manifestu aplikacji
Większość filtrów jest wywoływana przez elementy w pliku manifestu aplikacji AndroidManifest.xml (chociaż nie wszystko w pliku manifestu może wywoływać filtrowanie). Tabela 1 zawiera elementy pliku manifestu, których należy używać do uruchamiania filtrowania, oraz wyjaśnia, jak działa filtrowanie w przypadku każdego z nich.
Tabela 1. Elementy pliku manifestu, które powodują filtrowanie w Google Play.
Element pliku manifestu | Nazwa filtra | Jak to działa |
---|---|---|
<supports-screens>
|
Rozmiar ekranu |
Aplikacja wskazuje rozmiary ekranów, które jest w stanie obsługiwać, przez ustawienie atrybutów elementu Zasadniczo Google Play zakłada, że platforma na urządzeniu może dostosować mniejsze układy do większych ekranów, ale nie może dostosować większych układów do mniejszych ekranów. Jeśli więc aplikacja deklaruje obsługę tylko „normalnego” rozmiaru ekranu, Google Play udostępnia ją na urządzeniach z normalnym i dużym ekranem, ale filtruje aplikację tak, aby nie była dostępna na urządzeniach z małym ekranem. Jeśli aplikacja nie deklaruje atrybutów dla atrybutu
Przykład 1 Przykład 2 Przykład 3 Więcej informacji o deklarowaniu obsługi rozmiarów ekranów w aplikacji znajdziesz w artykule |
<uses-configuration>
|
Urządzenie
Konfiguracja: klawiatura, nawigacja, ekran dotykowy |
Aplikacja może prosić o określone funkcje sprzętowe, a Google Play będzie wyświetlać ją tylko na urządzeniach z wymaganym sprzętem. Przykład 1 Przykład 2 Więcej informacji znajdziesz w sekcji |
<uses-feature>
|
Funkcje urządzenia ( name ) |
Aplikacja może wymagać, aby na urządzeniu były dostępne określone funkcje. Ta funkcja została wprowadzona w Androidzie 2.0 (interfejs API na poziomie 5). Przykład 1 Przykład 2 Pełne informacje znajdziesz w artykule Filtrowanie na podstawie funkcji domyślnych: w niektórych przypadkach Google Play interpretuje uprawnienia wymagane przez elementy |
OpenGL-ES
Wersja ( openGlEsVersion ) |
Aplikacja może wymagać, aby urządzenie obsługiwało określoną wersję OpenGL ES za pomocą atrybutu Przykład 1 Przykład 2 Przykład 3 Przykład 4 Więcej informacji znajdziesz w sekcji |
|
<uses-library> |
Biblioteki oprogramowania | Aplikacja może wymagać obecności określonych bibliotek udostępnionych na urządzeniu. Przykład 1 Przykład 2 Więcej informacji znajdziesz w sekcji |
<uses-permission> |
W ścisłym tego słowa znaczeniu Google Play nie filtruje elementów Ogólnie, jeśli aplikacja prosi o uprawnienia związane ze sprzętem, Google Play zakłada, że aplikacja wymaga funkcji sprzętowych, nawet jeśli nie ma odpowiednich deklaracji Listę uprawnień, które sugerują funkcje sprzętowe, znajdziesz w dokumentacji elementu |
|
<uses-sdk> |
Minimalna wersja platformy (minSdkVersion ) |
Aplikacja może wymagać minimalnego poziomu interfejsu API. Przykład 1 Przykład 2 Aby uniknąć tego drugiego scenariusza, zalecamy zawsze deklarowanie elementu |
Maksymalna wersja platformy (maxSdkVersion ) |
Wycofany. Android w wersji
2.1 i nowszych nie sprawdza ani nie wymusza atrybutu |
Zaawansowane filtry pliku manifestu
Oprócz elementów pliku manifestu wymienionych w tabeli 1 Google Play może też filtrować aplikacje na podstawie elementów zaawansowanego pliku manifestu wymienionych w tabeli 2.
Te elementy pliku manifestu i filtrowanie, które one wywołują, są przeznaczone tylko do wyjątkowych zastosowań. Są one przeznaczone do określonych typów gier o wysokiej wydajności i podobnych aplikacji, które wymagają ścisłej kontroli dystrybucji. Większość aplikacji nie powinna używać tych filtrów.
Tabela 2. Zaawansowane elementy pliku manifestu do filtrowania w Google Play.
Element pliku manifestu | Podsumowanie |
---|---|
<compatible-screens> |
Google Play odfiltrowuje aplikację, jeśli rozmiar i gęstość ekranu urządzenia nie pasują do żadnej z konfiguracji ekranu (deklarowanej przez element Uwaga: zazwyczaj nie należy używać tego elementu pliku manifestu. Użycie tego elementu może znacznie zmniejszyć potencjalną bazę użytkowników aplikacji, ponieważ wyklucza wszystkie kombinacje rozmiarów i gęstości ekranu, których nie uwzględniono na liście. Zamiast tego użyj elementu pliku manifestu |
<supports-gl-texture> |
Google Play odfiltrowuje aplikację, chyba że co najmniej 1 z formatów kompresji tekstur GL obsługiwanych przez aplikację jest też obsługiwany przez urządzenie. |
Inne filtry
Google Play używa innych właściwości aplikacji, aby określić, czy wyświetlić aplikację, czy ją ukryć dla konkretnego użytkownika na danym urządzeniu. Więcej informacji znajdziesz w tabeli poniżej.
Tabela 3. Aplikacja i publikowanie charakterystyki, które wpływają na filtrowanie w Google Play.
Nazwa filtra | Jak to działa |
---|---|
Stan publikacji | W wynikach wyszukiwania i podczas przeglądania w Google Play będą wyświetlane tylko opublikowane aplikacje. Nawet jeśli aplikacja nie jest opublikowana, można ją zainstalować, jeśli użytkownicy mogą ją zobaczyć w obszarze Pobrane w grupie zakupionych, zainstalowanych lub niedawno odinstalowanych aplikacji. Jeśli aplikacja została zawieszona, użytkownicy nie będą mogli jej ponownie zainstalować ani zaktualizować, nawet jeśli pojawi się w sekcji Pobrane. |
Cena Stan | Płatne aplikacje mogą być widoczne tylko dla niektórych użytkowników. Aby wyświetlać płatne aplikacje, urządzenie musi mieć zainstalowany Android 1.1 lub nowszy i znajdować się w kraju, w którym są one dostępne. Jeśli urządzenie ma kartę SIM, to operator karty SIM decyduje, czy płatne aplikacje są dostępne. Jeśli urządzenie nie ma karty SIM, do określenia, czy znajduje się ono w kraju, w którym dostępne są płatne aplikacje, używany jest adres IP urządzenia. |
Kierowanie na kraj | Podczas przesyłania aplikacji do Google Play możesz wybrać kraje, w których chcesz ją dystrybuować, w sekcji Ceny i dystrybucja. Aplikacja będzie wtedy dostępna tylko dla użytkowników z wybranych krajów. |
Architektura procesora (ABI) | Aplikacja zawierająca natywne biblioteki na potrzeby konkretnej architektury procesora (np. ARM EABI w wersji 7 lub x86) jest widoczna tylko na urządzeniach, które obsługują tę architekturę. Szczegółowe informacje o NDK i używaniu bibliotek natywnych znajdziesz w artykule Co to jest pakiet NDK na Androida? |
Aplikacje chronione przed kopiowaniem | Google Play nie obsługuje już funkcji ochrony przed kopiowaniem w Konsoli Play i nie filtruje aplikacji na jej podstawie. Aby zabezpieczyć aplikację, użyj licencjonowania aplikacji. Więcej informacji znajdziesz w artykule Zastąpienie ochrony przed kopiowaniem. |
Publikowanie wielu plików APK z różnymi filtrami
Niektóre filtry Google Play umożliwiają publikowanie wielu plików APK tej samej aplikacji, aby udostępniać różne pliki APK na różne konfiguracje urządzeń. Jeśli na przykład tworzysz grę wideo, która wykorzystuje zasoby graficzne o wysokiej jakości, możesz utworzyć 2 pliki APK, z których każdy będzie obsługiwał inny format kompresji tekstur. Dzięki temu możesz zmniejszyć rozmiar pliku APK, uwzględniając tylko te tekstury, które są wymagane w przypadku każdej konfiguracji urządzenia. W zależności od tego, jakie formaty kompresji tekstur obsługuje dane urządzenie, Google Play dostarczy plik APK, który został zadeklarowany jako obsługujący to urządzenie.
Obecnie Google Play umożliwia publikowanie wielu plików APK tej samej aplikacji tylko wtedy, gdy każdy z nich zawiera różne filtry na podstawie tych konfiguracji:
- Formaty kompresji tekstur OpenGL
za pomocą elementu
<supports-gl-texture>
. - Rozmiar ekranu (i opcjonalnie gęstość ekranu)
za pomocą elementu
<supports-screens>
lub<compatible-screens>
; - Poziom interfejsu API
za pomocą elementu
<uses-sdk>
. - Architektura procesora (ABI)
Dołączając natywne biblioteki utworzone za pomocą NDK Androida, które są kierowane na konkretną architekturę procesora (np. ARM EABI v7 lub x86).
Wszystkie inne filtry działają tak samo jak zwykle, ale te 4 filtry to jedyne, które mogą odróżniać jeden plik APK od drugiego w ramach tej samej strony aplikacji w Google Play. Na przykład nie możesz opublikować kilku plików APK tej samej aplikacji, jeśli różnią się one tylko tym, czy urządzenie ma kamerę.
Uwaga: publikowanie wielu plików APK dla tej samej aplikacji jest uważane za zaawansowaną funkcję, dlatego w przypadku większości aplikacji należy publikować tylko 1 plik APK, który obsługuje szeroki zakres konfiguracji urządzeń. Aby opublikować wiele plików APK, musisz przestrzegać określonych reguł w filtrach i zwrócić szczególną uwagę na kody wersji każdego pliku APK, aby zapewnić prawidłowe ścieżki aktualizacji dla każdej konfiguracji.
Jeśli chcesz dowiedzieć się więcej o publikowaniu wielu plików APK w Google Play, przeczytaj artykuł Obsługa wielu plików APK.