Home

Cambiar el Hosts file en tu Android Emulator

webmaster's picture

Cuando desarrollamos aplicaciones para dispositivos con SO Android normalmente utilizamos el emulador que viene con la plataforma SDK para probar nuestras aplicaciones y si este tiene que acceder a direcciones web en la red local, lo más probable es que no las encuentre ya que no es capaz resolver los nombres de red por DNS, ni de detectar las confguraciones del fichero hosts de la maquia en la que se encuentra.

La solución a esto está en copiar el fichero hosts con las definiciones de las IP desde la maquina local a la maquina virtual del emulador.

Pasos a seguir:

1.- Arrancamos el emulador virtual de android en la linea de comandos asignandole un nombre y una memoria suficiente para que no de errores de "Out of memory" a la hora de realizar las operaciones de transferencia. Normalmente se encuantra en la carpeta donde tengamos instalado el SDK: c:\adt\sdk\tools\

emulator -avd myAvdNameHere -partition-size 256 

donde:

myAvdNameHere: Es el nombre que le quiero adjudicar al emulador.

2.- Remontamos el emulador con permisos de escritura. Normalmente el comando adb.exe se encuantra en la carpeta sdk\platform-tools

adb remount

3.- Si tenemos nuestro hosts file bien configuado con las definiciones de las IP de nuestra red local bastaría con copiar este de la maquina local al emulador en la carpeta correspondiente. En Windows 7 el  file hosts se encuentra en c:\windows\system32\drivers\etc\

adb push \Windows\System32\drivers\etc\hosts /system/etc

Para probar que todo ha quedado bien configurado abrimos el navegador e introducimos una direccion web de las que están definidas en el hosts y deberia mostrarnos su página de inicio.

Nota Importante: Mientras el emulador siga activo con la sesión lanzada desde la linea de comandos, podemos ajecutar nuestra aplicacion android llamandola desde el Eclipse, marcando la sesión del emulador que tenemos ya activa y que saldrá en la lista de los dispositivos disponibles, o desde la instalación que aparecerá en el emulador de nuestra aplicación. Una vez cerrado el emulador la copia del hosts file habrá desaparecido y tendriamos de nuevo que ejecutar dichos pasos para volver a tener nuestro emulador accesible a las direccines web de nuestra red interna.

Para solventar este problema he creado batch file que se encarga de cargar el emulador y configurarlo con el hosts file adecuado durante mi se sión de trabajo con el desarrolllo de la aplicación.

@ echo off
REM ************************************************************************************
REM Nombre: android.bat
REM Fecha.: 07.05.2013
REM Funciones: Lanzar el emulador Android con la configuracion hosts de la maquina local
REM *************************************************************************************
cd c:\adt\sdk\tools\
emulator -avd "myphone" -partition-size 256
echo Esperando a que carge el emulador. Espere por favor...
ping 1.1.1.1 -n 1 -w 50000 > nul
..\platform-tools\adb remount
goto paso%ERRORLEVEL%
:paso0
..\platform-tools\adb push \Windows\System32\drivers\etc\hosts /system/etc
echo Emulador configurado en LAN
goto fin
:paso1
echo Error en la configuracion del emulador. Aun no estaba preparado
goto fin
:paso3
echo Error en la carga del emulador
:fin
 

 

Fuente: 

Centro Practico - LEMUR SOLUTION

Contacto: 
webmaster