Wenn Sie ein mobiler Ingenieur sind, verwenden Sie während der Entwicklung und des Testens wahrscheinlich einige der gängigsten Tools, die es gibt, um Ihre Netzwerkaufrufe zu debuggen, abzufangen oder umzuschreiben, wie Charles Proxy oder Fiddler.
Wahrscheinlich finden Sie auch den Prozess der Einrichtung des Proxys in Ihren Geräten ziemlich lästig: Gehen Sie zu Einstellungen > Netzwerkeinstellungen > Wählen Sie Ihr WiFi-Netzwerk > Netzwerk ändern > Proxy hinzufügen. Jeder. Single. Mal. Puh!
Wenn du mit verschiedenen Geräten arbeitest, hast du wahrscheinlich auch kleine Unterschiede zwischen Android-Versionen, Herstellern usw. bemerkt, die die Schritte, die du zum Einrichten des Proxys unternimmst, hinzufügen oder ändern können.
Es gibt einen kleinen adb
-Befehl, den du von deinem Terminal aus ausführen kannst, um einen globalen Proxy auf deinem verbundenen Gerät zu aktivieren:
adb shell settings put global http_proxy YOUR_IP:YOUR_PORT
Aber dies gibt dir keinen visuellen Hinweis darauf, ob das Gerät einen Proxy verwendet oder nicht. Außerdem muss das Gerät jedes Mal, wenn Sie den Proxy aktivieren oder deaktivieren möchten, mit einem Computer verbunden sein, auf dem adb installiert ist… was diesen Workaround wahrscheinlich nicht zu einer idealen Lösung macht.
Nun, ich habe gute Nachrichten für Sie.
Proxy Toggle ist eine kleine Dienstanwendung, die mit Android 5.0 und höher kompatibel ist und es Ihnen ermöglicht, Ihre Proxy-Einstellungen schnell zu aktivieren und zu deaktivieren sowie den Prozess über Plattformversionen, Geräte, Hersteller usw. zu vereinheitlichen und zu vereinfachen.
Einfache Einrichtung: fügen Sie einfach die gewünschte IP und den Port hinzu, aktivieren Sie den Proxy und voilà! und schon wird Ihr gesamtes Gerät proxyfähig.
Einfacher geht’s nicht
Ich weiß, das sind alles aufregende Neuigkeiten. Aber ich habe auch das Gefühl, dass es ein langwieriger Prozess ist, jedes Mal die App zu öffnen, wenn du den Proxy aktivieren willst…
Deshalb habe ich auch zwei optionale Verknüpfungen für dich hinzugefügt: ein Widget für den Startbildschirm und eine Kachel für die Schnelleinstellungen.
Widget für den Startbildschirm
Diese Verknüpfung ist sehr hilfreich, um den zuletzt verwendeten Proxy schnell über den Startbildschirm zu aktivieren und zu deaktivieren.
Um das Widget hinzuzufügen, drückst du normalerweise lange auf deinen Startbildschirm (je nach Launcher), wählst „Widget hinzufügen“ und scrollst in der App-Liste nach unten, bis du das Proxy Toggle Widget siehst.
Das war’s! Schalten Sie Ihren Proxy mit einem einzigen Tippen ein und aus!
Kachel für Schnelleinstellungen
Wenn Ihr Gerät mit Android 7.0 oder höher läuft, haben Sie Zugriff auf eine weitere erstaunliche Verknüpfung: eine Kachel für Schnelleinstellungen. Diese Verknüpfung befindet sich in der Benachrichtigungsleiste neben anderen praktischen Verknüpfungen wie WiFi, Standort, Bluetooth, Flugzeugmodus usw.
Um sie zu aktivieren, erweitern Sie einfach die Navigationsleiste, klicken Sie auf das Symbol „Bearbeiten“ und ziehen Sie das Symbol „Proxy-Umschalter“ dorthin, wo Sie es platzieren möchten.
Erledigt! Sie können Ihren Proxy ein- und ausschalten, ohne die aktuelle Anwendung verlassen zu müssen!
Hinweis: Wenn Sie laufende Netzwerkanrufe haben, kann es einige Sekunden dauern, bis diese abgeschlossen sind und mit der neuen Einstellung aktualisiert werden.
Es ist nicht alles Gold, was glänzt
Obwohl die App ihr Ziel perfekt erreicht und unser Leben einfacher macht, gibt es ein paar Vorbehalte, die ich bei dieser glänzenden App hervorheben möchte.
Nutzung von eingeschränkten Systemberechtigungen
Die App macht Gebrauch von Settings.Global. Da es sich hierbei um eine Systemeinstellung handelt, ist sie normalerweise schreibgeschützt. Diese kleine Unannehmlichkeit wird umgangen, indem Sie der App die eingeschränkte Berechtigung WRITE_SECURE_SETTINGS
erteilen.
Hinweis: Dies ist eine geschützte Berechtigung, die nur System-Apps erteilt werden sollte. Seien Sie besonders vorsichtig, wenn Sie diese Berechtigung für Apps aus unbekannten Quellen erteilen.
Ich weiß, dass dies einige Bedenken hervorrufen könnte, und ich verstehe sie.
Deshalb habe ich mich entschlossen, das Projekt als Open-Source zu veröffentlichen: um zu beweisen, dass es völlig sicher ist, diese Erlaubnis zu erteilen, da man die vollständige Kontrolle und das Wissen darüber hat, was hinter den Kulissen vor sich geht.
Systemeinschränkende Berechtigungen erteilen
Da es sich um eine eingeschränkte Berechtigung handelt, können wir sie nicht zur Laufzeit anfordern, wie wir es normalerweise tun würden, also müssen Sie sie manuell von unserem Computer aus erteilen.
Wenn Sie die App einfach nur installieren möchten, ohne sie mit Android Studio zu erstellen, gibt es ein kleines Skript, das mit der App gebündelt wird. Laden Sie einfach die Zip-Datei herunter und führen Sie das installAndGrantPermission.sh
-Skript aus.
Alternativ können Sie die App manuell installieren, indem Sie adb install -g App.apk
in Ihrem Terminal ausführen.
Um diese Berechtigung zu erteilen, sobald die App bereits installiert ist, verbinden Sie das Gerät mit Ihrem Computer und führen Sie den folgenden Befehl in Ihrem Terminal aus:
adb shell pm grant com.kinandcarta.create.proxytoggle android.permission.WRITE_SECURE_SETTINGS
Sei vorsichtig bei der Deinstallation der App
Dummerweise können wir als Entwickler keinen Code ausführen, wenn die App deinstalliert wird. Wenn Sie also die App mit aktiviertem Proxy deinstallieren, wird Ihr Gerät dauerhaft mit dieser Einstellung bleiben (da es sich um eine Settings.Global-Konfiguration handelt!).
Sie sollten sicherstellen, dass der Proxy deaktiviert ist, bevor Sie die App deinstallieren. Da wir nicht garantieren können, dass dies geschieht, gibt es auch das uninstallAndCleanUp.sh
Skript, um sicherzustellen, dass alles in einem sauberen Zustand ist, nachdem die App deinstalliert wurde.
Alternativ können Sie die folgenden Befehle auf Ihrem Terminal ausführen, um die Proxy-Einstellungen zu bereinigen:
adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port
Komfort auf Knopfdruck
Proxy Toggle erleichtert die Einrichtung eines globalen Proxys auf jedem Android-Telefon und bietet verschiedene Tastenkombinationen zum Aktivieren und Deaktivieren des Proxys mit einem einzigen Tippen auf den Bildschirm. Ich hoffe, dass dieses Tool für Ihr Team genauso nützlich sein wird wie für unser internes App-Team, sowohl für Entwickler als auch für Tester!
Sie können die neueste Version hier herunterladen oder das Projekt von Github klonen.
Vielen Dank an die einzigartige und erstaunliche Flor Novello für ihre unschätzbare Hilfe beim App-Design!