Spełnij wymóg dotyczący docelowego poziomu interfejsu API w Google Play

Przesyłany plik APK musi spełniać wymagania Google Play dotyczące docelowego poziomu interfejsu API.

Od 31 sierpnia 2024 r.:

  • Nowe aplikacje i aktualizacje muszą być kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego. Nie dotyczy to aplikacji na Wear OS i Androida TV, które muszą być kierowane na Androida 13 (poziom API 33) lub nowszego.
  • Istniejące aplikacje muszą być kierowane na Androida 13 (poziom interfejsu API 33) lub nowszego, aby mogły być nadal dostępne dla nowych użytkowników na urządzeniach z systemem operacyjnym Android w wersji wyższej niż docelowy poziom interfejsu API aplikacji. Aplikacje kierowane na Androida 12 (poziom interfejsu API 31) lub niższym (Android 10 (poziom interfejsu API 29) lub niższy w przypadku Wear OS oraz Androida 11 (poziom interfejsu API 30) lub niższy w przypadku Androida TV będą dostępne tylko na urządzeniach z systemem operacyjnym Android, który jest taki sam lub niższy niż docelowy poziom interfejsu API aplikacji.

Jeśli potrzebujesz więcej czasu na zaktualizowanie aplikacji, możesz poprosić o przedłużenie terminu do 1 listopada 2024 r. Formularze przedłużenia terminu dla Twojej aplikacji będą dostępne w Konsoli Play jeszcze w tym roku.

Przykładowe wyjątki od tych wymagań:

  • Aplikacje zawsze prywatne, które są dostępne tylko dla użytkowników w konkretnej organizacji i przeznaczone wyłącznie do dystrybucji wewnętrznej.
  • Aplikacje kierowane na system operacyjny Android Automotive lub w pakiecie z plikami APK kierowanymi na system operacyjny Android Automotive.

Dlaczego warto kierować reklamy na nowsze pakiety SDK?

Każda nowa wersja Androida wprowadza zmiany, które poprawiają bezpieczeństwo i wydajność oraz zwiększają wygodę użytkowników tego systemu. Niektóre z tych zmian dotyczą tylko aplikacji, które bezpośrednio deklarują obsługę za pomocą atrybutu manifestu targetSdkVersion (nazywanego też docelowym poziomem interfejsu API).

Kierowanie aplikacji na aktualny poziom interfejsu API zapewnia, że użytkownicy mogą korzystać z tych ulepszeń, ale może ona nadal działać na starszych wersjach Androida. Kierowanie na aktualny poziom interfejsu API umożliwia również aplikacji korzystanie z najnowszych funkcji platformy, aby zachwycać użytkowników. Ponadto od Androida 10 (poziom interfejsu API 29) użytkownicy wyświetlają ostrzeżenie przy pierwszym uruchomieniu aplikacji, jeśli jest ona kierowana na Androida 5.1 (poziom interfejsu API 22) lub starszego.

W tym dokumencie opisujemy ważne informacje, które należy wiedzieć, aby zaktualizować docelowy poziom interfejsu API, aby spełniał wymagania Google Play. W zależności od wersji, do której przenosisz dane, odpowiednie instrukcje znajdziesz w kolejnych sekcjach.

Migracja z Androida 12 lub nowszego (poziom interfejsu API 31) do nowszej wersji

Aby zaktualizować aplikację, aby kierować ją na nowszą wersję Androida, postępuj zgodnie z listą odpowiednich zmian w działaniu aplikacji:

Migracja z Androida 11 (poziom interfejsu API 30) na Androida 12 (poziom API 31)

Zabezpieczenia i uprawnienia

Interfejs użytkownika

  • Powiadomienia niestandardowe: powiadomienia z niestandardowymi widokami treści nie będą już korzystać z pełnego obszaru powiadomień. Zamiast tego system zastosuje standardowy szablon. Ten szablon zapewnia, że powiadomienia niestandardowe będą miały takie same dekoracje jak pozostałe powiadomienia we wszystkich stanach. Działanie to jest niemal identyczne jak w przypadku funkcji Notification.DecoratedCustomViewStyle.
  • Zmiany związane z weryfikacją linków aplikacji na Androida: podczas weryfikacji linków aplikacji na Androida upewnij się, że filtry intencji zawierają kategorię BROWSABLE i obsługują schemat HTTPS.

Wydajność

  • Ograniczenia uruchamiania usług działających na pierwszym planie: aby kierować aplikację na Androida 12 lub nowszego, aplikacja nie może uruchamiać usług działających na pierwszym planie, gdy działa w tle. Wyjątkiem są kilka szczególnych przypadków. Jeśli aplikacja próbuje uruchomić usługę na pierwszym planie, gdy działa w tle, występuje wyjątek (z wyjątkiem kilku szczególnych przypadków).

    Rozważ użycie WorkManagera do planowania i rozpoczynania pracy przyspieszonej, gdy aplikacja działa w tle. Aby wykonać pilne działania użytkownika, uruchom usługi na pierwszym planie w obrębie konkretnego alarmu.

  • Ograniczenia powiadomień dotyczących trampolin: gdy użytkownik klika powiadomienia, niektóre aplikacje reagują, uruchamiając komponent aplikacji, który rozpoczyna aktywność, którą użytkownik widzi i wchodzi z nią w interakcję. Ten komponent aplikacji to tzw. trampolina do powiadomień.

    Aplikacje nie mogą uruchamiać działań z usług ani odbiorników używanych jako trampolin do powiadomień. Gdy użytkownik kliknie powiadomienie lub przycisk polecenia w powiadomieniu, aplikacja nie będzie mogła wywołać funkcji startActivity() w usłudze lub odbiorniku.

Zobacz pełny zestaw zmian, które wpływają na aplikacje kierowane na Androida 12 (poziom interfejsu API 31).

Migracja z Androida w wersji starszej niż 11 (poziom interfejsu API 30)

Wybierz wersję Androida, z której chcesz przenieść dane:

Migracja na Androida 5 (poziom interfejsu API 21)

Zapoznaj się ze stroną Zmiany w działaniu każdej z tych wersji, aby upewnić się, że uwzględnia ona zmiany wprowadzone w tych wersjach:

Postępuj zgodnie z instrukcjami podanymi w następnej sekcji.

Migracja na Androida 6 (poziom interfejsu API 23)

W przypadku aplikacji kierowanych na Androida 6.0 lub nowszego, należy wziąć pod uwagę te kwestie:

  • Uprawnienia czasu działania

    • Niebezpieczne uprawnienia są przyznawane tylko w czasie działania. Przepływy interfejsu muszą zawierać afordancje umożliwiające przyznanie tych uprawnień.

    • W miarę możliwości zadbaj o to, aby Twoja aplikacja była przygotowana do obsługi odrzucania próśb o przyznanie uprawnień. Jeśli na przykład użytkownik odrzuci prośbę o dostęp do GPS urządzenia, upewnij się, że aplikacja ma inny sposób działania.

Pełną listę zmian wprowadzonych w Androidzie 6.0 (poziom interfejsu API 23) znajdziesz na stronie Zmiany w działaniu dotyczącej danej wersji platformy.

Postępuj zgodnie z instrukcjami podanymi w następnej sekcji.

Przejście na Androida 7 (poziom interfejsu API 24)

W przypadku aplikacji kierowanych na Androida 7.0 i nowsze wersje platformy należy wziąć pod uwagę te kwestie:

  • Uśpienie i tryb czuwania aplikacji

    Projektowanie pod kątem zachowań opisanych w artykule Optymalizacja pod kątem funkcji uśpienia i czuwania aplikacji, który obejmuje stopniowe zmiany wprowadzane w kilku wersjach platformy.

    Gdy urządzenie jest w trybie uśpienia i czuwania aplikacji, system działa w następujący sposób:

    • Ogranicza dostęp do sieci
    • Odracza alarmy, synchronizacje i zadania
    • Ogranicza skanowanie za pomocą GPS i Wi-Fi
    • Ogranicza wiadomości z Komunikacji w chmurze Firebase o normalnym priorytecie.
  • Zmiany uprawnień

    • System ogranicza dostęp do katalogów prywatnych aplikacji.
    • Ujawnienie identyfikatora URI file:// poza aplikacją powoduje wywołanie FileUriExposedException. Jeśli chcesz udostępniać pliki poza aplikacją, zastosuj FileProvider
  • System zakazuje łączenia z bibliotekami innymi niż NDK.

Pełną listę zmian wprowadzonych w Androidzie 7.0 (poziom interfejsu API 24) znajdziesz na stronie Zmiany w działaniu dotyczącej danej wersji platformy.

Postępuj zgodnie z instrukcjami podanymi w następnej sekcji.

Migracja na Androida 8 (poziom interfejsu API 26)

W przypadku aplikacji kierowanych na Androida 8.0 i nowsze wersje platformy należy wziąć pod uwagę te kwestie:

Pełną listę zmian wprowadzonych w Androidzie 8.0 (poziom interfejsu API 26) znajdziesz na stronie Zmiany w działaniu dotyczącej danej wersji platformy.

Migracja z Androida 8 (API 26) na Androida 9 (API 28)

Pełną listę zmian wprowadzonych w Androidzie 9.0 (poziom interfejsu API 28) znajdziesz w sekcji Zmiany w działaniu.

Migracja z Androida 9 (poziom interfejsu API 28) na Androida 10 (poziom interfejsu API 29)

Migracja z Androida 10 (poziom interfejsu API 29) na Androida 11 (poziom interfejsu API 30)

Pełną listę zmian wprowadzonych w Androidzie 11 (poziom interfejsu API 30) znajdziesz na stronie Zmiany w działaniu.

Przejdź na interfejs API 31, postępując zgodnie z instrukcjami podanymi w poprzedniej sekcji.

Modernizowanie aplikacji

Gdy zaktualizujesz docelowy poziom interfejsu API aplikacji, zastanów się nad wdrożeniem najnowszych funkcji platformy, aby zmodernizować aplikacje i zadowolić użytkowników.

Sprawdzanie i aktualizowanie pakietów SDK oraz bibliotek

Upewnij się, że zewnętrzne zależności pakietów SDK obsługują interfejs API 31. Niektórzy dostawcy pakietów SDK publikują go w swoich plikach manifestu, a inni wymagają dodatkowych badań. Jeśli używasz pakietu SDK, który nie obsługuje interfejsu API 31, priorytetowo potraktuj współpracę z jego dostawcą w celu rozwiązania problemu.

Pamiętaj też, że targetSdkVersion Twojej aplikacji lub gry może ograniczać dostęp do prywatnych bibliotek platformy Androida. Więcej informacji znajdziesz w artykule Łączenie aplikacji z bibliotekami platformy na urządzeniach z Androidem.

Sprawdź też wszystkie ograniczenia, które obowiązują w używanej przez Ciebie wersji Biblioteki pomocy Androida. Jak zawsze musisz zapewnić zgodność między główną wersją biblioteki pomocy Androida a biblioteką compileSdkVersion Twojej aplikacji.

Zalecamy wybór wersji targetSdkVersion mniejszej od wersji głównej biblioteki pomocy lub jej równej. Zachęcamy do zaktualizowania biblioteki pomocy do najnowszej zgodnej z nią – pozwoli Ci to korzystać z najnowszych funkcji zgodności i poprawek błędów.

Testowanie aplikacji

Po zaktualizowaniu odpowiednio poziomu interfejsu API i funkcji aplikacji przetestuj niektóre jej podstawowe przypadki użycia. Podane niżej sugestie nie są wyczerpujące, ale mają pomóc w procesie testowania. Zalecamy przetestowanie:

  • czy aplikacja skompiluje ją do interfejsu API 29 bez błędów i ostrzeżeń.
  • Aplikacja musi mieć strategię postępowania w przypadkach, gdy użytkownik odrzuca prośby o przyznanie uprawnień i wyświetla mu prośbę o przyznanie uprawnień. Aby to zrobić:

    • Przejdź do ekranu Informacje o aplikacji i wyłącz wszystkie uprawnienia.
    • Otwórz aplikację i sprawdź, czy nie ulega awarii.
      • Przeprowadź podstawowe testy przypadków użycia i sprawdź, czy ponownie wyświetliły się prośby o wymagane uprawnienia.
  • Obsługa funkcji Uśpienie z oczekiwanymi wynikami bez błędów.

    • Używając narzędzia adb, umieść urządzenie testowe w trybie uśpienia, gdy aplikacja jest uruchomiona.
      • Przetestuj wszystkie przypadki użycia, które aktywują wiadomości Komunikacja w chmurze Firebase (FCM).
      • Przetestuj wszystkie przypadki użycia, które używają alarmów lub zadań.
      • Wyeliminuj wszelkie zależności od usług w tle.
    • Przełącz aplikację w tryb gotowości
      • Przetestuj wszystkie przypadki użycia, które aktywują wiadomości Komunikacja w chmurze Firebase (FCM).
      • Przetestuj wszystkie przypadki użycia, które używają alarmów.
  • Obsługuje nowe zdjęcia i nagrywane filmy

  • Obsługa udostępniania plików innym aplikacjom – przetestuj każdy przypadek użycia, który udostępnia dane plików innej aplikacji (nawet innej aplikacji tego samego dewelopera)

    • Sprawdź, czy treść jest widoczna w innej aplikacji i nie wywołuje awarii.

Dodatkowe informacje

Wyraź zgodę na otrzymywanie e-maili w Konsoli Google Play, abyśmy mogli przesyłać Ci ważne informacje i ogłoszenia z Androida i Google Play, w tym nasz comiesięczny newsletter dla partnerów.