Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Карманные ПК, Операционная система PalmOS

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

      Для программистов на Win Api можно сказать проще: - для Палм
      приложения нужно создавать файл ресурсов со всеми диалогами,
      картинками и строками . Этот файл имеет почти такой-де синтаксис как и
      для WinApi. при создании PRC файла ресурсы линкуются в него.



Форма
Обычно Палм приложение содержит несколько Форм и одно Меню, форма может
занимать только часть экрана (т.е. диалог), двигать формы стилусом нельзя.
Интерфейс в Палм модальный, т.е. активна может быть только одна форма, для
переключения м/д форм нужно делать FrmGotoForm или FrmPopupForm.

      не модальность бессмысленна на маленьком экране, вносит осложнения для
      пользователя и требует больших усилий со стороны ОС, следовательно и
      большего количества кода.


События которые происходят на форме (нажатие кнопки, ввод буквы, команда
меню выделение строки списка) приходят в процедуру – обработчик сообщений
формы ( FormEvtHandler рис) c параметром event –  структура с информацией о
событии.
event->eType – тип события:
|ctlSelectEvent          |Нажали на кнопку           |
|                        |event->data.ctlEnter.contro|
|                        |lID – номер кнопки         |
|MenuEvent               |Команда из меню            |
|                        |event->data.menu.itemID –  |
|                        |номер команды меню         |
|FrmCloseEvent           |Форма закрывается          |
|FrmOpenEvent            |                           |
|PopSelectEvent          |Выбрали строку в           |
|LstSelectEvent          |Выбрали строку в списке    |
|                        |                           |
|                        |                           |
|                        |                           |



Меню
Меню а Палм существует для того чтобы снять нагрузку с Формы и убрать все
второстепенные элементы интерфейса в меню. Однако нужно помнить что, для
того чтобы добраться до меню пользователь делает 3 клика стилусом, поэтому
там обычно находятся редко употребляемые команды.

      Command Shortkut – это ускоряет выполнение комманд из меню


Меню создается в файле ресурсов как и формы, а при описании формы можно
указать какое меню использует форма. Каждая строка меню представлена
текстом и командой(номер) которая будет послана приложению
[pic] - для быстрого доступа к командам из меню приложение может
использовать Command Toolbar для того чтобы вставить туда пиктограммы
наиболее частых команд

Ограничения Palm GUI:
1. Для элементов интерфейса отсутствует такое понятие как Disabled.
2. Меню не всегда видно на экране.
3. Отсутствуют: StatusBar,  TAB control, Контекстные меню (нужно делать
   самому),
4. Нет контекстной помощи , подсказок (ToolTips). В PalmOS каждый диалог
   может иметь свой HELP диалог, который открывается поверх старого если
   кликнуть на ?

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

При работе с fields (editBox) приходится сталкиваться с непривычными
моментами, например: многострочному полю можно установить текст по
FldSetTextHandle(filed , Handle) после этого о Handle можно «забыть» т.к.
им управляет сам editBox. Получить его обратно можно по FldGetTextHandle но
чтобы он стал полностью вашим нужно еще сделать FldSetTextHandle(filed ,
NULL). Иначе Handle нельзя удалять. Аналогичная комбинация действий в
Windows выглядит по другому , SetWindowText копирует текст к себе в буфер,
и после этого оригинальный буфер ни как не привязан к editBox‘у – его можно
удалять, а получение текста обратно не накладывает никаких ограничений.
 Подобные тонкости являются частью стратегии управлением памяти, к ним
быстро можно привыкнуть (после WinAPI).

Графика
В PalmOS также существует набор функций для работы с простейшей графикой :
точки, линии, круги, прямоугольники, заливка, инверсия, картинки. Функции
из группы Window Manager  также позволяют следить за состоянием Графики –
устанавливать цвет пера, заливки, текущий шрифт. Для быстрой графики можно
писать прямо в видео буфер.
PalmOS 4.0 поддерживает 1-, 2-, 4- 8 и 16-битовые цвета и оттенки а PalmOS
3.0 – 4 градации серого.

8 Сервис ОС

В этой главе я перечислю некоторые возможности PalmOS которыми пользуются
все приложения.

В начале следует сказать о Системных Менеджерах ( Managers ) это компоненты
ОС которые выполняют различные задачи, например DataBase Manager, Memory
Manager.
Для программиста, менеджер это группа функций относящиеся к нему, первые
2ве-3 буквы имени функции - это абривиатура имени менеджера, например
DmOpen, MmAloc. Если знать все префиксы то удобно читать исходный код
программ .

|Имя Manager                  |Префикс имени функций    |
|Alarm Manager                |Alm                      |
|Time Manager                 |Tim (Date*)              |
|Sound Manager                |Snd                      |
|System Manager               |Sys                      |
|Form Manager                 |Frm                      |
|…                            |                         |

Для более детального изучения Менеджеров обязательно нужно прочитать
соответствующий раздел в «Palm OS® Programmer's Companion vol. 1» (на сайте
palm.com) , документация написано хорошо , также я рекомендую всем
программистам которые перешли на PalmOS с др. системы прочитать 2 главу
«Good Design Practices», это обзор наиболее важных моментов для PalmOS
приложения, эту главу нужно читать несколько раз.
Итак «Good Design Practices» - must read всем программерам под Палм.


1 System Features

Аналог переменных окружения в ДОС (типа PATH, SET значения ),  т.е.
глобальное значение (только 4 байта )которое можно установить и до полного
ресета они будут установлены. В PalmOS есть системные значения типа версии
ОС - sysFtrNumROMVersion, или версии библиотеки

      при написании приложений нужно проверять версию ОС , т.к. программа
      может использовать функции которых нет в старых верисиях.

Устанавливается или считывается Feature с помощью CrID (кто создал этот
фтр). Для получения системных Feature в качестве CrID используется
sysFtrCreator. Этим сервисом удобно пользоваться если необходимо хранить
какие ни будь 2-3 числовых настройки, или если функции доступа к файлам
временно недоступны (например из хаков)

Preferences
Аналог реестра в Windows. Это общий файл для хранения настроек
приложения( PrefGetAppPreferences). так-же Есть системные Preferences - там
хранятся значения типа формата даты, времени ед. измерения
PrefGetPreference(prefTimeFormat )


2 Звук

SoundManager позволяет генерировать простые сигналы, разной частоты и
длительности.
PalmOS, начиная с версии 3.5 поддерживает воспроизведение стандартных MIDI-
звуков.


3 Notifications

Используя Notification Feature Set приложение может получать различные
уведомления о системных событиях. Notifications это те-же launch code.
Уведомления могут получать не только приложения но и библиотеки и хаки (см.
хаки).
вставка/извлечение доп. Модуля, удаление файла, изменение настроек экрана,
сети, времени, подключение/откл. от сети, спячка, ресет, синхронизация.


4 Attentions and alarms

Приложения может поставить «будильник» для себя, когда время подойдет то
Palm сообщит приложению что время пришло, если приложение закрыто то PalmOS
запустит его. Attention Manager может не запускать приложение, а только
показать диалог с  сообщением от этого приложения, и если пользователь
захочет то может отложить это событие на пару минут.

Reset, и Жесткий Reset
Приложение может самостоятельно делать Reset -  это отчистка Dynamic RAM
памяти, проверка целостности Storage RAM , потом дефрагментация памяти ,
Жесткий Reset это обнуление всей памяти (уничтожение всей файловой системы)
и создание файловой системы заново, потом туда копируются приложения.


5 Комуникации

Infra Red, Serial Port, Network – это 3 основных типа коммуникаций в PalmOS
,
InfraRed и SerialPor - приложение может пользоваться инфракрасным портом на
нескольких уровнях – высокий уровень это например - пересылка файлов,
низкий уровень эта работа с портом напрямую.
Network – можно используя TCP/IP протокол работать с интернетом или
локальной сетью, присутствует Berkley Sockets функции. Можно работать в
Асинхроном или Синхроном режимах (неблокируемые вызовы и блокируемые)

9 Совместимость версий

Этот вопрос очень важный для PalmOS, сейчас самые распространенные версии
3.0 – 4.0. Концептуальной разницы в них нет, главное отличие это сревис ОС
для приложений (так называемый Feature Set – наборы сервисов). Palm OS SDK
содержит главу Compatibility Guide – в которой объясняется различие версий.
, Приложение должно проверять версию чтобы быть уверенным что необходимый
сервис присутствует в данной версии Palm OS, и не запускаться в случае
неподдерживаемой версии. Например Alarm Manager присутствует не во всех
версиях.

10 Расширения PalmOS

Как уже ранее говорилось все приложения вызывают функции PalmOS для
выполненеия каких либо действий ( в Windows такой набор функций называется
WinAPI ), например открытие файла, вывод на экран, ввод/вывод. Но PalmOS
так устроена что в ней можно переопределять поведение этих функций.

      в Windows тоже можно подменить любую API функцию, но в PalmOS этот
      механизм упрощен и офиально поддерживается на уровне системы.


Рассмотрим на пример что происходит при открытии файла:
при вызове DmOpenDatabase (открытие файла) вызывается функция с номером
sysTrapDmOpenDatabase в специальной таблице указателей. Этот механизм
называется  - Palm OS trap dispatch mecha
Пред.6789
скачать работу

Карманные ПК, Операционная система PalmOS

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ