Przewodnik testowania Androida 6.0

Android 6.0 umożliwia zapewnienie, że Twoje aplikacje będą działać z następną wersją platformy. Ta wersja zawiera szereg zmian w interfejsach API i działaniu, które mogą wpłynąć na Twoją aplikację. Opisaliśmy je w sekcjach Omówienie interfejsu API i Zmiany w zachowaniu. Podczas testowania aplikacji w tej wersji musisz skupić się na określonych zmianach w systemie, aby zapewnić użytkownikom wygodę.

Z tego przewodnika dowiesz się, co i jak testować funkcje Androida 6.0 w swojej aplikacji. Zalecamy przetestowanie tych konkretnych funkcji w pierwszej kolejności, ponieważ mają one duży potencjalny wpływ na działanie aplikacji:

Testowanie uprawnień

Nowy model Uprawnienia zmienia sposób przydzielania uprawnień aplikacji przez użytkowników. Zamiast przyznawać wszystkie uprawnienia podczas procedury instalacji, aplikacja musi prosić użytkownika o poszczególne uprawnienia w czasie działania. Takie zachowanie zapewnia użytkownikom bardziej szczegółową kontrolę nad działaniami w poszczególnych aplikacjach, a także zapewnia lepszy kontekst ułatwiający zrozumienie, dlaczego aplikacja prosi o określone uprawnienia. Użytkownicy mogą w każdej chwili przyznać lub odebrać poszczególne uprawnienia przyznane aplikacji. Ta funkcja w wersji najprawdopodobniej wpłynie na zachowanie aplikacji i może uniemożliwić działanie niektórych funkcji aplikacji lub działać w gorszym stanie.

Ta zmiana dotyczy wszystkich aplikacji działających na nowej platformie, nawet tych, które nie są na nią kierowane. Platforma zapewnia ograniczoną zgodność starszych aplikacji, ale już teraz warto zacząć planować migrację aplikacji do nowego modelu uprawnień, mając na celu opublikowanie zaktualizowanej wersji aplikacji w momencie premiery na oficjalnej platformie.

Wskazówki testowe

Skorzystaj z poniższych wskazówek dotyczących testowania, aby zaplanować i przeprowadzić testy aplikacji z nowymi uprawnieniami.

  • Sprawdź bieżące uprawnienia aplikacji i powiązane ścieżki kodu.
  • Przetestuj przepływy użytkowników między usługami i danymi chronionymi uprawnieniami.
  • Przetestuj różne kombinacje przyznanych i anulowanych uprawnień.
  • Użyj narzędzia adb, aby zarządzać uprawnieniami z poziomu wiersza poleceń:
    • Wyświetl uprawnienia i stan według grupy:
      adb shell pm list permissions -d -g
    • Przyznaj lub unieważnij co najmniej 1 uprawnienie, używając tej składni:
      adb shell pm [grant|revoke] <permission.name> ...
  • Przeanalizuj aplikację pod kątem usług, które korzystają z uprawnień.

Strategia testów

Zmiana uprawnień ma wpływ na strukturę i wygląd Twojej aplikacji, a także na sposób, w jaki użytkownicy korzystają z tej aplikacji, oraz na sposób jej obsługi. Musisz ocenić obecne wykorzystanie uprawnień w aplikacji i zacząć planować nowe procesy, które chcesz zaoferować. Oficjalna wersja platformy zapewnia zgodność, ale lepiej zaplanować zaktualizowanie aplikacji i nie polegać na tych elementach.

Sprawdź, jakich uprawnień potrzebuje Twoja aplikacja i których rzeczywiście używa, a następnie znajdź różne ścieżki kodu korzystające z usług chronionych uprawnieniami. Możesz to zrobić, łącząc testy na nowej platformie i analizę kodu. Podczas testów należy skupić się na przyznaniu uprawnień czasu działania, zmieniając targetSdkVersion aplikacji na poziom API 23.

Przetestuj różne kombinacje uprawnień odwołanych i dodanych, aby wyróżnić przepływy użytkowników, które zależą od uprawnień. Jeśli zależność nie jest oczywista ani logiczna, należy rozważyć refaktoryzację lub podział przepływu na segmenty, aby wyeliminować zależność lub wyjaśnić, dlaczego dane uprawnienie jest potrzebne.

Więcej informacji na temat zachowania uprawnień w czasie działania, testowania i sprawdzonych metod znajdziesz w artykule dla programistów o korzystaniu z uprawnień systemowych.

Testowanie funkcji uśpienia i czuwania aplikacji

Funkcje oszczędzania energii w funkcjach Uśpienie i Czuwanie aplikacji ograniczają przetwarzanie w tle, które może wykonywać aplikacja, gdy jest ona nieaktywna lub gdy aplikacja nie jest na pierwszym planie. System może nałożyć na aplikacje ograniczony dostęp do sieci lub jego brak, zawieszone zadania w tle, zawieszone powiadomienia, zignorowane żądania wybudzenia i alarmy. Aby mieć pewność, że po zastosowaniu optymalizacji oszczędzania energii aplikacja będzie działać prawidłowo, przetestuj ją, przeprowadzając symulację tych stanów niskiego zużycia energii.

Testowanie aplikacji w funkcji Doze

Aby przetestować funkcję Doze w aplikacji:

  1. Skonfiguruj urządzenie lub urządzenie wirtualne przy użyciu obrazu systemu Android 7.0 (poziom interfejsu API 24).
  2. Połącz urządzenie z komputerem programisty i zainstaluj aplikację.
  3. Uruchom aplikację i pozostaw ją aktywną.
  4. Wykonaj te polecenia, aby uruchomić symulację urządzenia przechodzącego w tryb uśpienia:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Obserwuj działanie aplikacji po reaktywacji urządzenia. Upewnij się, że po zamknięciu trybu uśpienia urządzenie działa płynnie.

Testowanie aplikacji w trybie gotowości aplikacji

Aby sprawdzić w swojej aplikacji tryb czuwania aplikacji:

  1. Skonfiguruj urządzenie lub urządzenie wirtualne przy użyciu obrazu systemu Android 7.0 (poziom interfejsu API 24).
  2. Połącz urządzenie z komputerem programisty i zainstaluj aplikację.
  3. Uruchom aplikację i pozostaw ją aktywną.
  4. Wykonaj te polecenia, aby przeprowadzić symulację przejścia aplikacji w tryb gotowości:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Wykonaj symulację wybudzania aplikacji za pomocą tego polecenia:
    $ adb shell am set-idle <packageName> false
  6. Obserwuj zachowanie aplikacji po jej wybudzeniu. Sprawdź, czy urządzenie powróci do normalnego działania po wyjściu z trybu gotowości. W szczególności sprawdź, czy zadania powiadomień i zadania w tle działają zgodnie z oczekiwaniami.

Automatyczna kopia zapasowa aplikacji i identyfikatorów urządzeń

Jeśli Twoja aplikacja przechowuje w pamięci wewnętrznej identyfikatory związane z urządzeniem, np. identyfikator rejestracji w usłudze Google Cloud Messaging, postępuj zgodnie ze sprawdzonymi metodami dotyczącymi wykluczania lokalizacji z automatycznej kopii zapasowej. Instrukcje znajdziesz w artykule Tworzenie kopii zapasowej danych użytkownika przy użyciu Automatycznej kopii zapasowej.