Я думаю некоторые из веб-разработчиков сталкивались с задачей создания сайтов и сервисов под мобильные платформы. И проблема возникает в том момент, когда надо протестировать свое творение. И если найти тот или иной девайс все же не проблема, то протестировать на максимальном количеством устройств достаточно сложно. И тут на помощь приходят ОНИ — эмуляторы. В данном посте я рассмотрю вопросы установки и запуска эмуляторов следующих мобильных устройств, с целью запуска на них нужного сервиса: Win Mobile, iPhone, BlackBerry, Android, Symbian^3.
Образы виртуальных машин устанавливаются из файла Images5.0.msi (для Windows Mobile 5.0). Инсталляция проходит быстро и легко. В меню «Пуск\Программы» создается папка с ярлыками «Microsoft Windows Mobile 5.0 MSFP Emulator Images» или «Windows Mobile 6 SDK», в зависимости от выбранной версии ОС.
Опишу коротко предназначение каждого ярлыка:
Device Emulator Manager – запуск менеджера, позволяющего управлять работой запущенных эмуляторов. Об этой программе поговорим ниже.
XXXXX – Coldboot – запуск «чистого» образа Windows Mobile, версия с настройками по умолчанию, то есть «голая» система.
XXXXX – Savestate – запуск виртуального компьютера из сохраненного ранее состояния.
Версия «Smartphone QVGA» отличается от обычной «Smartphone» тем, что у QVGA разрешение дисплея 320х240 пикселей, а стандартное разрешение для WM-смартфонов считается 176х220 точек. Сейчас производители в основном выпускают смартфоны с разрешением 320x240, так что QVGA-режим наиболее актуален.
Рекомендую также посмотреть свойства ярлыков для запуска виртуальной машины.
Эмулятор принимает первоначальные настройки лишь в качестве аргументов командной строки, а при самостоятельном (без параметров) запуске файла DeviceEmulator.exe выводится лишь список допустимых аргументов.
Например, ярлык «Pocket PC – Coldboot» вызывает эмулятор со следующими параметрами:
Итак, все готово. Жмем для примера «PocketPC – Coldboot» и в дальнейшем будем работать именно с образом Pocket PC. Перед нами появилось окно с виртуальным КПК, который можно использовать для различных экспериментов. А пока предлагаю перейти к настройке эмулятора.
Как уже писалось выше, основные параметры передаются DeviceEmulator.exe в качестве аргументов, поэтому открыв настройки эмулятора (File/Settings) мы увидим, что некоторые свойства изменить нельзя (они заблокированы от греха подальше).
На вкладке General можно изменить поля Host key и FuncKey, которые не играют практически никакой роли при использовании эмулятора, поэтому их можно не трогать (поясним, что эти параметры влияет на работу с клавиатурой). А вот параметр Shared Folder очень даже полезен и позволяет использовать папку на ПК в качестве виртуальной карты памяти для эмулятора. Можно либо выбрать каталог из списка, либо ввести путь вручную. Стоит обратить внимание, что введенный адрес должен существовать, иначе эмулятор выдаст ошибку.
Все параметры с этой вкладки можно задать, используя параметры командной строки:
/binfile – полное имя файла с образом виртуальной машины. Например:
/memsize size – установить объем виртуальной памяти в size мегабайт. Например /memsize 64
/sharefolder directoryname – путь к общей папке. Например: /sharefolder “C:\PPC_SD”
/funckey key – установка FuncKey. Например: /funckey 193
/hostkey keyname – установка Host key (“None”, “Left-Alt” или “Right-Alt”). Например: /hostkey Left-Alt
/flash filename – позволяет установить поле “Flash memory file” для эмуляции флэш-памяти через файл. Например: /flash ppc_flash.bn
Далее переходим на вкладку Display. Здесь можно либо выбрать готовый Skin/Скин (внешность виртуального КПК), либо указать разрешение вручную. Каждый скин описывается в XML-файле, который хранится в папке с образами (или в отдельных папках). Что же касается режима Video (можно выбрать либо Video, либо Skin), то поля Screen width, Screen height и Color depth скорее всего будут задизейблен, так как параметры экрана можно задать в через командную строку, о чем говорилось выше. Режим Zoom 2x увеличивает размеры дисплея эмулятора в 2 раза, не меняя при этом фактического разрешения экрана виртуального КПК. Always on top – всегда держать эмулятор над остальными окнами, Show tooltips – показывать всплывающие подсказки. Orientation – поворот КПК на 0, 90, 180 или 270 градусов по часовой стрелке.
Отдельно стоит упомянуть программу Device Emulator Manager (DEM), которая позволяет работать сразу с несколькими образами, включать/выключать их, подключать к кредлу, перезагружать и прочее.
Кнопка Refresh нужна для ручного обновления состояния виртуальных машин. Эту кнопку необходимо нажимать после запуска/закрытия эмулятора. Каждый образ имеет свой номер (ID), через который можно в DEM работать с виртуальным КПК.
Пункт меню «File->Restore Image» позволяет восстановить образ, сохраненный через «Save state and exit» (см. выше), состояние виртуальной машины сохраняется в файле с расширением .dess.
Если рядом с пунктом меню «File->No Security Prompts» стоит галочка, то при запуске эмулятора запросы на подключение сетевого адаптера/периферии и прочее появляться не будут. Этому пункту соответствует параметр командной строки /nosecuritypromt
В меню «Actions» находятся различные действия, которые можно совершить с виртуальной машиной (это же меню открывает при клике правой кнопкой мыши на ID образа):
Чтобы ActiveSync опознал подключение виртуального КПК, в его настройках параметров подключения должна стоять галочка «Разрешить подкл. к след. объектам» и выбран пункт DMA.
Можно работать!
(Большая часть материала взята отсюда)
Для этой платформы синхронизации нет, так как он позволяет запускать только браузер.
Для запуска этого эмулятора нам понадобится Safari под Windows, версия либо 3 либо 4. Соответственно, в зависимости от версии сафари качается и нужная версия эмулятора: 3 или 4. Разница заключается в версии WebKit, который и рендерит картинку.
После того как все скачано, надо сначала установить сафари, а после этого разархивировать в отдельную папку эмулятор. В случае 4 желательно скопировать все файлы из этой папки
в папку куда был разархивирован эмулятор. Запускаем эмулятор и идем по адресу своего приложения.
Сначала качаем Android SDK. (Найти Standalone эмулятор к сожалению не вышло). После скачивания запускаем установку и видим примерно следующее:
В нем нам предлагают скачать все последние обновления. Можно закрывать его смело и переходить на Available packages, где выбираем нужную версию платформы.
Напомню, в плане веб рендеринга разница между 1.5 и 2.1 огромна.
Теперь идем на вкладку Virtual device где создаем устройство нужной нам версии.
Profit!
Для синхронизации я использовал HTC Sync.
Самые толстые закачки тут. Мне пришлось выкачать почти 150 метров, что ужасно. SDK весит еще около 300 метров. Epic. Кроме того, чтобы все это скачать сначала придется зарегистрироваться, что вообще ни в какие ворота не лезет. Но от слов к делу.
Качаем сначала BlackBerry Email MDS. После этого качаем сам эмулятор. Зависимость модель-версия ОС можно посмотреть вот тут.
Скачиваем и устанавливаем. После этого сначала запускаем BlackBerry Email MDS, и ждем пока в консоль перестанут идти новые сообщение. После этого запускаем эмулятор и снова профит.
Тулзу для синхронизации качаем тут.
Сначала идем на страницу загрузок, на которой нам надо скачать следующие файлы:
После скачивания все надо распаковать в одну папку.
Когда все это выполнено для запуска эмулятора потребуется запустить файл:
%home_dir%\epoc32\release\winscw\urel\epoc.exe
Запускается он долго, я бы даже сказал очень долго. В первый запуск от вас потребуется ввести свою страну и время. Если эмулятор не запускается или валится с ошибками, то следует запускать вот такой файл:
%home_dir%\epoc32\release\winscw\udeb\epoc.exe
К сожалению, он работает еще медленнее, так что запаситесь терпением =)
Но это еще не все, так как наша задача состоит в запуске веб приложения. Переходим к процессу соединения с интернетом.
Здесь есть два способа:
Путь первый (который я и использовал). Качаем тулзу со страницы проекта и устанавливаем. Продукт бесплатный и, по заверениям разработчиков symbian, стабильный.
Теперь создадим и настроим файл CommsDat, который и отвечает за подключение к сети.
В папке
находится файл ethernetced.xml, отвечающий за настройки. Очень важным элементов в нем является область ограниченная тэгом . Именно в ней прописываются настройки подключения к прокси, что достаточно актуально.
Далее в переменных среды следует добавить новую переменную EPOCROOT, в которой указан путь до корневой папки, куда были распакованы файлы. Кроме того, в PATH следует добавить следующий путь:
После этого в консоли запускаем EnableLanConnection.cmd, который делает следующее:
Путь второй. К сожалению, вторая тулза пока что не поставляется отдельно, поэтому придется качать целиком все PDT. Устанавливается она так же одновременно с PDT и ставит дефолтный ip для устройства 192.168.0.1. Настроить его можно выполнив следующую команду в консоли:
Проверка на работоспособность
Чтобы проверить, что все работает, запускаем браузер и пытаемся пройти по нужному адресу. При первом подключении предлагается выбрать одну из точек доступа:
Нам нужно последнее — Ethernet with Daemon Dynamic IP.
UPD1
К полезным эмуляторам так же отнесем Opera Mobile emulator и Opera Mini Simulator. Спасибо pepelsbey и Akos.
Windows Mobile
Необходимый софт
- Microsoft ActiveSync 4.0 и выше (7-8 МБ);
- Microsoft Device Emulator 2.0 (~1 МБ);
- Microsoft Virtual Machine Network Driver (netsvwrap.msi, ~180 КБ);
- образы Windows Mobile 5.0 (efp.msi, ~60 МБ) или Windows Mobile 6.0 (от 80 МБ за комплект локализованных образов);
Установка образов
Образы виртуальных машин устанавливаются из файла Images5.0.msi (для Windows Mobile 5.0). Инсталляция проходит быстро и легко. В меню «Пуск\Программы» создается папка с ярлыками «Microsoft Windows Mobile 5.0 MSFP Emulator Images» или «Windows Mobile 6 SDK», в зависимости от выбранной версии ОС.
Опишу коротко предназначение каждого ярлыка:
Device Emulator Manager – запуск менеджера, позволяющего управлять работой запущенных эмуляторов. Об этой программе поговорим ниже.
XXXXX – Coldboot – запуск «чистого» образа Windows Mobile, версия с настройками по умолчанию, то есть «голая» система.
XXXXX – Savestate – запуск виртуального компьютера из сохраненного ранее состояния.
Версия «Smartphone QVGA» отличается от обычной «Smartphone» тем, что у QVGA разрешение дисплея 320х240 пикселей, а стандартное разрешение для WM-смартфонов считается 176х220 точек. Сейчас производители в основном выпускают смартфоны с разрешением 320x240, так что QVGA-режим наиболее актуален.
Рекомендую также посмотреть свойства ярлыков для запуска виртуальной машины.
Немного о запуске
Эмулятор принимает первоначальные настройки лишь в качестве аргументов командной строки, а при самостоятельном (без параметров) запуске файла DeviceEmulator.exe выводится лишь список допустимых аргументов.
Например, ярлык «Pocket PC – Coldboot» вызывает эмулятор со следующими параметрами:
C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe» pocketpc.nb0 /memsize 128 /skin Pocket_PC.xml /vmid {f1b1af09-969d-4035-8223-b800c75f451f} /s pocketpc.dess /p /funckey 193
Итак, все готово. Жмем для примера «PocketPC – Coldboot» и в дальнейшем будем работать именно с образом Pocket PC. Перед нами появилось окно с виртуальным КПК, который можно использовать для различных экспериментов. А пока предлагаю перейти к настройке эмулятора.
Настройка эмулятора
Как уже писалось выше, основные параметры передаются DeviceEmulator.exe в качестве аргументов, поэтому открыв настройки эмулятора (File/Settings) мы увидим, что некоторые свойства изменить нельзя (они заблокированы от греха подальше).
На вкладке General можно изменить поля Host key и FuncKey, которые не играют практически никакой роли при использовании эмулятора, поэтому их можно не трогать (поясним, что эти параметры влияет на работу с клавиатурой). А вот параметр Shared Folder очень даже полезен и позволяет использовать папку на ПК в качестве виртуальной карты памяти для эмулятора. Можно либо выбрать каталог из списка, либо ввести путь вручную. Стоит обратить внимание, что введенный адрес должен существовать, иначе эмулятор выдаст ошибку.
Все параметры с этой вкладки можно задать, используя параметры командной строки:
/binfile – полное имя файла с образом виртуальной машины. Например:
“C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe” “C:\Program Files\Windows Mobile 6 SDK\PocketPC\Deviceemulation\0419\PPC_RUS_GSM_VR.BIN”.
Если эмулятор запускается из папки с образом, то полный путь до файла можно не указывать/memsize size – установить объем виртуальной памяти в size мегабайт. Например /memsize 64
/sharefolder directoryname – путь к общей папке. Например: /sharefolder “C:\PPC_SD”
/funckey key – установка FuncKey. Например: /funckey 193
/hostkey keyname – установка Host key (“None”, “Left-Alt” или “Right-Alt”). Например: /hostkey Left-Alt
/flash filename – позволяет установить поле “Flash memory file” для эмуляции флэш-памяти через файл. Например: /flash ppc_flash.bn
Далее переходим на вкладку Display. Здесь можно либо выбрать готовый Skin/Скин (внешность виртуального КПК), либо указать разрешение вручную. Каждый скин описывается в XML-файле, который хранится в папке с образами (или в отдельных папках). Что же касается режима Video (можно выбрать либо Video, либо Skin), то поля Screen width, Screen height и Color depth скорее всего будут задизейблен, так как параметры экрана можно задать в через командную строку, о чем говорилось выше. Режим Zoom 2x увеличивает размеры дисплея эмулятора в 2 раза, не меняя при этом фактического разрешения экрана виртуального КПК. Always on top – всегда держать эмулятор над остальными окнами, Show tooltips – показывать всплывающие подсказки. Orientation – поворот КПК на 0, 90, 180 или 270 градусов по часовой стрелке.
Менеджер эмуляторов
Отдельно стоит упомянуть программу Device Emulator Manager (DEM), которая позволяет работать сразу с несколькими образами, включать/выключать их, подключать к кредлу, перезагружать и прочее.
Кнопка Refresh нужна для ручного обновления состояния виртуальных машин. Эту кнопку необходимо нажимать после запуска/закрытия эмулятора. Каждый образ имеет свой номер (ID), через который можно в DEM работать с виртуальным КПК.
Пункт меню «File->Restore Image» позволяет восстановить образ, сохраненный через «Save state and exit» (см. выше), состояние виртуальной машины сохраняется в файле с расширением .dess.
Если рядом с пунктом меню «File->No Security Prompts» стоит галочка, то при запуске эмулятора запросы на подключение сетевого адаптера/периферии и прочее появляться не будут. Этому пункту соответствует параметр командной строки /nosecuritypromt
В меню «Actions» находятся различные действия, которые можно совершить с виртуальной машиной (это же меню открывает при клике правой кнопкой мыши на ID образа):
- Connect – подключить утилиты разработчика к эмулятору (у меня все время было пункт был заблокирован).
- Cradle – подключить к кредлу, ActiveSync должен найти КПК.
- Uncradle – отключить от кредла.
- Shutdown – выключить
- Reset – мягкая перезагрузка, «софт ресет» (только обнуление ОЗУ);
- Clear Save State – очистить сохраненные параметры, аналог жесткой перезагрузки, «хард ресет» (возвращает КПК в заводское состояние).
- Bring to Front – перенести окно эмулятора на передний план.
Чтобы ActiveSync опознал подключение виртуального КПК, в его настройках параметров подключения должна стоять галочка «Разрешить подкл. к след. объектам» и выбран пункт DMA.
Можно работать!
(Большая часть материала взята отсюда)
iPhone
Для этой платформы синхронизации нет, так как он позволяет запускать только браузер.
Для запуска этого эмулятора нам понадобится Safari под Windows, версия либо 3 либо 4. Соответственно, в зависимости от версии сафари качается и нужная версия эмулятора: 3 или 4. Разница заключается в версии WebKit, который и рендерит картинку.
После того как все скачано, надо сначала установить сафари, а после этого разархивировать в отдельную папку эмулятор. В случае 4 желательно скопировать все файлы из этой папки
C:\Program Files\Common Files\Apple\Apple Application Support
в папку куда был разархивирован эмулятор. Запускаем эмулятор и идем по адресу своего приложения.
Android
Сначала качаем Android SDK. (Найти Standalone эмулятор к сожалению не вышло). После скачивания запускаем установку и видим примерно следующее:
В нем нам предлагают скачать все последние обновления. Можно закрывать его смело и переходить на Available packages, где выбираем нужную версию платформы.
Напомню, в плане веб рендеринга разница между 1.5 и 2.1 огромна.
Теперь идем на вкладку Virtual device где создаем устройство нужной нам версии.
Profit!
Для синхронизации я использовал HTC Sync.
BlackBerry
Самые толстые закачки тут. Мне пришлось выкачать почти 150 метров, что ужасно. SDK весит еще около 300 метров. Epic. Кроме того, чтобы все это скачать сначала придется зарегистрироваться, что вообще ни в какие ворота не лезет. Но от слов к делу.
Качаем сначала BlackBerry Email MDS. После этого качаем сам эмулятор. Зависимость модель-версия ОС можно посмотреть вот тут.
Скачиваем и устанавливаем. После этого сначала запускаем BlackBerry Email MDS, и ждем пока в консоль перестанут идти новые сообщение. После этого запускаем эмулятор и снова профит.
Тулзу для синхронизации качаем тут.
Symbian^3
Установка эмулятора
Сначала идем на страницу загрузок, на которой нам надо скачать следующие файлы:
- binaries_epoc.zip
- binaries_winscw_lib.zip
- binaries_winscw_udeb.zip
- binaries_winscw_urel.zip
- tools_epoc.zip
После скачивания все надо распаковать в одну папку.
Когда все это выполнено для запуска эмулятора потребуется запустить файл:
%home_dir%\epoc32\release\winscw\urel\epoc.exe
Запускается он долго, я бы даже сказал очень долго. В первый запуск от вас потребуется ввести свою страну и время. Если эмулятор не запускается или валится с ошибками, то следует запускать вот такой файл:
%home_dir%\epoc32\release\winscw\udeb\epoc.exe
К сожалению, он работает еще медленнее, так что запаситесь терпением =)
Подключение к сети
Но это еще не все, так как наша задача состоит в запуске веб приложения. Переходим к процессу соединения с интернетом.
Здесь есть два способа:
- используя WinPCap — тулза для прямого обращения к сетевой карте;
- используя TAP-Win32 — еще одна тулза, которая создает виртуальную сетевую карту, которая объединяется в сеть с реальной.
Путь первый (который я и использовал). Качаем тулзу со страницы проекта и устанавливаем. Продукт бесплатный и, по заверениям разработчиков symbian, стабильный.
Теперь создадим и настроим файл CommsDat, который и отвечает за подключение к сети.
В папке
%home_dir%\epoc32\winscw\c
находится файл ethernetced.xml, отвечающий за настройки. Очень важным элементов в нем является область ограниченная тэгом . Именно в ней прописываются настройки подключения к прокси, что достаточно актуально.
Далее в переменных среды следует добавить новую переменную EPOCROOT, в которой указан путь до корневой папки, куда были распакованы файлы. Кроме того, в PATH следует добавить следующий путь:
%home_dir%\epoc32\tools
После этого в консоли запускаем EnableLanConnection.cmd, который делает следующее:
- Делает бэкап существующего commsDat;
- Создает новый commsDat с учетом измененного ethernetced.xml;
- Запускает NetCards.exe для определения сетевой карты и обнаружения актуального подключения;
- Запускает
%home_dir%\epoc32\release\winscw\udeb\DbCreator.exe
для внесения дополнительных настроек в окружение эмулятора.
Путь второй. К сожалению, вторая тулза пока что не поставляется отдельно, поэтому придется качать целиком все PDT. Устанавливается она так же одновременно с PDT и ставит дефолтный ip для устройства 192.168.0.1. Настроить его можно выполнив следующую команду в консоли:
netsh interface ip set address TAP-Win32 static 192.168.0.77 255.255.255.0
Проверка на работоспособность
Чтобы проверить, что все работает, запускаем браузер и пытаемся пройти по нужному адресу. При первом подключении предлагается выбрать одну из точек доступа:
- GPRS IAP Placehol...
- GPRS IAP Placehol...
- Ethernet No Daem...
- Incorrect ethernet...
- Incorrect ethernet...
- Ethernet with Dae...
- Incorrect ethernet...
- Ethernet with Dae...
Нам нужно последнее — Ethernet with Daemon Dynamic IP.
UPD1
К полезным эмуляторам так же отнесем Opera Mobile emulator и Opera Mini Simulator. Спасибо pepelsbey и Akos.