Entwicklermodus erklärt

Entwicklermodus erklärt

Auf Anfrage hin wollen wir uns heute mit dem Entwicklermodus unter Android beschäftigen, wie wir diesen einschalten, verwenden und welche Funktionen uns dieser bietet.

Ich greife dabei auf ein Huawei P9 Lite mit Android 6.0 zurück. Es kann also im Funktionsumfang zu Änderungen kommen. Normalerweise ist der Funktionsumfang allerdings von der Android Version und nicht vom Hersteller abhängig.

Enticklermodus aktivieren

Wir aktivieren den Entwicklermodus, indem wir in den Einstellungen von Android auf den Menüpunkt “Über das Telefon” oder auch “Info” gehen.
Dort sollten wir in der Liste den Punkt “Build-Nummer” finden. Diesen Punkt klicken wir nun mehrfach hintereinander, bis uns die Meldung “Entwicklermodus aktiviert” angezeigt wird.
Den Entwicklermodus finden wir, wenn wir nun eine Ebene weiter nach oben gehen und, je nach Hersteller, etwas über dem Punkt “Über das Telefon” oder auch “Info” nachschauen.

Entwicklermodus erklärt

Der Entwicklermodus aktiviert die Schnittstelle “ADB-Bridge”, mittels derer wir über das PC Programm ADB auf unserem Android Gerät Änderungen vornehmen, Protokolle auslesen, Apps (de)installieren und Daten transferieren können. Zu beachten wäre, dass Android zwar noch eine Sicherheitsbarriere eingebaut hat, doch auch diese kann bestimmt irgendwie überwunden werden. Versucht also nach Möglichkeit den Entwicklermodus und vor allem die Einstellung “USB-Debugging” nur zu aktivieren, wenn ihr diese Dienste auch benötigt. Dies ist vor allem dann ratsam, wenn man an einem Gemeinschaftscomputer entwickelt, wenn es werden keine Benutzerkonten, sondern ganze PC’s autorisiert.

Fehlerberichte erstellen

Lasse dir einen kompletten Fehler- und Statusbericht von Android erstellen und sende ihn per beliebiger App als Textdatei an alle denkbaren Stellen (z.B. per E-Mail).

Desktop-Sicherungspasswort

Hier kannst du ein Passwort einrichten, um per PC ein vollständiges Backup erstellen zu können.

Aktiv lassen

Diese Einstellung ist sehr nützlich, denn sie lässt den Display aktiv. Natürlich nur  während des Ladens. So kann man ungestört Funktionen testen, ohne alle 5 Minuten den Lockscreen wieder entsperren zu müssen.

Bluetooth HCI-Snoop-Protokoll aktivieren

Wer ein ausführliches Protokoll zur Datenübertragung und Kommunikation über Bluetooth benötigt, der kann diese Einstellung aktivieren. Android wird für Bluetooth HCI (Host Controller Interface) ein Log erstellen und es unter btsnoop_hci.log speichern.

Aktive Dienste

Eigentlich findet man unter diesem Menüpunkt “nur” einen Taskmanager, wie man ihn auch ohne Entwicklermodus erreichen kann. Wir können uns hier also alle aktiven Vorder- und Hintergrunddienste anzeigen lassen. Ergo ist es uns so möglich zu prüfen, ob unsere App im Hintergrund noch läuft oder eben nicht.

USB-Debugging

Dies ist eigentlich die wichtigste Einstellung im Entwicklermodus.
Dass wir den Entwicklermodus eingeschaltet haben bedeutet noch lange nicht, dass wir auch per ADB-Bridge auf unserem Testgerät Änderungen vornehmen können. Erst diese Einstellung aktiviert/erlaubt den Zugriff per USB-Kabel.
Als kleine Sicherheitshürde müssen wir vor dem Zugriff noch auf dem entsperrten Smartphone die USB-Verbindung als USB-Debugging-Verbindung autorisieren. Wir können also unser Gerät an fremde Computer stecken und dennoch haben diese keine vollen Zugriffsrechte. Ich würde diese Sicherheitshürde aber nicht als 100%ige Sicherheit nehmen.

Autorisierung zur USB-Fehlerbehebung aufheben

Nebst dem USB-Debugging ist das Aufheben der Autorisierung zur USB-Fehlerbehebung der wichtigste Sicherheitspunkt, denn so können wir bereits autorisierte PCs wieder aus der Liste entfernen und den Zugriff per ADB-Bridge wieder verhindern. Auch hier gilt: Lieber deautorisieren und USB-Debugging ausschalten.

App für Simulierte Standorte

Du programmierst eine Akk, die auf den Standort zugreift und möchtest wissen, ob die App auch an anderen Standorten funktioniert? Selbe kannst du aber nicht einfach dort hin reisen/gehen? Mit dieser Einstellung kannst du für bestimmte Apps einen GPS Standort simulieren und so herausfinden, ob die wie gewünscht mitspielt.

Debugging-App

Wähle direkt eine auf dem Gerät zu debuggende App aus. Die nächste Einstellung bezieht sich auf diese zu debuggende App.

Auf Debugger warten

Die zum Debugging vorgesehene Applikation soll vor der Ausführung auf die Aktivierung des Debuggers warten.

Apps per USB verifizieren

Normalerweise prüft Android von selber, ob zu installierende Apps einen Schadcode enthalten. Wie sinnvoll/effektiv das ist sei mal dahin gestellt. Nichts desto trotz ist es und mit dieser Einstellung möglich per USB und ADB-Bridge installierte Apps prüfen zu lassen. Hilfreich ist das aktivieren/deaktivieren dieses Punktes eigentlich nur, um zu sehen ob die eigene App per Sideload blockiert wird. Normalerweise werden Apps nämlich beim Hochladen in den PlayStore geprüft und sind dann als harmlos eingestuft im PlayStore verfügbar.

Protokollbuffergröße

Die Konsolenprotokolle on Android Studio werden auf dem Android Gerät erstellt und anschließend an den PC geschickt. Hierbei kann es passieren, dass die USB-Verbindung nicht hinterher kommt, die einzelnen Zeilen zu übertragen und/oder die Anzahl der Protokolle ist zu gering. Dies kann man hiermit ändern.

Alter DHCP-Client

Der DHCP-Client bekommt von einem DHCP-Server (meist der heimische Router) eine IP-Adresse zugewiesen und benutzt diese dann für alle möglichen Zugriffe ins Netz. Wer prüfen möchte, ob die eigene App auch mit älteren DHCP-Clienten (ältere Android Versionen) funktioniert, der kann diese Einstellung aktivieren.

Mobildaten immer aktiv

Erlaubt einen schnelleren Netzwechsel zwischen WLAN und mobilem Internet, da sich das Gerät bei deaktiviertem WLAN nicht erneut als Netzgerät im mobilen Netz anmelden muss.

USB-Konfiguration

Normalerweise konfiguriert Android seinen USB-Ausgang, je nach Kompatibilität, selber. Immer nach dem angeschlossenen Gerät/Kabel wird Android eine MTP, PTP, RNDIS oder halt MIDI Einstellung wählen. Wer das nicht möchte oder Android es eben nicht selber macht, der kann über dieses Menü eine entsprechende Anpassung vornehmen.

Berührungen anzeigen

Du verklickst dich in deiner App ständig?
Mit der Option “Berührungen anzeigen” kannst du dir einen ungefähren Bereich von Android Anzeigen lassen, in dem Android glaubt einen Finger erkannt zu haben. Sinnvoll ist das auch, wenn man beispielsweise mit mehreren Fingern tippt/wischt und wissen möchte ob und wie diese erkannt wurden.

Zeigerposition

Ähnlich der Funktion “Berührung anzeigen” kann man sich auch die Zingerposition anzeigen lassen.
Der Unterschied ist, dass Android hier mittels horizontaler und vertikaler Linie noch den Standort angibt, den Fingerverlauf und zusätzlich einige Informationen in der oberen Leiste verfügbar macht. Darunter sind Anzahl der Finger, die genaue Position (bei mehreren Fingern ist dies der erste aufgelegte), die Geschwindigkeit (bei mehreren Fingern ist dies der erste aufgelegte), die Bewegungszeit und mehr.

Updates anzeigen

Ich bekomme jedes mal einen halben epileptischen Anfall, aber über die Einstellung “Updates anzeigen” können wir die Bereiche anzeigen lassen, in denen Android das Layout neu zeichnet. Die neu gezeichneten Bereiche flackern teils sehr stark und schnell in einem lila Farbton.

Beispielsweise habe ich versucht das Zeichnen einer Linie in einem Canvas zu beschleunigen, indem ich nur das relevante Rechteck von Start bis Ende erneuern wollte. Eben solche Dinge werden uns hier sichtbar gemacht.

Layoutgrenzen einblenden

Das Layout ist total verschoben und sowohl Padding, als auch Margin helfen nicht weiter?
Mit dieser Einstellung ist es uns möglich die Layoutgrenzen, also die Größe aller angezeigten Elemente unserer App anzeigen zu lassen. So kann man genau sehen, welches Element wo, warum und wie in der App seine Position erhält.
Leider oder auch zum Glück zeigt uns die Einstellung keine Layoutgrenzen in Hybrid-Apps an. So können wir diese übrigens auch überführen. :P
Doch bitte mit Vorsicht genießen, da möglicherweise das Smartphone, bei vielen Elementen, stark verlangsam wird.

Maßstäbe für Fensteranimation, Übergangsanimation und Animatorzeit

Du hast eine super tolle Animation erstellt, aber irgendwie stimmen da noch Feinheiten nicht?
Die Animation geht aber viel zu schnell und Bildschirmaufnahmen sind auch nicht so das Wahre?

Mit diesen Einstellungen kannst du die verschiedensten Animationen verlangsamen oder beschleunigen und so Fehler finden.
Mal ganz nebenbei – Mit diesen Einstellungen kann man die Animationen sogar ganz und gar deaktivieren, also sehr hilfreich, falls das Smartphone mal in die Jahre kommen sollte und träge wird. :P

Sekundäre Displays simulieren

Hier ist es möglich andere Displays, Bildschirmgrößen und Auflösungszahlen zu emulieren. Ich würde nichts desto trotz dazu raten ein älteres Gerät mit möglichst unterschiedlichem Display dafür zu verwenden.

GPU-Rendering erzwingen

Erzwingt die Berechnung von 2D-Inhalten durch die die GPU (Graphical Prozessor Unit, also die Grafikkarte).

Updates mittels GPU-Ansicht

Bildschirmbereiche blinken auf, wenn diese von der GPU aktualisiert werden.

Updates auf Hardware-Ebene anzeigen

Lässt die Hardwareebenen bei Aktualisierung grün aufblinken.

Fehler im GPU-Overdraw beheben

Elemente liegen über anderen Elementen oder Elemente die eigentlich transparent sein sollten überdecken wiederum andere Elemente? – Auch hier gibt uns Android eine Entwickleroption an die Hand. Mittels der Anzeige des GPU-Overdraw können wir per blauem Overlay sehen, welche Elemente/Texte wie viel Platz zum rendern einnehmen und möglicherweise überdecken.

MSAA erzwingen

Aktiviert vierfaches MSAA bei OpenGL ES 2.0-Applikationen. Dabei handelt es sich um eine Kantenglättung.

HW-Overlays deaktivieren

Der Bildaufbau/das Rendering soll immer von der GPU übernommen werden.

Farbraum simulieren

Hilfreich, wenn auch eher für Designer gedacht.
Was ich meine? – Naja unter Deuter-, Prot- und Tritanomalie versteht man eine gewisse Sehschwäche (z.B. Rot-Grün-Sehschwäche). Betroffene Personen können dann einige Farben nicht richtig erkennen und beispielsweise  grüne Button auf einem dunkelroten Hintergrund nicht richtig differenzieren oder das Design sieht dann einfach nicht mehr schön aus.

Android simuliert diese Sehschwächen dann und gibt uns einen ungefähren Eindruck vom Aussehen der App mit entsprechenden Sehschwächen.

Striker Modus

Der Bildschirm blink, solange der Haupt-Thread ausgeführt wird. Damit können wir prüfen, ob und wie lange eine App Berechnungen auf dem Haupt-Thread ausführt. Idealerweise sollte der Display dabei nur sehr kurz blinken und alle rechenintensiveren Dinge sollten im Hintergrund ausgeführt werden.

CPU-Auslastung anzeigen

Dein Smartphone ist langsam beim Testen?
Vielleicht hilft es ja sich anzuschauen, welche Apps welche CPU-Last erzeugen. Unter Umständen lässt sich so auch eine ganz andere App als Übeltäter herausfinden oder es lässt sich noch etwas an der Performance optimieren. Auch hilfreich ist diese Funktion, um herauszufinden an welchen Stellen/zu welchen Aktionen in der App die Performanceprobleme auftreten.

GPU-Rendering für Profil

Ähnlich der Einstellung zur Anzeige der CPU-Last ist es uns möglich die Auslastung der GPU nach Bereichen anzeigen zu lassen. Je höher die Balken in dem entsprechenden Bereich ausschalten, desto höher ist die Belastung der GPU zum Rendern.

OpenGL-Traces aktivieren

Mittels der aktivierten OpenGL-Traces können wir die Ausführung der GPU-Befehlen besser nachvollziehen.

Google schreibt: Tracer is a tool for analyzing OpenGL for Embedded Systems (ES) code in your Android application. The tool allows you to capture OpenGL ES commands and frame by frame images to help you understand how your graphics commands are being executed.
Quelle: developers.android.com

Aktionen nicht speichern

Sobald wir die zu debuggende App beenden werden auch sofort alle Daten um Hintergrund gelöscht. Dies hat den Vorteil, dass wir dies nicht immer selber machen müssen.
Hilfreich, wenn wir Apps programmieren, die Daten aus dem Netz cachen.

Hintergrundprozesslimit

Wie der Name bereits suggeriert, können wir die maximale Anzahl an Hintergrundprozessen limitieren und so prüfen, wie sich unsere App auf unterschiedlichen Geräten/Herstellereinstellungen verhält.

Alle ANRS anzeigen

Jeder kennt diese nervigen Pop-Ups, die uns darauf hinweisen, dass sich eine App aufgehängt hat.
Unter normalen Bedingungen benachrichtigt uns Android nur für Prozesse auf dem Haupt-Thread. Ist diese Einstellung aktiv werden uns auch Benachrichtigungen ausgegeben, wenn sich mal ein Hintergrundprozess aufhängt.

Inaktive Apps

Ich persönlich finde es umständlich und redundant, aber hiermit können wir uns deaktivierte Apps im Applikation Manager anzeigen lassen. Dies geht auch ohne Entwicklermodus direkt über den Menüpunkt “Apps” oder “App Manager”.

Marvin

Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Hat dir dieser Artikel gefallen?

Kommentar hinzufügen

*Pflichtfeld