J2ME - код один раз и везде запустить? - PullRequest
3 голосов
/ 15 мая 2009

Могу ли я один раз написать код в J2ME и запустить его на любом мобильном телефоне, как я могу использовать .Net compact framework?

Ответы [ 6 ]

5 голосов
/ 18 мая 2009

Несколько областей, которые страдают от фрагментации:

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

  • Производители склонны либо по-разному интерпретировать спецификации для мультимедиа и сетей, либо просто отправлять телефоны, содержащие ошибки. Некоторые операторы мобильной связи разрешают только трафик сети HTTP.

  • Политики безопасности, регулирующие доступ к файловой системе, отличаются от одного телефона к другому. RMS-записи могут быть ограничены в размере на некоторых телефонах.

  • Производительность варьируется в зависимости от телефона.

...

5 голосов
/ 15 мая 2009

Вы столкнетесь с различиями в том, как каждый провайдер внедрил свою JVM. Поскольку аппаратное обеспечение каждого телефона отличается, они все работают немного по-разному. Большинство вещей будет работать, но могут быть некоторые различия.

3 голосов
/ 21 мая 2009

Код J2ME, который вы пишете, нуждается в определенной среде телефона с точки зрения времени выполнения и доступных для него классов. В зависимости от того, что вы используете в своем приложении, вы сможете запустить его на некоторых телефонах, а на других - не будет. Например, Допустим, вы J2ME-приложение, которое использует MIDP 2.0 и CDLC 1.1. Теперь ваше приложение будет работать только на телефонах, которые поддерживают эти профили.

Обычно при написании приложений для мобильных телефонов вы ориентируетесь на определенный сегмент мобильных телефонов. Вы не ожидаете, что приложение акселерометра будет работать на телефонах, у которых нет акселерометра! (Я не думаю, что J2ME поддерживает акселерометры;))

2 голосов
/ 25 июня 2009

Прежде всего, я хотел бы сказать, что большинство комментариев здесь верны, разные JVM могут работать немного по-разному, и вы должны помнить об используемых вами API.

Однако есть еще одно соображение, которое следует учитывать: стандартизация . Я имею в виду такие вещи, как архитектура мобильных сервисов (MSA - JSR 248), они значительно упрощают работу, создавая некоторые стандартные наборы API. Более того, они содержат некоторые пояснения к включенным API и правилам их реализации.

Также такие вещи, как MIDP 2.1, ужесточают стандарты. 2.1 версия в основном 2.0, но с «затянутыми болтами»: более строгие правила, которые проясняют некоторые аспекты и устраняют потенциальную фрагментацию. Например, в любом случае требуется включить двойную буферизацию или поддерживать сенсорный экран в Java, если он есть у устройства.

Сказав это, я должен сделать вывод, что фрагментация действительно уменьшается, производители действительно принимают стандарты, такие как JSR 248. Но в любом случае тестируйте ваши приложения столько, сколько необходимо, мы все люди, и разработчики JVM также делают ошибки и оставляют ошибки в своих код.

2 голосов
/ 17 мая 2009

Да, вы можете запускать свои мидлеты на любых телефонах с поддержкой Java.

Но когда дело доходит до кодирования j2me, слоган "пиши один раз, беги куда угодно" становится

"пиши один раз, переписывай везде"

или

"Пиши один раз, везде отлаживай"

1 голос
/ 15 мая 2009

Ни J2ME, ни .NET Compact Framework не являются вездесущими (хотя J2ME поддерживается на внушительном количестве телефонов). Вы можете работать только на тех телефонах, которые их поддерживают. Так что в любом случае вы можете написать один раз и запускать везде, где поддерживается платформа / фреймворк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...