Почему мидлет не может работать на любом телефоне
SmartGSM ] SMTP-клиент для мобильного телефона ] [ Почему мидлет не может работать на любом телефоне ]

 

SmartGSM
Программы
Новости
FAQ и советы
Обзоры
SmartLife
Профессионалу

'Коньком' Java индустрии считается то, что написанная на нем программа сможет работать на любой платформе, для которой есть виртуальная машина, почему же выдвинутый фирмой Sun лозунг "Написал однажды — работает везде" так обманчив относительно мидлетов?

Сначала стоит сделать небольшой экскурс в историю.
После появления в свет MIDP 1.0 (JSR-37 10 сентября 2000) производители мобильных телефонов не особо торопились реализовывать Java в своих моделях. Достаточно долгое время существовали только два таких телефона Motorola i85s (платоформа IDEN Северная Америка) и Siemens SL45i (платоформа GSM Европа). Но при этом они смотрели друг на друга через Атлантический океан. Первый в основном был распространен в США и Канаде, а второй в Европе (причем львиная доля в Германии). Поэтому, как правило, первые разработчики мидлетов не имели возможности протестировать свои телефоны на обоих аппаратах.

Но прошло время, и появились новые телефоны поддерживающие MIDP 1.0. Siemens M50, Siemens C55, Nokia 3410, Nokia 6310i и те мидлеты (которые были полностью совместимы с MIDP 1.0) могли выглядеть на новых моделях не user friendly. Так как основу индустрии мидлетов представляли собой игры, которые зачастую были завязаны на определенный размер экрана, а размер экрана новых телефонов был меньше по сравнению с Siemens SL45i.

Весь предыдущий рассказ относился к мидлетам, которые полностью совместимы с MIDP 1.0. Вторая проблема несовместимости - это собственные API предоставляемые производителями сотовых телефонов. MIDP 1.0 был первой ласточкой и возможности его были ограничены, а выработанных стандартов еще попросту не существовало, поэтому производители пытались расширить возможности Java. (За что им большое спасибо)

 

Итак Siemens SL45i имел следующий набор API:
com.siemens.mp.game - дает возможность работать с подсветкой, вибратором, звуком (чего в MIDP 1.0 нет) и с графикой.
com.siemens.mp.gsm - позволяет посылать SMS, делать телефонные звонки.
com.siemens.mp.io - позволяет перемещать данные через SMS, IrDA работать с флэш картой.
Позднее в Siemens C55 появились пакеты
com.siemens.mp.media
com.siemens.mp.media.control
которые представляют собой реализацию Mobile Media API JSR-135. (Данные пакеты теперь содержатся в MIDP 2.0 JSR-118 java.microedition.media и java.microedition.media.control, но MIDP 2.0 не реализует JSR-135 полностью).

 

Телефоны Nokia 3410 и Nokia 6310i позволяют использовать Nokia UI & SMS API:
com.nokia.mid.sound - дает возможность работать со звуком.
com.nokia.mid.ui - дает возможность работать работать с подсветкой, вибратором и с графикой.
com.nokia.mid.messaging - позволяет посылать и получать SMS сообщения. (Wireless Messaging API JSR-120)
И если разработчик в своем мидлете задействовал какой-то из этих API, то запустить такой мидлет на телефоне другой фирмы уже невозможно.

Еще один важный момент отличий Siemens от Nokia.
Когда разработчик использует объект Canvas, Siemens предоставляет всю область экрана для отрисовки, пряча комманды в треугольник внизу слева. Nokia же, не предоставляет всю область экрана для Canvas и если вам необходима вся область отрисовки то тогда необходимо вместо javax.microedition.lcdui.Canvas использовать com.nokia.mid.ui.FullCanvas (производный от javax.microedition.lcdui.Canvas), который предоставляет полный экран, но запрещает добавлять комманды. Таким образом если вам нехватает области отрисовки, которую предоставляет Nokia для объектов Canvas вам придется использовать FullCanvas и прощай совместимость.

 

Что же следует ожидать в будущем?
Постепенно стали вырабатываться стандарты, которые будут соблюдать производители телефонных аппаратов.
Соглавованы:
MIDP 2.0 (JSR-118 Final Approval Ballot 04 ноября 2002)
Mobile Media API (JSR-135 Final Release, 27 июня 2002)
Wireless Messaging API (JSR-120 Final Release, 21 августа 2002)
(Таким образом у Nokia и Siemens отпадет необходимость в некоторых собственных пакетах. Таких как com.siemens.mp.game, com.siemens.mp.media.control, com.siemens.mp.media com.nokia.mid.messaging, com.nokia.mid.messaging, com.nokia.mid.ui)
Появился Mobile Games Interoperability Forum, который будет разрабатывать API для игр на мобильных телефонах.
Symbian постепенно становится операционной системой мобильных телефонов. (Symbian телефоны)
 

 

Hosted by uCoz