Pregunta

Tengo el siguiente problema:

hacer un archivo hosts personalizados para probar algunas de las características de mi solicitud y luego empujarlo a mi emulador de Android. Lo que pasa es que estos ajustes no tienen efecto inmediato. Tengo que esperar unos 10 minutos antes de activarse.

Así que mi pregunta es: ¿cómo hacer que el nuevo archivo de hosts activa al instante? Tengo muchas configuraciones diferentes para probar y no puedo esperar 10 minutos cada vez.

¿Fue útil?

Solución

Java mantiene su propia caché DNS interno. El sistema operativo reflejará el nuevo archivo de hosts de inmediato (verificar que con ping en la línea de comandos), pero usted tendrá que indicar a Java no caché nada. Añadir estas líneas a su aplicación de prueba:

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

Para obtener más información sobre estas propiedades, consulte aquí: http://docs.oracle.com/javase/ 7 / docs / notas técnicas / guías / net / properties.html

Otros consejos

Me acaba de editar mi archivo de hosts en mi arraigada Samsung Galaxy S, y los cambios que entró en vigor inmediatamente. Tal vez el problema que estamos viendo es algo que ver con ADB?

Hice esto:

  1. Uso Busybox, copiar el archivo hosts para una ubicación editable con cp /etc/hosts /mnt/sdcard/hosts.new;
  2. Editar /mnt/sdcard/hosts.new usando el editor de textos pre-instalado, sumando las dos entradas que necesito. Solía ??IP, nombre de host calificado, entonces FQDN, por ejemplo 192.168.2.81 siva siva.myinventeddomain.org.au, pero otros formatos debería, en teoría funcione también;
  3. En BusyBox de nuevo, a raíz su;
  4. /system es ro por defecto, así que tuve que hacerlo RW con mount -o remount,rw /system;
  5. Para guardar escribir más tarde, cd /etc (con lo cual el intérprete de comandos /system/etc mostró más que /etc, lo que me hace sospechar chanchullos enlace simbólico);
  6. copia de seguridad del archivo de hosts por defecto (que contenía sólo 127.0.0.1 localhost) con mv hosts hosts.old;
  7. Instalar nuevo archivo hosts con mv /mnt/sdcard/hosts.new hosts;
  8. Ejecutar sync (simplemente porque soy paranoico - esto no debería ser necesario);
  9. Vuelva a montar /system fs ro con mount -o remount,ro /system;
  10. Salir BusyBox;
  11. Fired up navegador web (Firefox) y siva entrado en la URL combinado / Términos de búsqueda cosita (siva ser una de las dos entradas anfitriones que es nuestro).

Antes de estos cambios, el paso 11 dio lugar a una estúpida búsqueda en Google de 'siva' o algo así; inmediatamente después de ellos, consigo mi httpd página de la red LAN de host virtual delante, como espero.

Hubo también menos de 10 minutos transcurridos entre el trabajar y no trabajar.

El enlace a Java de Sun mana puede o puede no ser relevante (probablemente no lo es). Android no contiene una máquina virtual Java en absoluto, y mucho menos uno de solar. Se ejecuta una máquina virtual diferente llamada Dalvik - ver entrada de Wikipedia: http://en.wikipedia.org / wiki / Dalvik_% 28software% 29

El hecho de que se puede programar teléfonos Android en un idioma que se parece mucho a Java no viene al caso.

No he intentado usar el archivo de hosts; pero he intentado usar DNS personalizado ...

  1. Iniciar un servidor DNS en algún lugar (se puede cargar DD-WRT, disponer de un router de lujo, o ejecutar un demonio en su PC).
  2. OPCIONAL:. Configurar el router local (servidor DHCP) con la ubicación del servidor DNS que se ejecuta (lo hacen por primera vez en la lista de servidores DNS)
  3. Si el salto # 2: configurar el teléfono para IP estática (Wi-Fi Configuración-> Menú botón-> avanzado). Ajuste el DNS1 ser su servidor.
  4. conectar su teléfono a esta red a través de WiFi.

Su hecho! Ahora puede administrar nombres DNS / IP desperdicios junto con tiempos de concesión (por ejemplo, por lo que el teléfono se actualizará el IP cada 30 seg si necesita). Un tanto complicado, pero no tiene que cargar el archivo hosts en el teléfono: -).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top