This is an old revision of the document!
Table of Contents
Maemo 5 с точки зрения пользователя
Все, что касается изменений, сразу заметных пользователю: увеличение размера элементов пользовательского интерфейса, отсутствие “несветящихся” элементов (если элемент неактивен - сразу исчезает), удаление фокуса, максимальное число элементов - 10, меню больше не иерархическое, стековое меню и др. http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Porting_Software/Redesigning_From_Maemo_4_to_Maemo_5
Maemo 5 с точки зрения разработчика
Рассматривается интерфейс и модули определения географического положения
Основные компоненты графического интерфейса пользователя
Сюда входят: C library, Xlib, Glib, GDK, GDK, Pango, ATK, GTK+, Hildon. Коротко о них. http://wiki.maemo.org/Legacy_Maemo_5_Documentation/Graphical_UI_Tutorial/Introduction
Hildon - изменения в Maemo5
GTK - изменения в Maemo5
Qt
Пакет qt4-x11
Компиляция Qt приложений
Портирование QT приложений на Maemo5
http://wiki.maemo.org/Qt4Hildon#Overriding_the_Qt_Maemo_changes http://wiki.maemo.org/Packaging_a_Qt_application
Сосуществование Qt и GTK+ на Maemo5
Новые Возможности написания интерфейса, предоставленные появлением Qt
Использование модулей для определения географического положения
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.