Средства разработки приложений


Операционная система PalmOS для программиста - часть 9


Иногда операционная система вызывает приложение с целью “сообщить” что-то важное или “узнать” что-то от приложения (например, при рестарте КПК или синхронизации или в случае глобального поиска), в этом случает приложение обрабатывает событие и возвращает управление.

на рисунке показано схема работы приложения.

Вначале приложение создает главную форму (FrmGotoForm). Затем в бесконечном цикле приложение ожидает события (EvtGetEvent) от пользователя или системы. Если происходит событие, приложение определяет кому оно предназначено, например если событие произошло на форме (окно) приложения - вызвать обработчик FormEvtHandler. При закрытии приложения поступает событие – AppStopEvent.

!!! расказать подробнее

За событийную модель в PalmOS отвечает модуль EventManager.

Управление Питанием

Операционная система PalmOS автоматически управляет питанием компьютера. Например, по истечении одной минуты бездействия, КПК выключается; если приложение не выполняет никакой работы, то процессор приостанавливает свою работу. Для приложений это прозрачно. Существует 3 состояния, в которых может находиться устройство:

Doze mode – Режим бездействия, Дисплей включен, приложение активно, но оно ничего не выполняет. Процессор готов к работе, но не выполняет инструкций (halted). Это состояние активируется после вызова функции EvtGetEvent. (это случается когда пользователь не прикасается стилусом к экрану, и не нажимает кнопки)

Sleep mode – Режим “сна”. Активируется, если Doze mode по времени продолжается дольше установленного тайм-аута (обычно одна минута). Выключаются: Дисплей, дигитайзер (сенсоры экрана), главные часы, работает только контролер прерываний. Все устройства КПК переводятся на режим экономии питания, система ждет событий от кнопок либо от часов реального времени.

Running mode – Режим активной работы, Дисплей включен, приложение активно, процессор выполняет инструкции. Все устройства готовы к работе либо работают. Обычно это происходит если функция EvtGetEvent возвращает какое-то событие и приложение его обрабатывает. (например, пользователь работает стилусом, жмет на кнопки, или приложение выполняет работу)




Начало  Назад  Вперед



Книжный магазин