Wer als Entwickler von mobilen Endgeräten auf einen lokalen Web-Server zugreifen möchte, muss die hosts-Datei seines Endgeräts modifizieren. Dies ist etwas schwieriger, als bei einem normalen Windows- oder Linux-PC. Im folgenden wird die Vorgehensweise für Emulatoren und Endgeräte gezeigt.
Änderung der hosts-Datei eines Emulators
Wir verwenden das adb-Tool, das wir aus diesem Beitrag schon kennen und das wir installiert haben.
In einer Windows-Console eines Ordners, in dem wir unsere hosts-Datei auch langfristig sichern möchten, führen wir folgende Kommandos aus:
adb remount adb pull /etc/hosts hosts-android-emulator
In dem Verzeichnis, in dem wir unsere Console geöffnet haben, finden wir jetzt die Datei hosts-android-emulator, die nur die Zeile 127.0.0.1 localhost enthält. In diese Datei tragen wir die lokale IP-Adresse und den Namen unseres Entwicklungs-Server ein, so dass die Datei z.B. so aussehen könnte:
127.0.0.1 localhost 192.168.178.26 testwebserver.myproject.com
Wenn dieser Web-Server ein Apache-Server ist, müssen wir den Server natürlich auch in der Datei C:\xampp\apache\conf\extra\httpd-vhosts.conf deklarieren, z.B. so:
<VirtualHost *:80> ServerAdmin adminr@testwebserver.myproject.com DocumentRoot "C:/xampp/htdocs/<myprojectpath>/home" ServerName testwebserver.myproject.com </VirtualHost>
Nun müssen wir die modifizierte hosts-Datei wieder auf den Emulator hochladen mit diesem Kommando:
adb push hosts-android-emulator /etc/hosts
Wir testen das Ganze, indem wir eine Seite unseres lokalen Web-Servers über den Browser des Emulators aufrufen.
Ab jetzt findet man die hosts Datei immer in diesem Verzeichnis. Man muss sie leider nach jedem Neustart des Eulators erneut wieder hochladen, weil sie - im Gegensatz zu Apps - dort nicht permanent gespeichert wird.
Dies lässt sich natürlich schwierig in einen automatisierten Workflow einbauen, zumal das Starten eines Emulators meist ziemlich lange dauert und man in einem Bash-Skript oder Grunt kein definiertes Signal dafür bekommt, wann das Betriebssystem gebootet ist.
Bis uns da was Besseres einfällt, bauen wir den letzten Befehl oben in ein separates Bash-Skript ein und legen eine Verknüpfung dorthin, wo wir das Skript bequem mit einem Klick nach dem Booten des Betriebsssystems des Emulators starten können.
Änderung der hosts-Datei auf dem Android-Endgerät
Wer die hosts-Datei auf seinem Handy oder Tablet ändern möchte, dem sei die App Hosts Editor von Hosts File HQ empfohlen.
Es gibt mehrere Apps für diese Aufgabe. Eine andere App im Google Store, die an erster Stelle stand, funktionierte bei mir nicht und erzeugte sogar Daten-Mismatch.
Dieses Problem wurde dann durch die App von Hosts File HQ wieder repariert, so dass ich die App für die Änderung der /etc/hosts-Datei wärmstens empfehlen kann.