Комментарии 7
Спасибо, полезный гайд.
+1
> Попытки разместить проект в localhost/dev.gallery тоже ни к чему не приводят
Потому что вы пытаетесь обратиться к локальному серверу, то есть эмулятору. Что бы увидеть денвер нужно открывать 10.0.2.2/
Отсюда приходит сразу первая и самая простая идея, это поменять/переименовать вашу dev.gallery в localhost. То есть, например у нас сайты денвера лежат в C:\WebServers\home, а наш сайт — dev.gallery, переименовываем его в localhost. (не забываем забэкапить старую папку localhost).
Теперь у нас будет доступ из эмулятора, к dev.gallery, по следующему урлу: 10.0.2.2/
Если у вас относительные урлы, то проблем вообще никаких не будет, если абсолютные, ну плохо :) идем дальше.
2. А дальше идет ваш способ, немного его тоже дополню, что бы не тягать туда сюда файлы проще возможно будет сделать так:
emulator -avd имя_эмулятора -partition-size 128
adb -e remount
adb -e shell «echo 10.0.2.2 test1.ru >> /system/etc/hosts»
замечание: если вы пользуетесь eclipse, то -partition-size 128, можно указать прямо в настройках проекта, что бы не запускать эмулятор вручную.
3. что бы избежать всей этой ручной работы, можно просто изменить system.img. Что бы он всегда запускался с нужным hosts. Для этого копируем system.img из андроид сдк, например для android 2.3.3(api 10) это будет:
C:\android-sdk\platforms\android-10\images\system.img
в папку с вашим avd, обычно она находится в
C:\Documents and Settings\%username%\.android\avd\имя_эмулятора
и дальше разбираем с помощью unyaffs, редактируем hosts, и собираем с помощью mkfs.yaffs2. Эти утилиты можно найти в сети или собрать самому.
4. Есть еще один путь, возможно самый правильный — установить или использовать существующий DNS сервер. Это поможет избежать проблем, если позже захотите протестировать, скажем на устройстве, где нет рута.
Запускаем эмулятор:
emulator -avd имя_эмулятора -dns-server наш_днс_сервер
Потому что вы пытаетесь обратиться к локальному серверу, то есть эмулятору. Что бы увидеть денвер нужно открывать 10.0.2.2/
Отсюда приходит сразу первая и самая простая идея, это поменять/переименовать вашу dev.gallery в localhost. То есть, например у нас сайты денвера лежат в C:\WebServers\home, а наш сайт — dev.gallery, переименовываем его в localhost. (не забываем забэкапить старую папку localhost).
Теперь у нас будет доступ из эмулятора, к dev.gallery, по следующему урлу: 10.0.2.2/
Если у вас относительные урлы, то проблем вообще никаких не будет, если абсолютные, ну плохо :) идем дальше.
2. А дальше идет ваш способ, немного его тоже дополню, что бы не тягать туда сюда файлы проще возможно будет сделать так:
emulator -avd имя_эмулятора -partition-size 128
adb -e remount
adb -e shell «echo 10.0.2.2 test1.ru >> /system/etc/hosts»
замечание: если вы пользуетесь eclipse, то -partition-size 128, можно указать прямо в настройках проекта, что бы не запускать эмулятор вручную.
3. что бы избежать всей этой ручной работы, можно просто изменить system.img. Что бы он всегда запускался с нужным hosts. Для этого копируем system.img из андроид сдк, например для android 2.3.3(api 10) это будет:
C:\android-sdk\platforms\android-10\images\system.img
в папку с вашим avd, обычно она находится в
C:\Documents and Settings\%username%\.android\avd\имя_эмулятора
и дальше разбираем с помощью unyaffs, редактируем hosts, и собираем с помощью mkfs.yaffs2. Эти утилиты можно найти в сети или собрать самому.
4. Есть еще один путь, возможно самый правильный — установить или использовать существующий DNS сервер. Это поможет избежать проблем, если позже захотите протестировать, скажем на устройстве, где нет рута.
Запускаем эмулятор:
emulator -avd имя_эмулятора -dns-server наш_днс_сервер
+1
По п.1. Переименовывать локалхост плохая идея, потому как она решает свои задачи. Помимо всего прочего лично у меня в ней лежит куча сайтов и отдельных скриптов, для работы с которыми мне не критичен «корень». А в остальном – спасибо за актульное дополнение.
0
Если у вас сайт лежит прямо в localhost, тогда все еще проще, к нему можно получить доступ через 10.0.2.2/dev.gallery
0
Вот еще один способ.
Будем вешать сайт на отдельный порт, как это сделано в примере home\custom. С одним лишь исключением, что он будет висет на 127.0.0.1
В качестве примера буду использовать home\custom.
Открываем C:\WebServers\home\custom\.htaccess
И изменяем 127.0.0.2 на 127.0.0.1:
# dnwr_ip 127.0.0.1
# dnwr_host custom-host
# dnwr_port 8648
Перезапускаем/запускаем денвер.
Теперь ваш сайт будет доступен из андроид эмулятора по адресу: 10.0.2.2:8648
Будем вешать сайт на отдельный порт, как это сделано в примере home\custom. С одним лишь исключением, что он будет висет на 127.0.0.1
В качестве примера буду использовать home\custom.
Открываем C:\WebServers\home\custom\.htaccess
И изменяем 127.0.0.2 на 127.0.0.1:
# dnwr_ip 127.0.0.1
# dnwr_host custom-host
# dnwr_port 8648
Перезапускаем/запускаем денвер.
Теперь ваш сайт будет доступен из андроид эмулятора по адресу: 10.0.2.2:8648
0
Спасибо огромное. Это мне нужно прямо сейчас было.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Android Emulator и локальный веб-сервер (Denwer)