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


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


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

Этот вопрос очень важный для PalmOS, сейчас самые распространенные версии 3.0 – 4.0. Концептуальной разницы в них нет, главное отличие в сервисе операционной системы для приложений. Feature Set – список того, что нового появилось в определенной версии PalmOS. В документации PalmOS (Palm OS Programmer's Companion) есть глава Compatibility Guide – в которой перечисляются новые функции константы и другие вещи которые появились после PalmOS 1.0 .

Приложение должно проверять версию операционной системы, чтобы быть уверенным что необходимый сервис присутствует в данной версии PalmOS. Например, Alarm Manager присутствует не во всех версиях.

Расширения PalmOS

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

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

Например, при вызове DmOpenDatabase (открытие файла) вызывается функция с номером sysTrapDmOpenDatabase в специальной таблице указателей. Этот механизм называется - Palm OS trap dispatch mechanism – т.е. когда вызывается API функция, то на самом деле приложение обращается к обработчику API вызовов (trap dispatch) и просит его вызвать такой-то номер функции (а параметры передаются в стеке). Эту таблицу указателей можно спокойно изменять с целью подмены функций.

Подменить системную функцию может любое приложение (например CyrHack, подменяет ряд функция для русификации PalmOS). Но есть еще специальный вид приложений для PalmOS – это Хаки (от слова hack, а официальное название System Extention). Это приложения, которые подменяют определенные системные функции и делают что-то полезное. Хаки созданы по спецификации HackMaster API, это стандарт который облегчает создание таких приложений, а также делает более безопасным их присутствие в системе.


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