Эмулятор мобильного телефона для конечных пользователей на основных мобильных платформах - PullRequest
0 голосов
/ 22 августа 2011

Я пытаюсь разработать приложение для ПК (в основном для Microsoft Windows), чтобы обеспечить эмуляцию мобильного телефона (особенно в игре) для конечных пользователей. Это похоже на то, что если вы конечный пользователь, вы можете загрузить некоторые мобильные приложения на свой компьютер и протестировать их на своем компьютере, а не загружать их на мобильное устройство до того, как вы действительно захотите его получить.

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

Если возможно, мы хотели бы поддерживать следующие форматы файлов мобильного приложения:

1). jar для приложения j2me (midp 1.x, midp 2.0, cldc 1.x, opengl 3d, функции телефона api, такие как nokia, sansumg, simense, motorola и др.)

2). sis / sisx для Symbian OS (s60 v3, s60 v5, s60 uiq, s ^ ​​2, s ^ ​​3 и т. д.)

3). APK для Android OS (1.6, 2.1, 2.2, 2.3, 3.0 и т. д.)

4). CAB / EXE для Windows Mobile (мобильный 2003, мобильный 5.x, мобильный 6.x и т. д.)

5). ipa для iphone (iphone 3g, 3gs, iphone 4, ipad, ipod и т. д.)

Для фляги это не было бы такой большой проблемой, так как есть некоторые приложения, такие как kemulator, микроэмулятор преуспевает в этом. Для Symbian / Android, они могут быть не проблема, так как они оба с открытым исходным кодом. Но для Windows Mobile / Iphone, они большие проблемы, так как нет исходного кода для ссылки, особенно для iPhone такой проприетарной ОС.

Любые предложения или подсказки в значительной степени оправданы. Благодарю.

Ответы [ 3 ]

0 голосов
/ 24 августа 2011

Я могу говорить за Symbian - вы не можете запускать содержимое файлов SIS в Windows, если вы действительно не перейдете на уровень ассемблера и не перепишете полный эмулятор. Например, эмулятор Symbian, поставляемый с SDK, использует отдельные библиотеки для эмулятора и для окончательной сборки (GCCE или ARMV5), поэтому вам нужно сделать отдельную сборку для программы, запускаемой в эмуляторе.

0 голосов
/ 26 августа 2011

У меня есть много ответов после того, как я разместил свой вопрос на forum.nokia и в группе Google android-platform, и следующее содержание пытается дополнить этот ответ на этот вопрос, надеюсь, это поможет прояснить этот вопрос для другихтоже.

с форума nokia

Я не хочу вас расстраивать, но вы поставили перед собой огромную цель.Если Symbian и Nokia со всеми своими ресурсами не смогли в течение последних 10–12 лет создать двоичный эмулятор устройства, не ожидайте, что это будет легко для одинокого, независимого разработчика (особенно, когда двоичные файлы могут иметь ОС / платформу).зависимости от версии и оборудования также учитываются).И эмуляторы для J2ME, Android и iPhone, которые поставляются в соответствующих SDK, также, я подозреваю, не являются простыми проектами с одним человеком.Другими словами, этого недостаточно для «разбора установочного файла» (что легко), но вам также необходимо создать целую среду эмуляции среды выполнения для конкретного устройства / платформы, чтобы вы могли выполнять двоичные файлы (вы не можете«имитировать внешний вид», если вы не можете запустить код).В любом случае, поскольку Java (J2ME и Android / Dalvik Java) уже нацелены на виртуальную машину, с теми, которые проще, чем собственные двоичные файлы, предназначенные для реального оборудования (Symbian, iPhone, Windows CE / Mobile).Windows Phone 7 и более поздние версии, на мой взгляд, также работают в управляемой / виртуализированной среде, а не нацелены непосредственно на аппаратное обеспечение / ЦП, поэтому в этом отношении они немного похожи на Java.В любом случае, даже для Java, это будет не совсем легко для вас, так как вам нужно будет создать совместимую виртуальную машину Java и среду выполнения.Со всеми существующими эмуляторами Nintendo, Commodore 64, Atari и т. Д. Разработчики обычно создают аппаратный эмулятор, который позволяет выполнять исходные двоичные файлы (приложения не знают, что он не работает на реальном оборудовании).С древними устройствами с гораздо более простыми процессорами / аппаратными средствами, которые больше не развиваются, это намного проще - я представляю - чем пытаться ориентироваться, например, на все версии Symbian и телефоны на базе Symbian (сотни моделей, например, наодин Commodore 64).

из группы Google

Конечно - «все», что вам нужно сделать, это прочитатьПолное описание документации API на devloper.android.com, а затем заново все реализовать самостоятельно.Вдобавок ко всему, вам нужно будет придумать способ выполнения машинного кода arm в библиотеках jni и каким-то образом подключить его к вашей эмуляции всего остального.Когда вы закончите с проектом, вы сможете написать их.

0 голосов
/ 22 августа 2011

То, что вы пытаетесь сделать, - это большая работа и дублирование работы, выполняемой симуляторами / эмуляторами для каждой из платформ.

Я думаю, что есть два основных способа сделать это:

  1. Что вы предлагаете и используйте симуляторы / эмуляторы. (Может быть, те, которые поставляются в SDK для разработки для каждой платформы?)
  2. Используйте физическое оборудование и каким-то образом получайте потоковые снимки экрана каждого физического устройства.

Пытаясь написать свои собственные симуляторы и / или эмуляторы, я думаю, что это большая работа и займет очень много времени, и для некоторых типов устройств (например, iphone) я не думаю, что это будет работать очень хорошо. При написании собственного симулятора / эмулятора могут возникнуть юридические проблемы.

Если вы идете по физическому аппаратному маршруту, это может стоить больших денег за первоначальный макет.

Может быть, вы можете сделать оба? Физическое оборудование для таких устройств, как iphone и symbian, а также симуляторы / эмуляторы для Android, BlackBerry и Windows Mobile?

...