Leitfaden für Tests unter Android 6.0

Mit Android 6.0 können Sie dafür sorgen, dass Ihre Apps mit der nächsten Version der Plattform funktionieren. Diese Version enthält eine Reihe von APIs und Verhaltensänderungen, die sich auf Ihre App auswirken können. Weitere Informationen finden Sie unter API-Übersicht und Verhaltensänderungen. Wenn du deine App mit diesem Release testest, solltest du dich auf einige spezifische Systemänderungen konzentrieren, um die Nutzerfreundlichkeit zu gewährleisten.

In diesem Leitfaden wird beschrieben, was und wie Sie Android 6.0-Funktionen mit Ihrer App testen. Sie sollten die Tests dieser Funktionen priorisieren, da sie sich potenziell stark auf das Verhalten Ihrer App auswirken können:

Berechtigungen testen

Mit dem neuen Berechtigungsmodell ändert sich die Art und Weise, wie Berechtigungen von Nutzern Ihrer App zugewiesen werden. Anstatt alle Berechtigungen während des Installationsvorgangs zu gewähren, muss Ihre App den Nutzer zur Laufzeit um einzelne Berechtigungen bitten. Für Nutzer bietet dieses Verhalten eine detailliertere Kontrolle über die Aktivitäten der einzelnen Apps sowie einen besseren Kontext, um zu verstehen, warum die App eine bestimmte Berechtigung anfordert. Nutzer können die Berechtigungen, die sie einer App gewährt haben, jederzeit erteilen oder widerrufen. Diese Funktion des Release wirkt sich am ehesten auf das Verhalten Ihrer App aus und kann dazu führen, dass einige App-Funktionen nicht funktionieren oder nur eingeschränkt funktionieren.

Diese Änderung betrifft alle Apps, die auf der neuen Plattform ausgeführt werden, auch solche, die nicht auf die neue Plattformversion ausgerichtet sind. Die Plattform bietet eine eingeschränkte Kompatibilität für ältere Apps. Sie sollten jedoch jetzt mit der Planung der Migration Ihrer App zum neuen Berechtigungsmodell beginnen, um bei der offiziellen Einführung der Plattform eine aktualisierte Version Ihrer App zu veröffentlichen.

Tipps zum Testen

Mit den folgenden Testtipps können Sie die Tests Ihrer App mit dem neuen Berechtigungsverhalten planen und ausführen.

  • Ermitteln Sie die aktuellen Berechtigungen Ihrer App und die zugehörigen Codepfade.
  • Nutzerflüsse über berechtigungsgeschützte Dienste und Daten testen
  • Testen Sie verschiedene Kombinationen von erteilten und widerrufenen Berechtigungen.
  • Mit dem adb-Tool können Sie Berechtigungen über die Befehlszeile verwalten:
    • Berechtigungen und Status nach Gruppe auflisten:
      adb shell pm list permissions -d -g
    • Mit der folgenden Syntax können Sie eine oder mehrere Berechtigungen gewähren oder widerrufen:
      adb shell pm [grant|revoke] <permission.name> ...
  • Analysieren Sie Ihre App auf Dienste, die Berechtigungen verwenden.

Teststrategie

Die Änderung der Berechtigungen wirkt sich auf die Struktur und das Design Ihrer App sowie auf die Nutzerfreundlichkeit und die Aufrufabfolgen aus, die Sie Nutzern bieten. Du solltest die aktuelle Nutzung von Berechtigungen durch deine App prüfen und mit der Planung der neuen Abläufe beginnen, die du anbieten möchtest. Der offizielle Release der Plattform bietet Kompatibilitätsverhalten. Du solltest deine App jedoch aktualisieren und dich nicht auf diese Verhaltensweisen verlassen.

Ermitteln Sie die Berechtigungen, die Ihre App tatsächlich benötigt und verwendet, und suchen Sie dann die verschiedenen Codepfade, in denen die berechtigungsgeschützten Dienste verwendet werden. Dies lässt sich durch eine Kombination aus Tests auf der neuen Plattform und Codeanalyse erreichen. Achten Sie beim Testen darauf, Laufzeitberechtigungen zu aktivieren, indem Sie die targetSdkVersion der App in API-Level 23 ändern.

Testen Sie verschiedene Kombinationen von Berechtigungen, die widerrufen und hinzugefügt wurden, um die von Berechtigungen abhängigen Abläufe für Nutzer hervorzuheben. Wenn eine Abhängigkeit nicht offensichtlich oder logisch ist, sollten Sie diesen Ablauf überarbeiten oder in Bereiche unterteilen, um die Abhängigkeit zu beseitigen oder klar zu machen, warum die Berechtigung erforderlich ist.

Weitere Informationen zum Verhalten von Laufzeitberechtigungen, zu Tests und Best Practices finden Sie im Entwicklerartikel Mit Systemberechtigungen arbeiten.

Doze und App-Standby testen

Die Energiesparfunktionen von Stromsparmodus und App-Standby schränken die Verarbeitung im Hintergrund ein, die deine App ausführen kann, wenn sich ein Gerät im Ruhezustand oder deine App im Fokus befindet. Zu den Einschränkungen, die das System für Apps festlegen kann, gehören eingeschränkter oder kein Netzwerkzugriff, angehaltene Hintergrundaufgaben, angehaltene Benachrichtigungen, ignorierte Weckanfragen und Wecker. Damit Ihre App bei diesen Energiesparoptimierungen ordnungsgemäß funktioniert, sollten Sie sie testen, indem Sie diese Energiesparmodi simulieren.

App mit Doze testen

So testen Sie Doze mit Ihrer App:

  1. Konfigurieren Sie ein Hardware- oder virtuelles Gerät mit einem Android 7.0-System-Image (API-Level 24).
  2. Verbinden Sie das Gerät mit Ihrem Entwicklungscomputer und installieren Sie Ihre App.
  3. Führen Sie die App aus und lassen Sie sie aktiv.
  4. Simulieren Sie, dass das Gerät in den Ruhemodus wechselt, indem Sie die folgenden Befehle ausführen:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
  5. Beobachten Sie das Verhalten Ihrer App, wenn das Gerät wieder aktiviert wird. Achte darauf, dass er ordnungsgemäß wiederhergestellt wird, wenn der Stromsparmodus des Geräts beendet wird.

Apps mit App-Standby testen

So testen Sie den App-Standbymodus mit Ihrer App:

  1. Hardwaregerät oder virtuelles Gerät mit einem System-Image von Android 7.0 (API-Level 24) konfigurieren.
  2. Verbinden Sie das Gerät mit Ihrem Entwicklungscomputer und installieren Sie Ihre App.
  3. Führen Sie die App aus und lassen Sie sie aktiv.
  4. Simulieren Sie den Standbymodus der App, indem Sie die folgenden Befehle ausführen:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
  5. Simulieren Sie das Aufwecken Ihrer App mit dem folgenden Befehl:
    $ adb shell am set-idle <packageName> false
  6. Beobachten Sie das Verhalten Ihrer App, wenn sie geweckt wird. Achten Sie darauf, dass es ordnungsgemäß aus dem Standby-Modus wiederhergestellt wird. Prüfen Sie insbesondere, ob die Benachrichtigungen und Hintergrundjobs Ihrer App weiterhin wie erwartet funktionieren.

Automatische Sicherung für Apps und gerätespezifische IDs

Wenn Ihre App gerätespezifische IDs wie die Registrierungs-ID von Google Cloud Messaging im internen Speicher speichert, müssen Sie den Speicherort gemäß den Best Practices aus der Anleitung zum Sichern von Nutzerdaten mit der automatischen Sicherung vom automatischen Back-up ausschließen.