Как стать автором
Обновить

Комментарии 7

Спасибо, полезный гайд.
> Попытки разместить проект в 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 наш_днс_сервер
По п.1. Переименовывать локалхост плохая идея, потому как она решает свои задачи. Помимо всего прочего лично у меня в ней лежит куча сайтов и отдельных скриптов, для работы с которыми мне не критичен «корень». А в остальном – спасибо за актульное дополнение.
Если у вас сайт лежит прямо в localhost, тогда все еще проще, к нему можно получить доступ через 10.0.2.2/dev.gallery
Нет. Этот мне как раз нужен в корне, но и локалкост задействован под свои нужды, которые не имеют отношения к экзерсисам с андроидом
Вот еще один способ.

Будем вешать сайт на отдельный порт, как это сделано в примере 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
Спасибо огромное. Это мне нужно прямо сейчас было.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории