Учебное пособие: Разработка приложений для мобильного устройства

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

Заполнение обязательных атрибутов берет на себя программное средство, предназначенное для разработки MIDP приложений (KToolbar из J2MEWTK и Forte for Java CE). Кроме того, это средство предоставляет возможность добавления и редактирования атрибутов.

Мидлет может получить значение любого атрибута с помощью метода мидлета:

getAppProperty(String key)

Ниже приведены некоторые атрибуты, которые могут быть полезны разработчику.

· MIDlet-<n>:<name>,<icon>,<class> -описание n-ого мидлета в наборе. Здесь name – имя мидлета, icon – «иконка» (файл в формате PNG), class – файл класса, расширяющего (extends) класс MIDlet (фактически тот класс, который будет «исполняться»). При открытии на приборе набора мидлетов, на экране высвечивается список мидлетов в нем, в котором представлены имена мидлетов с соответствующими иконками.

Пример: MIDlet-1: worm,/liqWorm/worm.png,liqWorm.worm

· MIDlet-Version:<version> -версия набора мидлетов в формате xx.yy.zz.

Пример: MIDlet-Version: 0.1.0

· MIDlet-Info-URL:<URL> -URL, по которому можно найти информацию о наборе мидлетов.

Пример: MIDlet-Info-URL: [email protected]

· MIDlet-Description:<description> -описание набора мидлетов.

Пример: MIDlet-Description: My first MIDlet!

· MIDlet-Vendor:<vendor> -информация о разработчике мидлета.

Пример: MIDlet-Vendor: xDimas

Необходимо отметить, что способы установки набора мидлетов на прибор, для которого тот предназначен, не оговаривается в рамках стандарта J2ME.

Для создания и тестирования мидлетов необходимо сказать последнюю версию J 2 ME _ wireless _ toolkit с сайта разработчика: http :// java . sun . com / j 2 me / index . jsp

2. Основы создания мидлетов

Необходимо отметить, что MIDP является не просто урезанным вариантом J2SE (Java2 Standard Edition). Здесь появляются свои особенности, продиктованные особенностями устройств, для которых мидлеты предназначены.

Класс, который будет являться мидлетом, должен расширять (extends) класс MIDlet (аналогично классу Applet при разработке аплетов). Этот класс должен иметь конструктор без параметров. Класс MIDlet имеет методы, предназначенные для управления жизненным циклом мидлета. Так для того, чтобы сообщить виртуальной машине (ВМ) о том, что мидлет завершается (фактически завершает выполнение мидлета) используется метод: notifyDestroyed(), а чтобы сообщить мидлету о том, что он будет завершен, ВМ вызывает метод: destroyApp(bolean uconditional).

Мидлет, в отличие от аплета, может находится в состоянии паузы (paused - например, когда дисплей занят каким-нибудь сообщением и т.п.). Чтобы сообщить мидлету о том, что он переходит в состояние паузы, ВМ вызывает метод мидлета: pauseApp(), а чтобы войти в состояние паузы, мидлет использует метод: notifyPaused().

Когда мидлет входит в активное состояние (выход из паузы и начало работы мидлета), вызывается его метод: startApp().

Важно помнить, что этот метод может вызываться несколько раз за время выполнения мидлета.

Класс, расширяющий MIDlet может объявлять (implements) различные интерфейсы, например интерфейс Runnable .

Для взаимодействия с пользователем в MIDP присутствуют классы Display и Displayable (точнее его наследники).

Объект класса Display создается ВМ и за все время работы мидлета для него присутствует только один объект этого класса. Получить его можно при помощи статического метода:

static Display Dispaly.getDisplay(MIDlet m)

Объект класса Display оперирует с объектами класса Displayable. Объекты класса Displayable предназначены непосредственно для взаимодействия с пользователем (т.е. для вывода на экран, обработки нажатий клавиш и т.п.). Для работы с этими объектами в классе Displayесть два метода:

void setCurrent(Displayable d)

Displayable getCurrent()

К-во Просмотров: 519
Бесплатно скачать Учебное пособие: Разработка приложений для мобильного устройства