Как я могу посмотреть на локально размещенные проекты с эмулятором Android SDK? - PullRequest
7 голосов
/ 24 августа 2009

Я разрабатываю все свои сайты на сервере OS 10.5.8 с PHP и MySQL, и я настроил мои /etc/hosts и httpd.conf файлы для отображения моего сайта на example.dev в любом браузере на этом компьютере.

Я недавно установил комплект для разработки программного обеспечения Android, который хотел бы использовать для разработки и тестирования таблиц стилей, предназначенных для мобильного Webkit, но я не могу получить доступ к своим локально размещенным проектам в браузере Android.

Это имеет смысл, поскольку он эмулирует всю ОС Android, но есть ли обходной путь? Или я могу тестировать только те проекты, которые существуют где-то в реальном компьютерном Интернете, возможно, в скрытом каталоге?

Кто-то предложил мне отредактировать мой /etc/resolv.conf файл, но я не знаю, как правильно отформатировать локально размещенный домен в resolv.conf - я попробовал варианты следующего, но ничего не работает:

domain example.dev
nameserver 127.0.0.1

Или ...

domain example.dev
nameserver localhost

В моем файле hosts это настроено так:

127.0.0.1   localhost example.dev example2.dev [etc]

Ответы [ 5 ]

13 голосов
/ 24 августа 2009

Вы должны быть в состоянии использовать IP-адрес вашего Mac в URL-адресе эмулятора Android и таким образом иметь доступ к вашим сайтам. Конечно, убедитесь, что веб-общий доступ включен в разделе «Общий доступ» в системных настройках и что ваш брандмауэр не блокирует адрес.

Кроме того, вы можете использовать IP-адрес виртуального хоста, который является 10.0.2.2. Это всегда будет отображаться на вашем компьютере Mac при запуске эмулятора.

Если по какой-то причине вы предпочитаете не использовать IP-адреса в своих URL-адресах, вы можете сопоставить IP-адрес вашего компьютера Mac с любым именем, которое вы выберете, изменив / etc / hosts в своем эмуляторе. Для этого вам нужно сначала сделать чтение-запись файловой системы, а затем добавить IP-адрес вашего компьютера и любое имя хоста, которое вы хотите, в / etc / hosts:

adb -e shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
# echo '10.0.2.2      cat-yodeling.local' >> /etc/hosts

Затем откройте «http://cat -yodeling.local » из вашего браузера. Вам должно быть хорошо идти.

7 голосов
/ 15 июля 2011

У меня была такая же проблема. Решение @ emmby звучало так, как будто оно должно делать именно то, что мне нужно, но странно, что оно не сработало Команды выполнялись, но просмотр файла hosts впоследствии показал, что он на самом деле не обновлялся.

Но я провел немного больше исследований и выяснил, в чем проблема.

Основная проблема, с которой я столкнулся, заключалась в том, что операционная система эмулированного устройства уже занимала 100% доступного хранилища, поэтому изменения не записывались в файл hosts. Однако сообщения об ошибке тоже не было.

Полагаю, причина в @emmby не в том, что проблема в том, что проблема варьируется в зависимости от версии Android, которую вы установили на эмуляторе; некоторые версии могут дать вам свободное пространство для работы.

Если у вас есть эта проблема, решение этой проблемы - запустить эмулятор с большим объемом памяти. Это можно сделать с помощью аргумента -partition-size для команды emulator, например:

emulator -partition-size 128 @MyEmulatedDevice

Затем вы можете использовать команду adb -e shell и отредактировать файл в соответствии с ответом @ emmby.

Однако, если редактирование файла из оболочки затруднительно, adb также дает вам возможность скопировать его из эмулятора в вашу хост-ОС, отредактировать его локально и снова скопировать обратно. Это также имеет дело с перемонтированием. Вы бы сделали это так:

adb pull /system/etc/hosts C:\wherever\you\want\to\save\it

Затем отредактируйте его в своем любимом редакторе.

Затем переустановите эмулятор в режим чтения / записи и скопируйте файл обратно:

adb remount
adb push C:\wherever\you\saved\hosts /system/etc/hosts

Обратите внимание, что, поскольку эмулятор сбрасывается обратно в состояние по умолчанию при каждом его перезапуске, это может быть лучшим решением, поскольку вы можете сохранить отредактированный файл локально, поэтому вам не придется повторять шаги adb pull и редактирования каждый раз; Вы можете просто запустить эмулятор, сделать remount и push, и вы в деле.

Надеюсь, это поможет.

2 голосов
/ 13 октября 2012

Следуйте инструкциям по следующим двум ссылкам:

http://www.codingonstilts.com/2012/04/android-emulator-hosts-file-entry.html (не забудьте обратить внимание на вкладки между IP-адресом и именем хоста, а также символом новой строки в нижней части файла)Я выполнил «[SDKLOCATION] / platform-tools / adb pull / system / etc / hosts WHATEVERHOSTFILENAME», чтобы сначала увидеть формат исходного файла хоста, а затем использовать его, чтобы отправить его обратно.1007 *http://www.codingonstilts.com/2012/06/sync-os-x-hosts-file-to-android.html

У меня работает - удачи !!

2 голосов
/ 25 апреля 2012

В соответствии с android docs вы можете получить доступ к вашей системе 127.0.0.1 IP, используя 10.0.2.2 на вашем эмуляторе, который является специальным псевдонимом вашего интерфейса обратной связи хоста.

2 голосов
/ 24 августа 2009

Я работал над подобной проблемой, используя IP-адрес компьютеров в локальной сети.

...