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 aplikacji przesyłane do Google Play muszą być kierowane na Androida 14 (API na poziomie 34) lub nowszego (nie dotyczy to aplikacji na Wear OS i Androida TV, które muszą być kierowane na Androida 13 (API na poziomie 33) lub nowszego);
  • Istniejące aplikacje muszą być kierowane na Androida 13 (API na poziomie 33) lub nowszego, aby były 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 tego terminu do 1 listopada 2024 r. Formularze przedłużenia 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 format systemu operacyjnego Android Automotive lub pakowane z plikami APK kierowanymi na ten format systemu.

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 użytkownikom korzyści wynikające z tych ulepszeń, ale jednocześnie pozwala uruchamiać ją w starszych wersjach Androida. Kierowanie aplikacji na najnowszy poziom interfejsu API pozwala jej korzystać z najnowszych funkcji platformy, aby zadowolić 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 znajdziesz ważne informacje, które pomogą Ci zaktualizować docelowy poziom interfejsu API, aby spełniać wymagania Google Play. W zależności od tego, do której wersji chcesz przeprowadzić dane, postępuj zgodnie z instrukcjami podanymi w odpowiednich sekcjach.

Przejście z Androida 12 lub nowszego (poziom API 31) na nowszą wersję

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

Przejście z Androida 11 (poziom API 30) na Androida 12 (poziom API 31)

Bezpieczeństwo i uprawnienia

Wrażenia 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. Dzięki temu szablonowi niestandardowe powiadomienia mają takie same elementy dekoracyjne jak inne powiadomienia we wszystkich stanach. Takie działanie jest prawie identyczne z działaniem 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 dotyczące uruchamiania usług na pierwszym planie: jeśli Twoja aplikacja jest kierowana na Androida 12 lub nowszą wersję, nie może uruchamiać usług na pierwszym planie, gdy działa w tle, z wyjątkiem kilku 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 zaplanowania i rozpoczęcia przyspieszonego działania, gdy aplikacja działa w tle. Aby wykonać działania wymagające szybkiego działania na żądanie użytkownika, uruchom usługi na pierwszym planie w ramach alarmu precyzyjnego.

  • Ograniczenia trampoliny powiadomień: gdy użytkownicy klikają powiadomienia, niektóre aplikacje odpowiadają, uruchamiając komponent aplikacji, który uruchamia aktywność, którą użytkownik widzi i z którą wchodzi w interakcję. Ten komponent aplikacji nazywa się trampoliną powiadomień.

    Aplikacje nie mogą uruchamiać działań z usług lub odbiorników transmisji, które są używane jako trampoliny 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 mają wpływ na aplikacje kierowane na Androida 12 (poziom API 31).

Przejście z wersji starszej niż Android 11 (poziom API 30)

Wybierz wersję Androida, z której będziesz przeprowadzać migrację:

Przejście na Androida 5 (poziom API 21)

Aby sprawdzić, czy Twoja aplikacja uwzględnia zmiany wprowadzone w tych wersjach, zapoznaj się z odpowiednimi stronami Zmiany zachowania:

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 nowszą obowiązują te zasady:

  • Uprawnienia czasu działania

    • Zezwolenia na dostęp do danych niebezpiecznych są przyznawane tylko w czasie działania aplikacji. Twoje procesy w interfejsie użytkownika muszą umożliwiać przyznawanie tych uprawnień.

    • W miarę możliwości zadbaj o to, aby aplikacja była przygotowana na odrzucenie żądań przyznania uprawnień. Jeśli na przykład użytkownik odrzuci prośbę o dostęp do GPS-a 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 zachowaniu poświęconej tej wersji platformy.

Kontynuuj, wykonując instrukcje podane w następnej sekcji.

Migracja 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 z uwzględnieniem zachowań opisanych w artykule Optymalizacja pod kątem funkcji Uśpienie i Czuwanie aplikacji, który obejmuje stopniowe zmiany wprowadzone w kilku wersjach platform.

    Gdy urządzenie jest w trybie Uśpienie i Czuwanie aplikacji, system działa w ten sposób:

    • Ogranicza dostęp do sieci
    • odroczenie alarmów, synchronizacji i zadań;
    • Ogranicza skanowanie GPS i Wi-Fi
    • Ogranicza liczbę wiadomości o normalnym priorytecie wysyłanych przez Komunikację w chmurze Firebase.
  • Zmiany uprawnień

    • System ogranicza dostęp do katalogów prywatnych aplikacji.
    • Wyświetlanie identyfikatora URI file:// poza aplikacją powoduje FileUriExposedException. Jeśli chcesz udostępniać pliki poza aplikacją, zaimplementuj:FileProvider
  • System zabrania łączenia z bibliotekami spoza NDK.

Pełną listę zmian wprowadzonych w Androidzie 7.0 (poziom interfejsu API 24) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.

Kontynuuj, wykonując instrukcje podane w następnej sekcji.

Migracja na Androida 8 (poziom 26 interfejsu API)

W przypadku aplikacji kierowanych na Androida 8.0 i nowsze obowiązują te zasady:

Wyczerpujący wykaz zmian wprowadzonych w Androidzie 8.0 (poziom interfejsu API 26) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.

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

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

Przejście z Androida 9 (poziom API 28) na Androida 10 (poziom API 29)

Przejście z Androida 10 (poziom 29 interfejsu API) na Androida 11 (poziom 30 interfejsu API)

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

Kontynuuj aktualizację do wersji API 31, wykonując instrukcje podane w poprzedniej sekcji.

Modernizacja aplikacji

Podczas aktualizowania docelowego poziomu interfejsu API swoich aplikacji rozważ zastosowanie najnowszych funkcji platformy, aby unowocześnić aplikacje i zadowolić użytkowników.

Sprawdzanie i aktualizowanie pakietów SDK oraz bibliotek

Upewnij się, że pakiety SDK innych firm, na których Twoja aplikacja jest zależna, obsługują interfejs API 31. Niektórzy dostawcy pakietów SDK publikują go w pliku manifestu, ale w przypadku innych może być konieczne sprawdzenie tego samodzielnie. Jeśli używasz pakietu SDK, który nie obsługuje interfejsu API 31, postaraj się jak najszybciej rozwiązać ten problem, kontaktując się z dostawcą pakietu SDK.

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 NDK Apps Linking to Platform Libraries.

Sprawdź też, czy w wersji biblioteki Android Support Library, której używasz, występują jakieś ograniczenia. Jak zawsze musisz zadbać o zgodność głównej wersji Biblioteki pomocy Androida z compileSdkVersion Twojej aplikacji.

Zalecamy wybranie targetSdkVersion mniejszej lub równej głównej wersji biblioteki pomocy. Zachęcamy do zaktualizowania biblioteki wsparcia do najnowszej zgodnej wersji, aby korzystać z najnowszych funkcji zgodności i poprawek błędów.

Testowanie aplikacji

Po zaktualizowaniu poziomu interfejsu API i odpowiednich funkcji aplikacji przetestuj kilka podstawowych przypadków użycia. Poniższe sugestie nie są wyczerpujące, ale mają na celu ułatwić Ci proces testowania. Zalecamy przetestowanie:

  • Aplikacja kompiluje się na interfejs API 29 bez błędów ani ostrzeżeń.
  • że Twoja aplikacja ma strategię na wypadek, gdy użytkownik odrzuci prośby o przyznanie uprawnień, i prosi o te uprawnienia. Aby to zrobić:

    • Otwórz ekran Informacje o aplikacji i wyłącz po kolei wszystkie uprawnienia.
    • Otwórz aplikację i sprawdź, czy nie ulega awarii.
      • Przeprowadź testy przypadków użycia i upewnij się, że wymagane uprawnienia są ponownie wyświetlane.
  • Obsługuje Doze z oczekiwanymi wynikami i bez błędów.

    • Użyj adb, aby umieścić urządzenie testowe w trybie Doze, gdy aplikacja jest uruchomiona.
      • Przetestuj wszystkie przypadki użycia, które aktywują wiadomości Komunikacja w chmurze Firebase (FCM).
      • Testuj przypadki użycia, które wykorzystują alarmy lub zadania.
      • Usuń wszystkie zależności od usług działających w tle.
    • Przełącz aplikację w tryb wstrzymania.
      • Testowanie wszystkich przypadków użycia, które powodują wysyłanie wiadomości w Komunikacji w chmurze Firebase (FCM).
      • Przetestuj wszystkie przypadki użycia, które używają alarmów.
  • Obsługuje nowe zdjęcia / 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ści są widoczne w innej aplikacji i czy nie powodują jej zawieszania.

Dodatkowe informacje

Zaakceptuj e-maile w Konsoli Google Play, abyśmy mogli wysyłać Ci ważne informacje i ogłoszenia dotyczące Androida i Google Play, w tym miesięczny newsletter dla partnerów.