— размер экрана примерно (как минимум) 96x54 пикселей;
— глубина экрана 1 бит;
— клавиатура для работы одной или двумя руками, устройство ввода с сенсорного экрана;
— 128 Кб энергонезависимой памяти для MIDP-компонентов;
— 8 Кб энергонезависимой памяти для данных постоянного хранения;
— 32 Кб энергозависимой оперативной памяти для области динамической памяти Jra;
— двусторонняя беспроводная связь.
Поскольку диапазон возможностей MID столь широк, MIDP устанавливает рабочую величину минимального общего знаменателя возможностей устройств. MIDP поэтому определяет следующие API:
— приложения (семантика и управление приложениями MIDP);
— пользовательский интерфейс;
— постоянное хранение;
— организация сетей; таймеры.
В таблице 1.5. перечислены пакеты, которые содержит MIDP.
Таблица 1.5. Пакеты MIDP
Название пакета MIDP — Описание
javax.microedition.Icdui — Классы и интерфейсы интерфейса пользователя
javax.microedition.rms — Система организации ведения записей (Record management system, RMS], поддерживающая постоянное хранение устройства
javax.microedition.midlet — Типы классов поддержки определения приложений МЮР
javax.microedition.io — Классы и интерфейсы структуры общих соединений МЮР
java.io — Классы и интерфейсы стандартного ввода/ вывода Java
Java.lang — Классы и интерфейсы виртуальной Java машины
Java.util — Классы и интерфейсы стандартных утилит
Вы узнаете больше о деталях программирования API, перечисленных в таблице 1.5, в главах 3–9.
Реализация MIDP должна состоять из пакетов и классов, указанных в спецификации MIDP. Кроме того, она может иметь зависимые от реализации классы для доступа программного и аппаратного обеспечения родной системы.
На рисунке 1.3 сопоставляются структуры данных платформ CDC и CLDC. Как в CDC, так и в CLDC нет ничего такого, что препятствует производителю подключать любую из платформ к данному семейству устройств. Тем не менее, структуры платформ — особенно свойства конфигураций и профилей — были определены для работы с практическими ограничениями различных семейств аппаратных устройств.
Название пакета МIDР — Описание
javax.microedition.midlet — Типы классов поддержки определения приложений МЮР
javax.microedition.io — Классы и интерфейсы структуры общих соединений МЮР
java.io — Классы и интерфейсы стандартного ввода/ вывода Java
Java.lang — Классы и интерфейсы виртуальной Java машины
Java.util — Классы и интерфейсы стандартных утилит
Рисунок 1.3. CDC предназначена для стационарных устройств с фиксированным соединением и общим доступом. CLDC предназначена для персональных мобильных устройств с ограниченным соединением
Все приложения J2ME — MID-леты и другие — являются настоящими приложениями Java, которые запускаются под контролем Java VM. Но что контролирует Java VM, например, на мобильном телефоне? Не существует командного процессора, с которого вы можете активизировать ваши любимые приложения Java, как вы можете сделать на рабочей станции. Запуск, остановка и управление приложениями Java контролируется программами управления приложениями {application management software, AMS), которые находятся на этом устройстве. В действительности AMS контролирует весь жизненный цикл приложения от установки, обновления и управления версиями до удаления программного обеспечения.
Производители устройств обычно предоставляют программное обеспечение AMS. Это самый логичный сценарий, потому что программное обеспечение AMS должно работать вместе с программным обеспечением родной системы устройства, которую, по всей видимости, производитель знает лучше всего. Тем не менее, производители комплектующего оборудования также могут разрабатывать системы AMS для определенных устройств. Программное обеспечение AMS может быть написано, например, в Java или некоторых других машинных языках, таких, как С. Понимание вопросов, связанных с управлением приложениями, важно для разработчика на J2ME. Управление приложениями описывается в главе 10. Вы должны знать о последствиях вашего выбора в отношении упаковки, лицензирования, загрузки для использования и так далее, и как эти решения повлияют на удобство, простоту использования и жизнеспособность вашего программного обеспечения.
Платформа J2ME предназначена для двух классов портативных компьютерных устройств. Первый класс состоит из стационарных устройств с фиксированными сетевыми соединениями, таких, как компьютерные приставки к телевизору. Второй класс состоит из персональных мобильных устройств с нестационарной сетевой связью, таких, как «карманные» компьютеры, мобильные телефоны и так далее.
Различные комбинации конфигураций и профилей J2ME поддерживают эти классы устройств. Конфигурация CDC и профиль Foundation поддерживают первый класс устройств, а конфигурация CLDC и профиль MIDP поддерживают второй класс. Конфигурация стремится предоставлять интерфейсы для служб системного уровня. Профиль стремится предоставлять стандартные интерфейсы для служб уровня приложений. Конфигурация дает возможность работы профиля, предоставляя необходимые средства и механизмы. Устройства должны иметь некую систему управления приложениями (AMS), чтобы «самозапустить» процесс инициализации приложений J2ME на устройствах. Производитель устройства обычно предоставляет AMS.
Глава 2. Процесс разработки приложений MIDP
Как вы уже знаете, приложения J2ME являются программами Java и исполняются под управлением виртуальной машины Java. По этой причине все устройства с J2ME должны поддерживать среду исполнения Java. Приложения MIDP, как и любые другие приложения, проходят цикл разработки. В этой главе рассказывается о цикле и процессе разработки МID-приложений.
Не имеющие соединения устройства, такие, как мобильные телефоны, обычно не имеют встроенной в них среды разработки. Не имея среды разработки на самом устройстве, разработчики вынуждены делать межплатформенную разработку — разрабатывать приложение на другой системе, загружать его на устройство и затем тестировать его там. То, что приходится постоянно загружать приложение в процессе разработки на устройство для того, чтобы протестировать его, делает процессы разработки и тестирования трудоемкими и утомительными. Эмуляторы представляют альтернативный вариант. Они имитируют среду исполнения устройства и позволяют вам выполнять полный цикл разработки на другой системе. Эмуляторы предоставляют среду, которая поддерживает редактирование, компиляцию, выполнение и отладку. Такая среда является более благоприятной, поскольку она позволяет вам избегать периодически повторяющихся циклов загрузки и установки на устройство. Она также позволяет вам избегать проблемы наполненных ошибками программ, разрушающих ваше мобильное устройство.
Различные производители мобильных устройств и разработчики комплектующего оборудования предлагают эмуляторы, которые запускаются на стандартных настольных операционных системах. Отдел «Java Software» компании «Sun Microsystems», например, предлагает инструментарий J2ME Wireless Toolkit (J2MEWTK), который запускается на платформах Windows и Unix. Он содержит эмулятор, компилятор, виртуальную машину, библиотеки классов и другие полезные инструменты разработки. Вы можете загрузить его бесплатно с сайта http://java.sun.com.