Android P stürzt jetzt Apps ab, anstatt Ihnen mitzuteilen, wenn sie nicht reagieren

Android P stürzt jetzt Apps ab, anstatt Ihnen mitzuteilen, dass sie nicht reagieren (was als „App reagiert nicht“ oder „ANR-Dialog“ bekannt ist). Es handelt sich um eine Taktik, mit der Entwickler wegen schlecht gemachter Apps angegriffen werden sollen, und sie könnte funktionieren.

Unter all den Neuzugänge bis Android P inklusive neue Navigationsgesten, Scheiben API und neue Biometrie-APIEs gibt noch einige andere Änderungen, die möglicherweise auch auf subtilere Weise Auswirkungen haben. Eine davon ist die Entfernung von ANR-Dialogfeldern (App Not Responding) für Vordergrund-Apps. Der ANR-Dialog erscheint, wenn etwas die Reaktion des Haupt-UI-Threads verhindert. Wenn dies in Android Oreo oder niedriger geschieht, wird dem Benutzer der ANR-Dialog angezeigt, um ihn darüber zu informieren. Jetzt stürzt die Anwendung in Android P einfach ab, ohne dass der Benutzer darüber informiert wird.

Warum die Anwendung zum Absturz bringen, ohne dem Benutzer mitzuteilen, was tatsächlich passiert ist? Dies ist nicht unbedingt ein Vorteil für die Benutzer, aber es zwingt Entwickler dazu, bestimmten Problemen besondere Aufmerksamkeit zu schenken und sicherzustellen, dass das Problem vermieden wird. Entwicklern wird empfohlen, nichts im Vordergrund-Thread auszuführen. Im unten verlinkten Quellvideo bespricht Google mögliche Lösungen zur Vermeidung dieses Problems, einschließlich der

AsyncTask-API. Aufgrund der jüngsten Einschränkungen von Android bei Hintergrunddiensten ist der Übergang zu einem Dienst hier wahrscheinlich keine gute Idee. Wir empfehlen Ihnen, sich den folgenden Vortrag anzuhören, wenn Sie mehr über die Lösung dieses Problems erfahren möchten:

Der Ansatz von Google ist sinnvoll, aber ist er zu viel? Es könnte den Anschein erwecken, dass Android-Apps seltener abstürzen, wenn die Benachrichtigungen für den Benutzer jedoch weniger sichtbar sind Dann müssen Entwickler ihre Absturztools wie Firebase Crash Reporting im Auge behalten und nicht den direkten Benutzer Rückmeldung. Wenn Sie Entwickler der neuesten P-Betaversion sind, können Sie diese Absturzdialoge wiederherstellen, indem Sie eine Einstellung in den Entwickleroptionen aktivieren.

Dies ist nicht die einzige Änderung in Android P hinsichtlich der Sichtbarkeit dessen, was Apps im Hintergrund tun. Android Oreo hat die dauerhafte Benachrichtigung eingeführt, als bestimmte Apps liefen im Hintergrund Wenn diese App keine Benachrichtigung mit ausreichend hoher Priorität hatte, entfernt Android P diese Benachrichtigung jetzt vollständig. Der einzige Unterschied besteht darin, dass das ANR-Dialogfeld nicht so störend war wie das Platzieren einer dauerhaften Benachrichtigung.


Über: /r/AndroidDev