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)
| |
|