This is an old revision of the document!
Table of Contents
Maemo 5 с точки зрения пользователя
Maemo 5 с точки зрения разработчика
Создание приложений с интерфейсом
Особенности архитектуры пользовательского интерфейса в Maemo5
Создание приложений с интерфейсом и возможность поддержки интерфейсов, написанных для Maemo4.
Оценка интерфейса Navit на совместимость с Maemo5
Новые Возможности написания интерфейса, предоставленные появлением Qt
Qt
Пакет qt4-x11
Компиляция Qt приложений
Портирование QT приложений на Maemo5
Сосуществование Qt и GTK+ на Maemo5
Использование модулей для определения географического положения
Location framework в MAEMO4: liblocation
Liblocation — библиотека, состоящая из нескольких модулей и предоставляющая разработчику приложений для Maemo средства определения географического положения. Liblocation включает в себя модули: LocationGPSDevice, LocationGPSDControl, location-distance-utils, location-misc. Модуль LocationGPSDevice содержит набор типов данных и функций, позволяющих принимать информацию от демона местоположения (например, GYPSY), который в свою очередь взаимодействует с GPS устройством. Модуль LocationGPSDControl определяет объект, который позволяет управлять соединением с демоном местоположения. В модуле определены функции, информирующие демона об открытии или закрытии соединения с ним. Демон положения взаимодействует с устройством до тех пор, пока хотя бы одно приложение поддерживает с этим демоном соединение. Модуль location-distance-utils предоставляет разработчику средство определения расстояния между двумя точками на поверхности Земли. Модуль location-misc содержит набор дополнительных функций для работы с liblocation. На данный момент определяет одну функцию, которая осталась для совместимости и не рекомендуется для использования при разработке новых программ.
Liblocation в Maemo 4.x (Diablo) и в Maemo 5.0 (Fremantle)
Maemo Diablo включает liblocation версии 0.30. Реализации версий liblocation до 0.30 были основаны на взаимодействии с демоном местоположения GPSD. Следующая версия liblocation 0.90 основана на GYPSY и D-Bus. Maemo Fremantle включает версию liblocation 0.99, основанную также на GYPSY и D-Bus.
Location framework в MAEMO5: gypsy vs gpsd
Maemo Diablo для работы с GPS устройствами использовало демон GPSD. Maemo Fremantle вместо GPSD использует GYPSY. GYPSY был написан, чтобы исправить проколы, обнаруженные в GPSD. Одним и з проколов была проблема выделения памяти (allocating memory). Разработчики GPSD категорически не рекомендовали использовать функции malloc/free ((http://gpsd.berlios.de/hacking.html#malloc). Кроме того, в GPSD клиенту необходимо открывать сокет для взаимодействия с сервером GPSD. Обмен информацией достаточно сложный. В GYPSY взаимодействие основано на использовании мощной сигнальной системы D-Bus. Существует ряд других причин, по которым предпочтительнее использовать GYPSY, а не GPSD.
Библиотеки нижнего уровня для определения геграфического положения в Maemo
Библиотеки ниженего уровня в Maemo 4.x (Diablo)
К библиотекам нижнего уровня для определения положения в Maemo Diablo относятся библиотеки: libgpsbt, libgpsmgr, gpsd daemon.
Библиотеки нижнего уровня в Maemo 5.0 (Fremantle)
Вместо библиотек нижнего уровня в Maemo Diablo предполагается использование liblocation и обращение к демонам, например к GYPSY.