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.

Определение географического положения в Navit.