Frage

Ich habe folgendes Problem:

Ich mache eine benutzerdefinierte Datei hosts einige Funktionen meiner Anwendung zu testen und dann schieben Sie es auf meinem Android-Emulator. Die Sache ist, dass diese Einstellungen wirksam werden nicht sofort. Ich habe etwa 10 Minuten warten, bevor sie aktiv werden.

Also meine Frage ist: wie die neuen Hosts zu machen Datei sofort aktiv? Ich habe viele verschiedene Einstellungen zu testen und ich kann nicht 10 Minuten jedes Mal warten.

War es hilfreich?

Lösung

Java verfügt über eine eigenen internen DNS-Cache. Das Betriebssystem wird spiegelt die neuen Host-Datei sofort (überprüfen, ob mit ping auf der Kommandozeile), aber Sie werden Java zu sagen brauchen nicht zu Cache nichts. Fügen Sie diese Zeilen zu Testanwendung:

System.setProperty("networkaddress.cache.ttl" , "0"); System.setProperty("networkaddress.cache.negative.ttl" , "0");

Weitere Informationen zu diesen Eigenschaften finden Sie hier: http://docs.oracle.com/javase/ 7 / docs / technotes / guides / net / properties.html

Andere Tipps

ich meine hosts-Datei gerade bearbeitet auf meinem wurzelt Samsung Galaxy S, und die Änderungen nahm sofort wirksam. Vielleicht ist das Problem Sie sehen, ist etwas mit ADB zu tun?

Ich habe diese:

  1. Verwenden von Busybox, kopieren Sie die Hosts-Datei in ein editierbares Lage mit cp /etc/hosts /mnt/sdcard/hosts.new;
  2. Bearbeiten /mnt/sdcard/hosts.new die vorinstallierte Texteditor, die Addition der beiden Einträge ich brauche. Ich verwenden IP, dann unqualifizierte Hostnamen, dann FQDN, zB 192.168.2.81 siva siva.myinventeddomain.org.au, aber auch andere Formate sollen in der Theorie Arbeit zu;
  3. In BusyBox wieder su root;
  4. /system ist ro standardmäßig also stelle ich musste es rw mit mount -o remount,rw /system;
  5. Um später cd /etc (worauf die Shell-Prompt zeigte /system/etc statt /etc, die mich vermuten Symlink Spielereien macht) speichern eingeben;
  6. Sichern Sie die Standard-Host-Datei (die nur 127.0.0.1 localhost enthalten) mit mv hosts hosts.old;
  7. Installieren neue Hosts-Datei mit mv /mnt/sdcard/hosts.new hosts;
  8. sync Ausführen (nur weil ich paranoid bin - sollte dies nicht notwendig sein);
  9. Remount /system fs ro mit mount -o remount,ro /system;
  10. Beenden BusyBox;
  11. Fired up Web-Browser (FireFox) und trat siva in der kombinierten URL / search Feld Dingen (siva einen der beiden Gastgeber sind Einträge ich hinzugefügt).

Vor diesen Veränderungen Schritt 11 führte zu einer dummen Google-Suche nach ‚Siva‘ oder etwas; unmittelbar nach ihnen, erhalte ich meine LAN httpd vhost auf der Titelseite, wie ich erwartet.

Es war deutlich unter 10 Minuten vergangen zwischen ihm arbeiten und es funktioniert nicht.

Der Link zu Suns Java doco kann oder nicht relevant sein (wahrscheinlich ist es nicht). Android keine Java VM überhaupt enthalten, geschweige denn von Sun ein. Es läuft eine andere VM Dalvik genannt - Wikipedia-Eintrag sehen: http://en.wikipedia.org / wiki / Dalvik_% 28software% 29

Die Tatsache, dass Sie Android-Handys in einer Sprache programmieren können, die viel wie Java sieht nebensächlich ist.

Ich habe nicht versucht, die Hosts-Datei verwendet wird; aber ich habe versucht, individuelle DNS mit ...

  1. Starten Sie einen DNS-Server irgendwo (Sie können DD-WRT laden, ein schickes Router oder einen Daemon auf Ihrem PC).
  2. . Optional: Konfigurieren Sie Ihren lokalen Router (DHCP-Server) mit der Lage des laufenden DNS-Server (es zuerst in der DNS-Server-Liste machen)
  3. IF SKIPPING # 2: Konfigurieren Sie Ihr Telefon für statische IP (Wi-Fi Einstellungen-> Menü Knopf-> Fortgeschrittene). Stellen Sie den DNS1 Ihren Server.
  4. Haben Sie Ihr Telefon eine Verbindung zu diesem Netzwerk über WIFI.

fertig! Jetzt können Sie DNS-Namen / IP-Schnipsel zusammen mit Lease-Zeiten verwalten (zum Beispiel so das Telefon die IP alle 30s aktualisiert wird, wenn Sie benötigen). Etwas kompliziert, aber Sie haben nicht die Hosts-Datei auf dem Handy laden müssen: -.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top