Diese Tools zur Performance-Optimierung bietet das Android SDK

Schwächelnde App-Performance bei Android-Apps?
Kommentare

Egal, ob man glaubt, mit seiner Android-App das Rad neu erfunden zu haben: wenn sie nur schleppend funktioniert und die Performance sehr zu wünschen übrig lässt, werden sich nur schwer Nutzer dafür finden lassen. Trotzdem kehren viele App-Entwickler die Optimierung der Performance oft unter den Teppich.

Stattdessen spielen sie lieber an der Perfektionierung des User Interfaces rum oder implementieren neue Features. Grundsätzlich ist dagegen ja auch nichts einzuwenden, solange darauf geachtet wird, dass der Nutzer von einer guten User Experience profitiert. Spätestens wenn die ersten negativen Meinungen zur App eintreffen, ist es aber an der Zeit, den Performance-Problemen auf den Grund zu gehen und sie zu beheben. Einige Tipps dafür hat Jessica Thornsby in einem Tutorial zusammengefasst.

3 typische Performance-Probleme bei Android-Apps

Es gibt so einige typische Performance-Probleme, die man als Android-Entwickler kennen sollte – genauso wie Wege, um sie möglichst einfach auszumerzen. Zum Einsatz kommen dabei zum Beispiel die Android SKD Tools. In ihrem Tutorial nennt Jessica Thornsby etwa die folgenden Stolpersteine, die auf die Performance drücken können:

1.

Overdraw


User Interfaces sollen vor allem eins: dem User die Bedienung der App erleichtern. Natürlich ist es dabei nett, wenn sie auch hübsch aussehen, viel wichtiger ist allerdings, dass sie möglichst schnell rendern und so einwandfrei wie möglich funktionieren. Ist das nicht der Fall, ist der Übeltäter oft Overdraw – sprich, das Verschwenden von GPU-Verarbeitungszeit, in der Pixel mehrfach eingefärbt werden.

Zwar lässt sich eine gewisse Menge an Overdraw nicht vermeiden, tritt aber zu viel davon auf, wird die Performance einer App schnell schlechter. Darum sollte sie bei einer schwächelnden Performance zunächst auf Overdraw überprüft werden – etwa mit dem eingebauten Android Debug-GPU-Overdraw-Tool, das Overdraw durch verschiedene Farbblöcke hervorhebt. Am einfachsten lässt sich Overdraw reduzieren, indem die XML-Datei der App überprüft wird und zum Beispiel für den User nicht sichtbare Drawables oder Hintergründe, die übereinander ausgegeben werden, aufgeräumt werden.

2.
Android Rendering Pipeline


Auch die App-View-Hierarchy ist ein häufiger Verursacher von Performance-Problemen. Beim Rendern jeder View durchläuft Android die drei Stufen Measure, Layout und Draw. Je größer die Anzahl der Views in der Hierarchie ist, desto länger dauert das Vollenden der einzelnen Stufen. Darum ist es wichtig, alle Views, die für die endgültige Ansicht des Users unnötig sind, zu identifizieren und zu entfernen. Auch die Anordnung der Views nimmt Einfluss auf die Performance. Dazu sagt Jessica Thornsby:

Depending on how your views are arranged, measurements and remeasurements can be a costly, time-consuming process that has a noticeable impact on your app’s rendering speed.

Auch zum Überprüfen der View-Hierarchie bringt das Android SDK ein eigenes Tool mit sich: den Hierarchy Viewer. Allerdings gibt es dabei einiges zu beachten. So kann er nur mit einer ausgeführten App und nicht dem Quellcode der Applikation kommunizieren – und das auch nur in einer Entwicklungsumgebung. Bei der Nutzung des Hierarchy Viewers kann zwischen verschiedenen visuellen Repräsentationen der View-Hierarchie gewechselt oder sie auch simultan betrachtet werden.

Hierarchy Viewer kann zudem auch verwendet werden, um zu profilen, wie lange es dauert, jede View durch die einzelnen Phasen des Rendering-Prozesses zu befördern. So lassen sich besonders einfach mögliche Flaschenhälse identifizieren.

3.

Memory Leaks


Auch unter Android kann es zu Memory Leaks kommen – dann nämlich, wenn unerreichbare Objekte nicht entdeckt und dementsprechend nicht vom Garbage Collector eingesammelt werden. Je mehr solcher Objekte vorhanden sind, desto kleiner wird der nutzbare Speicher und je mehr GC-Events werden ausgelöst. Gerade weil Mobile Devices von Haus aus nur wenig Memory mit sich bringen, verursacht das schnell ernste Probleme.

Allerdings lassen sich solche Memory Leaks oft nur schwer entdecken. Memory Monitor, ein weiteres Android-SDK-Tool, verschafft dem Entwickler einen schnellen Überblick über die Memory-Nutzung der App. Auch das Heap-Tab des Android Device Monitor kann dabei helfen, Memory Leaks auf die Schliche zu kommen.

Es wird deutlich, dass Android bereits von Haus aus mit einer ganzen Reihe nützlicher Tools ausgestattet ist, die bei der Optimierung der App-Performance helfen können. In jedem Fall bieten sie umfangreiche Möglichkeiten, Informationen zu Performance-Problemen zu sammeln – und je mehr Informationen man hat, desto einfacher lassen sie sich am Ende beheben, was im Interesse eines jeden Entwicklers sein sollte.
Aufmacherbild: vector illustration of a overweight man jogging on a treadmill von Shutterstock / Urheberrecht: AntiMartina

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -