Przewodnik po testowaniu Androida 6.0

Android 6.0 daje Ci możliwość sprawdzenia, czy Twoje aplikacje działają z kolejną wersją tej platformy. Ta wersja zawiera szereg interfejsów API oraz zmian w działaniu, które mogą mieć wpływ na aplikację. Ich opis znajdziesz w sekcjach API – omówienie i Zmiany w działaniu. Podczas testowania aplikacji w ramach tej wersji należy zwrócić szczególną uwagę na określone zmiany systemowe, aby zapewnić użytkownikom wygodę korzystania z aplikacji.

W tym przewodniku opisaliśmy, jak testować funkcje Androida 6.0 w aplikacji. Należy z uwzględnieniem priorytetów przetestować te funkcje, które mogą mieć duży wpływ na działanie aplikacji:

Testowanie uprawnień

Nowy model uprawnień zmienia sposób przypisywania uprawnień do aplikacji przez użytkownika. Zamiast przyznawać wszystkie uprawnienia podczas procedury instalacji, aplikacja musi prosić użytkownika o przyznanie Ci poszczególnych uprawnień w czasie działania. Takie zachowanie zapewnia użytkownikom dokładniejszą kontrolę nad działaniami w aplikacjach, a także lepszy kontekst umożliwiający zrozumienie, dlaczego aplikacja prosi o dane uprawnienia. Użytkownicy mogą w dowolnym momencie przyznawać i odbierać poszczególne uprawnienia. Ta funkcja wersji najprawdopodobniej wpłynie na działanie aplikacji i może uniemożliwić działanie niektórych jej funkcji lub sprawić, że będą one działać w ograniczony sposób.

Ta zmiana dotyczy wszystkich aplikacji działających na nowej platformie, nawet tych, które nie są kierowane na nową wersję platformy. Platforma ta ma ograniczoną zgodność ze starszymi aplikacjami, ale już teraz warto zacząć planować migrację aplikacji do nowego modelu uprawnień już teraz, by opublikować zaktualizowaną wersję aplikacji podczas premiery na oficjalnej platformie.

Wskazówki dotyczące testowania

Skorzystaj z poniższych wskazówek dotyczących testowania, aby zaplanować i przeprowadzić testowanie aplikacji z użyciem nowego sposobu działania uprawnień.

  • Zidentyfikuj bieżące uprawnienia aplikacji i powiązane ścieżki kodu.
  • testować przepływy danych użytkownika w usługach i danych chronionych uprawnieniami.
  • Testowanie z różnymi kombinacjami przyznanych/odebranych uprawnień.
  • Aby zarządzać uprawnieniami z poziomu wiersza poleceń, użyj narzędzia adb:
    • Lista uprawnień i stanu według grupy:
      adb shell pm list permissions -d -g
    • Przyznaj lub anuluj co najmniej 1 uprawnienie, używając tej składni:
      adb shell pm [grant|revoke] <permission.name> ...
  • Sprawdź, czy w aplikacji są usługi, które korzystają z uprawnień.

Testowanie strategii

Zmiana uprawnień wpływa na strukturę i wygląd aplikacji oraz na sposób obsługi i procesy udostępniania. Należy ocenić, do czego obecnie służą uprawnienia aplikacji, i zacząć planować nowe przepływy danych, które chcesz udostępnić. Oficjalna wersja platformy zapewnia zgodność, ale należy zaplanować aktualizację aplikacji i nie polegać na tych zachowaniach.

Określ, których uprawnień potrzebuje i korzysta z nich Twoja aplikacja, a potem znajdź różne ścieżki kodu, które korzystają z usług chronionych uprawnieniami. Możesz to zrobić, łącząc testowanie na nowej platformie z analizą kodu. Podczas testów skoncentruj się na wyrażeniu zgody na uprawnienia w czasie działania, zmieniając targetSdkVersion aplikacji na poziom API 23.

Przetestuj różne kombinacje cofniętych i dodanych uprawnień, aby wyróżnić przepływy danych użytkownika zależne od uprawnień. Jeśli zależność nie jest oczywista lub logiczna, rozważ refaktoryzację lub podział przepływu na segmenty, aby wyeliminować zależność lub wyjaśnić, dlaczego potrzebne uprawnienie jest potrzebne.

Więcej informacji o działaniu uprawnień czasu działania, testowaniu i sprawdzonych metodach znajdziesz w artykule Praca z uprawnieniami systemu dla deweloperów.

Testowanie trybu Doze i gotowości aplikacji

Funkcje oszczędzania energii Doze i Tryb w spoczynku ograniczają ilość przetwarzania w tle, które aplikacja może wykonywać, gdy urządzenie jest w stanie bezczynności lub gdy aplikacja nie jest aktywna. Ograniczenia, które system może nałożyć na aplikacje, obejmują ograniczony dostęp do sieci lub brak dostępu do sieci, zawieszone zadania w tle, zawieszone powiadomienia, ignorowane prośby o wybudzanie i wydawane alarmy. Aby mieć pewność, że aplikacja działa prawidłowo w trybie oszczędzania energii, przetestuj ją, symulując stany niskiego poboru mocy.

Testowanie aplikacji przy użyciu funkcji Uśpienie

Aby przetestować Doze w swojej aplikacji:

  1. Skonfiguruj urządzenie sprzętowe lub wirtualne z obrazu systemu Android 7.0 (poziom interfejsu API 24).
  2. Podłącz urządzenie do komputera, na którym pracujesz, i zainstaluj aplikację.
  3. Uruchom aplikację i nie wyłączaj jej.
  4. Przeprowadź symulację urządzenia przechodzącego w tryb uśpienia, uruchamiając następujące polecenia:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
  5. Obserwuj zachowanie aplikacji po ponownym aktywowaniu urządzenia. Upewnij się, że system ładuje się prawidłowo po wyjściu z Doze.

Testowanie aplikacji przy użyciu trybu czuwania

Aby przetestować w aplikacji tryb gotowości aplikacji:

  1. Skonfiguruj urządzenie sprzętowe lub wirtualne z obrazu systemu Android 7.0 (poziom interfejsu API 24).
  2. Podłącz urządzenie do komputera, na którym pracujesz, i zainstaluj aplikację.
  3. Uruchom aplikację i nie wyłączaj jej.
  4. Aby symulować przejście aplikacji w tryb gotowości, uruchom te polecenia:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
  5. Symuluj budzenie aplikacji za pomocą tego polecenia:
    $ adb shell am set-idle <packageName> false
  6. Obserwuj działanie aplikacji po wybudzeniu. Upewnij się, że ładowanie przebiega prawidłowo. W szczególności sprawdź, czy powiadomienia i zadania w tle aplikacji nadal działają prawidłowo.

Automatyczne tworzenie kopii zapasowej w przypadku aplikacji i identyfikatorów urządzeń

Jeśli Twoja aplikacja przechowuje w pamięci wewnętrznej identyfikatory związane z danym urządzeniem, takie jak identyfikator rejestracji Google Cloud Messaging, pamiętaj, aby postępować zgodnie z zalecanymi metodami i wykluczyć tę lokalizację z automatycznego tworzenia kopii zapasowej, jak opisano w artykule Tworzenie kopii zapasowych danych użytkownika za pomocą automatycznego tworzenia kopii zapasowych.