Omówienie zgodności urządzeń

Android został zaprojektowany do działania na wielu różnych urządzeniach, takich jak telefony, tablety i telewizory. Gama urządzeń zapewnia ogromny potencjał wśród odbiorców Twojej aplikacji. Aby aplikacja była skuteczna na wszystkich urządzeniach, musi: toleruje zmienność cech i zapewnia elastyczny interfejs, który dostosowuje do różnych konfiguracji ekranu.

Aby zapewnić zgodność urządzeń, Android udostępnia dynamiczną platformę aplikacji. Możesz w nim określić zasoby aplikacji w obrazie statycznym np. układy XML dla różnych rozmiarów ekranów. Następnie Android wczytuje odpowiednie zasoby na podstawie bieżącej konfiguracji urządzenia. Na z uwzględnieniem projektu aplikacji i dodatkowych zasobów możesz opublikować pakietu aplikacji (APK), który optymalizuje wygodę użytkowników na różnych urządzeń.

Jeśli to konieczne, możesz określić wymagania aplikacji dotyczące funkcji kontrolować, na jakich typach urządzeń można instalować Twoją aplikację ze Sklepu Google Play. Z tego dokumentu dowiesz się, jak kontrolować, które urządzenia mają dostęp do aplikacji i o tym, jak je przygotować, aby docierały do właściwych odbiorców.

Co oznacza „zgodność”? średnio?

Jeśli chodzi o programowanie na Androida, dostępne są 2 typy zgodności: zgodności urządzeń i aplikacji.

Android to projekt open source, dlatego każdy producent sprzętu stworzenie urządzenia z systemem operacyjnym Android. Urządzenie to „Zgodność z Androidem” tylko jeśli może prawidłowo uruchamiać aplikacje napisane dla Środowisko wykonawcze Androida. Dokładne informacje o Androidzie środowisko wykonawcze są definiowane przez Androida programu zgodności. Każde urządzenie musi przejść test zgodności z wymaganiami Compatibility Test Suite (CTS), które są uznawane za zgodne.

Deweloper aplikacji nie musi martwić się o to, czy urządzenie Zgodność z Androidem, ponieważ tylko urządzenia zgodne z Androidem obejmują Sklepu Google Play. Jeśli więc użytkownik zainstaluje aplikację ze Sklepu Google Play, korzystają z urządzenia zgodnego z Androidem.

Zastanów się jednak, czy Twoja aplikacja jest zgodna z każdym potencjalną konfigurację urządzenia. Ponieważ Android działa na wielu różnych urządzeniach konfiguracji, nie wszystkie funkcje są dostępne na wszystkich urządzeniach. Na przykład niektóre urządzenia mogą nie mieć czujnika kompasu. Jeśli główna funkcjonalność aplikacji wymaga czujnika kompasu, Twoja aplikacja jest zgodna tylko z urządzeniami, które: i uwzględnić tę funkcję.

Kontrolowanie dostępności aplikacji na urządzeniach

Android obsługuje różne funkcje, z których aplikacja może korzystać za pomocą platformy API. Niektóre funkcje są oparte na sprzęcie, na przykład czujnika kompasu. niektóre są oparte na oprogramowaniu (np. widżety aplikacji); a inne zależą od wersji platformy. Nie każde urządzenie obsługuje wszystkie funkcje, więc konieczne może być kontrolowanie dostępności na urządzeniach na podstawie wymaganych funkcji aplikacji.

Aby Twoja aplikacja mogła korzystać z największej liczby użytkowników, zapewnij im wsparcie konfiguracji urządzeń przy użyciu jednego pliku APK lub pakietu AAB. W większości przypadków można to zrobić, wyłączając funkcje opcjonalne w czasie działania dostarczanie aplikacji zasobów z alternatywami dla różnych konfiguracji, takich jak różne układy na różne rozmiary ekranów. W razie potrzeby możesz ograniczyć dostępności na określonych urządzeniach w Sklepie Google Play na podstawie charakterystyka urządzenia:

Funkcje urządzenia

Aby zarządzać dostępnością aplikacji na podstawie funkcji urządzenia, Android określa identyfikatorów funkcji wszystkich funkcji sprzętu lub oprogramowania, które mogą nie być na wszystkich urządzeniach. Na przykład identyfikator elementu czujnika kompasu to FEATURE_SENSOR_COMPASS, a identyfikator funkcji widżetów aplikacji to FEATURE_APP_WIDGETS

W razie potrzeby możesz uniemożliwić użytkownikom instalowanie Twojej aplikacji, jeśli urządzenia nie zapewniają niezbędnych funkcji przez zadeklarowanie ich za pomocą <uses-feature> elementu w swojej aplikacji plik manifestu.

Jeśli na przykład aplikacja nie działa na urządzeniu bez kompasu czujnika kompasu, możesz zadeklarować, że jest to wymagane, używając tag manifestu:

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

Sklep Google Play porównuje funkcje wymagane przez Twoją aplikację z funkcjami funkcje dostępne na urządzeniach poszczególnych użytkowników w celu określenia, czy aplikacja jest z każdym urządzeniem. Jeśli urządzenie nie ma wszystkich funkcji, wymaga aplikacji, użytkownik nie może jej zainstalować.

Jeśli jednak główna funkcja aplikacji nie wymaga funkcji urządzenia, ustaw required. na "false" i sprawdź funkcję urządzenia w czasie działania. Jeśli funkcja aplikacji nie jest dostępna na obecnym urządzeniu, płynnie zmniejsz odpowiadającej jej funkcji. Możesz na przykład zapytać, czy cecha jest dostępne przez telefon hasSystemFeature() podobny do tego:

Kotlin

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature()
}

Java

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature();
}

Informacje o wszystkich filtrach, których możesz używać do kontrolowania dostępności aplikacji w Sklepie Google Play, zobacz Filtry w Google Play dokumentacji.

Wersja platformy

Różne urządzenia mogą korzystać z różnych wersji platformy Androida, np. na Androida 12 lub Androida 13. Każda kolejna wersja platformy często dodaje interfejsy API niedostępne w poprzedniej wersji. Aby wskazać zestaw interfejsów API każda wersja platformy określa parametr Poziom interfejsu API. Na przykład Android 12 jest na poziomie API 31, a Android 13 to API 33.

Musisz podać minSdkVersion oraz targetSdkVersion wartości w pliku build.gradle:

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"

        // Defines the minimum API level required to run the app.
        minSdkVersion(30)

        // Specifies the API level used to test the app.
        targetSdkVersion(33)
        ...
    }
}

Odlotowe

android {
    defaultConfig {
        applicationId 'com.example.myapp'

        // Defines the minimum API level required to run the app.
        minSdkVersion 30

        // Specifies the API level used to test the app.
        targetSdkVersion 33
        ...
    }
}

Więcej informacji o pliku build.gradle znajdziesz w artykule Skonfiguruj kompilację.

Każda kolejna wersja Androida zapewnia zgodność aplikacji za pomocą interfejsów API z poprzednich wersji platformy, dzięki czemu aplikacja jest zgodna z nowych wersji Androida, korzystając z udokumentowanych interfejsów API.

Jeśli jednak Twoja aplikacja korzysta z interfejsów API dodanych w nowszej wersji platformy, nie wymaga ich do swojej głównej funkcjonalności, sprawdź poziom interfejsu API na stronie w środowisku wykonawczym i płynnie uporać się z odpowiednimi funkcjami, gdy poziom za niskie. W tym przypadku ustaw najniższą wartość w polu minSdkVersion pod kątem głównej funkcjonalności aplikacji, a potem porównaj wersji, SDK_INT, do stałej kryptonimu w argumencie Build.VERSION_CODES odpowiadający poziomowi interfejsu API, który chcesz sprawdzić, jak pokazano poniżej przykład:

Kotlin

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop()
}

Java

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop();
}

Konfiguracja ekranu

Android działa na urządzeniach różnych rozmiarów, takich jak telefony, tablety i telewizory. Do kategoryzować urządzenia według typu ekranu, Android określa 2 cechy charakterystyczne: rozmiary poszczególnych urządzeń: rozmiar ekranu (fizyczny rozmiar ekranu) i gęstość ekranu. (fizyczna gęstość pikseli na ekranie, DPI). Aby uprościć różne Android uogólnia te warianty w grupy, dzięki którym łatwiejsze kierowanie reklam:

  • Cztery uogólnione rozmiary: mały, normalny, duży i bardzo duży
  • Kilka uogólnionych gęstości: mdpi (średnia), hdpi (wysoka), xhdpi (dodatkowe) wysoka), xxhdpi (bardzo wysoka) i inne

Aplikacja jest domyślnie zgodna ze wszystkimi rozmiarami i gęstościami ekranów, ponieważ system dostosowuje układ UI i zasoby graficzne, niezbędne na każdym ekranie. Dostarczaj zoptymalizowane obrazy bitmapowe dla popularnego ekranu gęstości.

Zoptymalizuj wrażenia użytkowników, stosując jak najbardziej elastyczny układ. Gdy występują układy wymagające dużych zmian w konfiguracji, takie jak w orientacji poziomej lub dużych i małych okien, rozważ układy, które dostosowują się do niewielkich zmian w konfiguracji. Dzięki temu na urządzeniach takich jak tablety, telefony i urządzenia składane. it jest pomocny także wtedy, gdy okna zmieniają rozmiar w trybie wielu okien.

Aby uzyskać informacje o tworzeniu alternatywnych zasobów dla różnych oraz jak w razie potrzeby ograniczyć wyświetlanie aplikacji do określonych rozmiarów przeczytaj zgodność ekranu w skrócie i obejrzyj aplikacja na duży ekran wytycznych dotyczących jakości.

Kontrolowanie dostępności aplikacji z powodów biznesowych

Oprócz ograniczania dostępności aplikacji w zależności od urządzenia może okazać się konieczne ograniczenie dostępności aplikacji lub z powodów prawnych. W takich sytuacjach Sklep Google Play oferuje opcji filtrowania w Konsoli Play, które pozwalają kontrolować dostępność z przyczyn nietechnicznych, takich jak lokalizacja użytkownika lub połączenie bezprzewodowe operatora sieci komórkowej.

filtrowanie pod kątem zgodności technicznej, np. wymaganego sprzętu. – zawsze na podstawie informacji zawartych w pakiecie APK lub AAB. . Filtrowanie z powodów nietechnicznych, takich jak geograficzne locale – jest zawsze obsługiwany w Konsola Google Play.

Dodatkowe zasoby:

Omówienie zasobów dotyczących aplikacji
Informacje o strukturze aplikacji na Androida, które rozdzielają aplikacje z kodu aplikacji, w tym informacje o tym, jak możesz podać zasobów dla konkretnych konfiguracji urządzeń.
Filtry w Google Play
Dowiedz się, w jaki sposób Sklep Google Play może zablokować Twoją na różnych urządzeniach.
Uprawnienia na Androidzie
Jak Android ogranicza dostęp aplikacji do określonych interfejsów API za pomocą systemu uprawnień które wymagają zgody użytkownika na korzystanie z tych interfejsów API przez aplikację.