Migracja aplikacji na Androida 11

W każdej wersji Androida wprowadzamy nowe funkcje i zmiany zachowania, aby system był bardziej przydatny, bezpieczny i wydajny. W wielu przypadkach aplikacja będzie działać zgodnie z oczekiwaniami, ale w niektórych przypadkach może być konieczne wprowadzenie zmian w aplikacji, aby dostosować ją do zmian w platformie.

Użytkownicy mogą zacząć korzystać z nowej platformy, gdy tylko kod źródłowy zostanie opublikowany w AOSP (Android Open Source Project). Dlatego ważne jest, aby aplikacje były gotowe, działały zgodnie z oczekiwaniami użytkowników i w maksymalny sposób korzystały z nowych funkcji oraz interfejsów API, aby w pełni wykorzystać możliwości nowej platformy.

Ten dokument zawiera ogólny opis typowych faz rozwoju i testowania, które mogą pomóc w przygotowaniu aplikacji do działania zgodnie z harmonogramem wydania platformy i zapewnić użytkownikom płynne działanie na Androidzie 11.

Typowa migracja ma 2 fazy, które mogą być wykonywane równolegle:

  • Zapewnienie zgodności aplikacji (do wydania Androida 11)
  • kierowanie na nowe funkcje i interfejsy API platformy (najszybciej, jak to możliwe po ich ostatecznym wydaniu);

Na tej stronie znajdziesz ogólne instrukcje dotyczące każdego z tych etapów. Gdy wszystko będzie gotowe, przeczytaj artykuł Zapoznaj się z Androidem 11.

Zapewnienie zgodności z Androidem 11

Aby zapewnić użytkownikom płynne działanie aplikacji po aktualizacji do najnowszej wersji Androida, ważne jest przetestowanie jej funkcjonalności w Androidzie 11. Niektóre zmiany platformy mogą wpływać na działanie aplikacji, dlatego ważne jest, aby przetestować ją dokładnie i w pełni, a następnie wprowadzić w niej niezbędne poprawki.

Zazwyczaj możesz dostosować aplikację i opublikować jej aktualizację bez konieczności zmiany targetSdkVersion. Podobnie nie musisz używać nowych interfejsów API ani zmieniać compileSdkVersion aplikacji, choć może to zależeć od sposobu jej tworzenia i funkcjonalności platformy, z której korzysta. W następnych sekcjach znajdziesz opis tych czynności.

Zanim zaczniesz, zapoznaj się z zmianami w zachowaniu, które mogą mieć wpływ na Twoją aplikację, nawet jeśli nie zmienisz jej targetSdkVersion.

Przeprowadź testy zgodności

W większości przypadków testowanie zgodności z Androidem 11 jest podobne do testów przeprowadzanych podczas przygotowywania aplikacji do wydania. Warto teraz zapoznać się z głównymi wytycznymi dotyczącymi jakości aplikacjinajlepszymi praktykami testowania.

Wystarczy, że zainstalujesz opublikowaną aplikację na urządzeniu z Androidem 11 i przetestujesz wszystkie przepływy i funkcje, aby znaleźć problemy. Aby ułatwić Ci skupienie się na testowaniu, zapoznaj się ze zmianami w zachowaniu wprowadzonymi w Androidzie 11, które mogą wpływać na działanie aplikacji lub powodować jej zamykanie. Zwróć szczególną uwagę na najważniejsze zmiany dotyczące prywatności i sprawdź wszystkie wdrożone poprawki, które uwzględniają te zmiany.

Sprawdź i przetestuj użycie ograniczonych interfejsów innych niż SDK, a potem przejdź na publiczne pakiety SDK lub NDK. Zwróć uwagę na ostrzeżenia logcat, które wskazują na te dostępy, i użyj metody StrictMode detectNonSdkApiUsage(), aby wykrywać je programowo.

Na koniec przetestuj biblioteki i pakiety SDK w aplikacji, aby upewnić się, że działają one zgodnie z oczekiwaniami w Androidzie 11. Pamiętaj też o przestrzeganiu najlepszych praktyk dotyczących prywatności, wydajności, UX, obsługi danych i uprawnień. Jeśli znajdziesz problem, spróbuj zaktualizować pakiet SDK do najnowszej wersji lub skontaktuj się z jego deweloperem, aby uzyskać pomoc.

Po zakończeniu testów i wprowadzeniu wszelkich aktualizacji zalecamy natychmiastowe opublikowanie zgodnej aplikacji. Dzięki temu użytkownicy mogą wcześniej przetestować aplikację, a Ty możesz zapewnić im płynne przejście na Androida 11.

Zaktualizuj kierowanie aplikacji i utwórz wersję z nowymi interfejsami API

Po opublikowaniu zgodnej wersji aplikacji zgodnie z opisem w poprzednim kroku należy dodać pełną obsługę Androida 11, aktualizując targetSdkVersion i korzystając z nowych interfejsów API oraz funkcji Androida 11. Możesz to zrobić, gdy tylko będziesz gotowy, pamiętając o wymaganiach Google Play dotyczących kierowania na nową platformę.

Planując działania związane z pełną obsługą Androida 11, warto zacząć od zapoznania się z zmianami w zachowaniu, które dotyczą aplikacji kierowanych na Androida 11. Te zmiany w działaniu kierowanym mogą powodować problemy z funkcjonalnością, które trzeba będzie rozwiązać. W niektórych przypadkach mogą wymagać znacznego rozwinięcia, dlatego warto się z nimi zapoznać jak najwcześniej. Aby poznać wpływ zmian, możesz też użyć przełączników zgodności, aby przetestować aktualną wersję aplikacji z włączonymi wybranymi zmianami.

Podane niżej kroki opisują, jak zapewnić pełną obsługę Androida 11.

Pobieranie pakietu SDK, zmiana kierowania i tworzenie za pomocą nowych interfejsów API

Aby uzyskać pełną obsługę Androida 11, najpierw pobierz pakiet Android 11 SDK (oraz inne potrzebne narzędzia) do Android Studio. Następnie zmień wartości targetSdkVersioncompileSdkVersion na "30", a następnie ponownie skompiluj aplikację. Szczegółowe informacje znajdziesz w przewodniku konfiguracji.

Testowanie aplikacji na Androida 11

Po skompilowaniu aplikacji i zainstalowaniu jej na urządzeniu z Androidem 11 rozpocznij testy, aby sprawdzić, czy aplikacja działa prawidłowo, gdy kierujesz ją na Androida 11. Niektóre zmiany zachowania mają zastosowanie tylko wtedy, gdy aplikacja jest kierowana na nową platformę, dlatego przed rozpoczęciem sprawdź te zmiany.

Podobnie jak w przypadku podstawowego testowania zgodności, sprawdź wszystkie przepływy i funkcje pod kątem problemów. Skoncentruj się na testowaniu zmian zachowania aplikacji kierowanych na Androida 11. W szczególności sprawdź zmiany dotyczące prywatności i przetestuj wszelkie poprawki, które wdrożysz, aby uwzględnić te zmiany. Warto też sprawdzić aplikację pod kątem zgodności ze podstawowymi wytycznymi dotyczącymi jakości aplikacjisprawdzonymi metodami testowania.

Sprawdź i przetestuj użycie ograniczonych interfejsów spoza pakietu SDK, które może być konieczne. Zwróć uwagę na ostrzeżenia logcat, które wskazują te dostępy, i użyj metody StrictMode detectNonSdkApiUsage(), aby je przechwycić za pomocą kodu.

Na koniec przetestuj biblioteki i pakiety SDK w aplikacji, aby upewnić się, że działają one zgodnie z oczekiwaniami w Androidzie 11. Pamiętaj też o przestrzeganiu najlepszych praktyk dotyczących prywatności, wydajności, UX, obsługi danych i uprawnień. Jeśli znajdziesz problem, spróbuj zaktualizować pakiet SDK do najnowszej wersji lub skontaktuj się z jego deweloperem, aby uzyskać pomoc.

Testowanie za pomocą przełączników zgodności aplikacji

Android 11 wprowadza nową funkcję dla deweloperów, która ułatwia testowanie aplikacji z celowymi zmianami zachowania. W przypadku aplikacji, którą można debugować, przełączniki umożliwiają:

  • Testuj zmiany docelowe bez faktycznej zmiany wartości targetSdkVersion aplikacji. Za pomocą przełączników możesz wymusić włączenie określonych zmian w docelowanym zachowaniu, aby ocenić ich wpływ na dotychczasową aplikację.
  • Skup się na testowaniu tylko konkretnych zmian. Zamiast modyfikować wszystkie zmiany docelowe jednocześnie, możesz wyłączyć wszystkie zmiany docelowe oprócz tych, które chcesz przetestować.
  • Zarządzaj przełącznikami za pomocą adb Aby włączać i wyłączać zmiany w automatycznym środowisku testowym, możesz używać poleceń adb.
  • Szybsze debugowanie dzięki standardowym identyfikatorom zmian. Każda zmiana, którą można włączać i wyłączać, ma niepowtarzalny identyfikator i nazwę, których możesz używać do szybkiego debugowania przyczyny w wyjściu z dziennika.

Przełączniki mogą Ci się przydać, gdy przygotowujesz się do zmiany kierowania aplikacji lub gdy aktywnie pracujesz nad obsługą Androida 11. Aby dowiedzieć się więcej, zapoznaj się z odpowiednią dokumentacją.