etc:common_activities:maemo:maemo4_maemo5
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
etc:common_activities:maemo:maemo4_maemo5 [2009/10/30 18:23] – ivan_bezyazychnyy | etc:common_activities:maemo:maemo4_maemo5 [2009/11/17 19:55] (current) – regina | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Различия между Maemo 4 и 5 ====== | ||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
====== Maemo 5 с точки зрения пользователя ====== | ====== Maemo 5 с точки зрения пользователя ====== | ||
- | Все, что касается изменений, сразу | + | Изменения в Maemo 5 связаны |
- | http:// | + | Изменения на примере почтового клиента: |
+ | http:// | ||
+ | |||
====== Maemo 5 с точки зрения разработчика ====== | ====== Maemo 5 с точки зрения разработчика ====== | ||
+ | |||
+ | {{etc: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Рассматривается интерфейс и модули определения географического положения | Рассматривается интерфейс и модули определения географического положения | ||
+ | |||
+ | |||
+ | |||
+ | |||
===== Основные компоненты графического интерфейса пользователя ===== | ===== Основные компоненты графического интерфейса пользователя ===== | ||
- | Сюда входят: | ||
- | http:// | ||
- | ==== Hildon | + | The Fremantle UI Framework consists of the Clutter OpenGL-based canvas library, OpenGL drivers for the PowerVR SGX chip, Matchbox Window Manager 1 (for startup sequence) and Matchbox Window Manager 2 library, |
- | На основе таблицы | + | |
- | http:// | + | |
- | ==== GTK - изменения в Maemo5 ==== | + | Основные подсистемы пользовательского интерфейса: |
+ | |||
+ | hildon-desktop - | ||
+ | |||
+ | hildon-home - | ||
+ | |||
+ | hildon-status-menu - X clipboard selection management | ||
+ | |||
+ | Hildon Input Method - Localized text input UI | ||
+ | |||
+ | Control Panel | ||
+ | |||
+ | Startup Wizard | ||
+ | |||
+ | Startup scripts | ||
+ | |||
+ | RFS and CUD framework - Reset factory settings and clear user data | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Hildon - изменения в Maemo5 ===== | ||
+ | Navigation architecture | ||
+ | |||
+ | {{etc: | ||
+ | |||
+ | Task launcher - меню, с помощью которого пользователь может получить доступ к запуску нового приложения или выдвинуть запущенное приложение на вершину. | ||
+ | Task switcher - это вид для переключения между запущенными приложениями. | ||
+ | |||
+ | Вид рабочего стола при отображении окна приложений: | ||
+ | |||
+ | {{etc: | ||
+ | |||
+ | A-Кнопка переключения задач. Нажатие на нее приводит к переходу приложения в фоновый режим и отображению доступных для выбора других запущенных приложений. | ||
+ | B- Кнопка статуса области. Предоставляет информацию о статусе устройства или приложения. | ||
+ | C- Кнопка для закрытия приложений. При этом, если текущее окно приложения является подвидом, | ||
+ | D- Название области. Показывает идентификатор текущей задачи, | ||
+ | F- Область приложения. | ||
+ | |||
+ | При работе приложения в полноэкранном режиме используется только область приложения. Если приложение имеет панель виджетов, | ||
+ | |||
+ | |||
+ | |||
+ | Анализ на основе таблицы | ||
+ | [[http:// | ||
+ | http:// | ||
+ | |||
+ | ===== GTK - изменения в Maemo5 | ||
На основе таблицы http:// | На основе таблицы http:// | ||
+ | |||
+ | |||
+ | |||
===== Qt ===== | ===== Qt ===== | ||
+ | |||
+ | |||
+ | Основные особенности выпущенной версии Qt для N900 (Maemo 5): | ||
+ | |||
+ | * Полная интеграция внешнего вида и поведения приложений в окружении Maemo, при помощи специально подготовленного стиля " | ||
+ | |||
+ | * Поддержка аппаратной акселерации выполнения графических операций, | ||
+ | |||
+ | * Поддержка методов ввода через экранную клавиатуру и встроенную миниатюрную физическую клавиатуру; | ||
+ | |||
+ | * Интеграция с глобальным меню, класс QMenuBar связан с глобальным меню Maemo; | ||
+ | |||
+ | * Поддержка режимов Online/ | ||
+ | |||
+ | * Поддержка стандартных диалогов интерфейса Maemo (например, | ||
+ | |||
+ | * Поддержка виджетов Maemo; | ||
+ | |||
+ | * Возможность вывода мультимедиа данных через Phonon. | ||
+ | |||
+ | |||
+ | |||
+ | {{etc: | ||
+ | |||
+ | |||
http:// | http:// | ||
+ | |||
+ | |||
+ | http:// | ||
+ | |||
==== Пакет qt4-x11 ==== | ==== Пакет qt4-x11 ==== | ||
| | ||
Line 40: | Line 141: | ||
Модуль location-misc содержит набор дополнительных функций для работы с liblocation. На данный момент определяет одну функцию, | Модуль location-misc содержит набор дополнительных функций для работы с liblocation. На данный момент определяет одну функцию, | ||
Maemo Diablo включает liblocation версии 0.30. Реализации версий liblocation до 0.30 были основаны на взаимодействии с демоном местоположения GPSD. Следующая версия liblocation 0.90 основана на GYPSY и D-Bus. | Maemo Diablo включает liblocation версии 0.30. Реализации версий liblocation до 0.30 были основаны на взаимодействии с демоном местоположения GPSD. Следующая версия liblocation 0.90 основана на GYPSY и D-Bus. | ||
+ | |||
==== Location framework в MAEMO5: gypsy vs gpsd ==== | ==== Location framework в MAEMO5: gypsy vs gpsd ==== | ||
Maemo Diablo для работы с GPS устройствами использовало демон GPSD. Maemo Fremantle содержит liblication версии 0.99, которая вместо GPSD использует GYPSY. | Maemo Diablo для работы с GPS устройствами использовало демон GPSD. Maemo Fremantle содержит liblication версии 0.99, которая вместо GPSD использует GYPSY. | ||
- | GYPSY был написан, | + | GYPSY был написан, |
Кроме того, в GPSD клиенту необходимо открывать сокет для взаимодействия с сервером GPSD. Обмен информацией достаточно сложный. В GYPSY взаимодействие основано на использовании мощной сигнальной системы D-Bus. | Кроме того, в GPSD клиенту необходимо открывать сокет для взаимодействия с сервером GPSD. Обмен информацией достаточно сложный. В GYPSY взаимодействие основано на использовании мощной сигнальной системы D-Bus. | ||
Существует ряд других причин, | Существует ряд других причин, | ||
- | ==== Пример работы с liblocation | + | |
- | Ниже приведен пример работы с liblocation в Maemo 5, который был взят с сайта maemo. | + | |
+ | |||
+ | |||
+ | |||
+ | ==== Location framework в MAEMO5: liblocation, | ||
+ | Location framework в Maemo5 включает в себя компоненты liblocation, | ||
+ | |||
+ | |||
+ | ==== Библиотеки нижнего уровня для определения геграфического положения в Maemo4 ==== | ||
+ | |||
+ | К библиотекам нижнего уровня для определения положения в Maemo Diablo относятся библиотеки: | ||
+ | === GPS BT (libgpsbt) === | ||
+ | Application that needs GPS data can use this API to manage GPS daemon start and stop and to find out what serial port device (/ | ||
+ | |||
+ | === GPS Manager (libgpsmgr) === | ||
+ | Application that needs GPS data can use this API to manage GPS daemon start and stop. This is needed in small handhelds where it is not good to have gpsd running all the time (because of battery and memory constraints) and to guarantee that only one gpsd process is running simultaneously even if multiple processes need the GPS data. | ||
+ | The idea of the API is to allow multiple applications to use gpsd services but only when there is at least one application that needs GPS data. If no application is running, the gpsd is not started at all or gpsd stops itself automatically (to save memory and battery life). | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Библиотеки нижнего уровня в Maemo 5.0 (Fremantle) ==== | ||
+ | В MAEMO5 отсутствуют библиотеки нижнего уровня libgbsbt, libgpsmgr, gpsd daemon. Вместо этих библиотек в MAEMO5 предполагается использование liblocation либо API для обращения к gypsy daemon и к location daemon. | ||
+ | |||
+ | === Gypsy daemon === | ||
+ | |||
+ | Gypsy — это многоканальный GPS демон, обеспечивающий нескольким клиентам доступ к GPS информации, | ||
+ | |||
+ | {{etc: | ||
+ | |||
+ | Методы и сигналы клиентов Gypsy разделены на следующий интерфейсы: | ||
+ | * Gypsy.Server: | ||
+ | * Gypsy.Device: | ||
+ | * Gypsy.Postion: | ||
+ | * Gypsy.Course: | ||
+ | * Gypsy.Accuracy: | ||
+ | * Gypsy.Satellite: | ||
+ | Gypsy разделяет эти интерфейсы и не использует один большой для того, чтобы клиенты клиенты могли слушать только те сигналы, | ||
+ | |||
+ | Для взаимодействия с Gypsy демоном Gypsy содержит библиотеку libgypsy на языке С, основанную на Gobject и являющуюся оболочкой D-Bus API, библиотека упрощает написание клиентов Gypsy демона. В тоже время для написания клиентов можно использовать любой другой язык, имеющий поддержку D-Bus. | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | === Location daemon === | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Liblocation ==== | ||
+ | |||
+ | Liblocation — библиотека, | ||
+ | В Maemo5 liblocation основана на взаимодействии с Gypsy демоном с помощью D-Bus. Существует два способа взаимодействия с Gypsy демоном — это использование библиотеки libgypsy и прямое взаимодействие с демоном с помощью API D-Bus. Библиотека liblocation предлагает третий способ, | ||
+ | |||
+ | === Модули liblocation === | ||
+ | |||
+ | Для использования библиотеки liblocation необходимо включить в программу два заголовочный файла: | ||
+ | |||
+ | < | ||
+ | #include < | ||
+ | #include < | ||
+ | </ | ||
+ | |||
+ | === Объект LocationGPSDControl === | ||
+ | |||
+ | LocationGPSDControl — объект типа GObject, позволяющий запускать и останавливать различные сервисы, | ||
+ | |||
+ | Для создания объекта в библиотеке определена | ||
+ | < | ||
+ | LocationGPSDControl *control = location_gpsd_control_get_default(); | ||
+ | </ | ||
+ | |||
+ | Для работы с объектом в библиотеке определены функции: | ||
+ | * location_gpsd_control_start () : Starts an active connection to Location server. In other words, by calling this function the application informs that it wants to use the location service. | ||
+ | * location_gpsd_control_stop () : Informs the location framework that the application is no longer interested about the current location. Location service is kept running as long as there is at least one application using it. Please note that LocationGPSDevice still sends data as long as the location framework is running. | ||
+ | |||
+ | Объект обладает следующими свойствами: | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | Объект может принимать следующие сигналы: | ||
+ | * Сигнал " | ||
+ | * Сигнал " | ||
+ | * Сигнал " | ||
+ | * Сигнал " | ||
+ | |||
+ | Более подробно в [[http:// | ||
+ | |||
+ | === Методы определения географического положения === | ||
+ | * LOCATION_METHOD_USER_SELECTED: | ||
+ | * LOCATION_METHOD_CWP - Complementary Wireless Positioning: | ||
+ | * LOCATION_METHOD_ACWP - Assisted Complementary Wireless Positioning: | ||
+ | * LOCATION_METHOD_GNSS - Global Navigation Satellite System: Метод использует GPS приемник. Как правило время первого определения положения значительно дольше, | ||
+ | * LOCATION_METHOD_AGNSS - Assisted Global Navigation Satellite System Метод использует GPS приемник с вспомогательной информацией от внешнего сервера географического положения. Для данного метода необходимы SIM карта и сотовая сеть. Если сотовая сеть или SIM карта недоступны, | ||
+ | Пример выбора метода: | ||
+ | < | ||
+ | g_object_set(G_OBJECT(control), | ||
+ | </ | ||
+ | |||
+ | === Интервалы определения географического положения === | ||
+ | Интервал между последующими определениями координат может равняться 1, 2, 5, 10, 20, 30, 60 и 120 секундам. В реальности интервал может значительно отличаться для обеспечения производительности и в целях экономии энергии, | ||
+ | Пример задания интервала: | ||
+ | < | ||
+ | g_object_set(G_OBJECT(control), | ||
+ | </ | ||
+ | |||
+ | === Объект LocationGPSDevice === | ||
+ | |||
+ | LocaionGPSDevice — объект типа GObject, содержащий информацию о состоянии устройства и о текущем местоположении, | ||
+ | |||
+ | Объект может принимать сигнал «changed», | ||
+ | |||
+ | Более подробно в [[http:// | ||
+ | |||
+ | === Пример работы с liblocation в Maemo. | ||
+ | Ниже приведен пример работы с liblocation в Maemo 5, который был взят с сайта maemo (http:// | ||
Here is a complete standalone example using liblocation. It starts location services after program is started, then when first fix arrives, prints it, stops services, and shutdowns. | Here is a complete standalone example using liblocation. It starts location services after program is started, then when first fix arrives, prints it, stops services, and shutdowns. | ||
Line 124: | Line 352: | ||
gcc -Wall `pkg-config --cflags glib-2.0, liblocation --libs glib-2.0, liblocation` -o test test.c | gcc -Wall `pkg-config --cflags glib-2.0, liblocation --libs glib-2.0, liblocation` -o test test.c | ||
</ | </ | ||
- | |||
- | ==== Библиотеки нижнего уровня для определения геграфического положения в Maemo4 ==== | ||
- | |||
- | К библиотекам нижнего уровня для определения положения в Maemo Diablo относятся библиотеки: | ||
- | === GPS BT (libgpsbt) === | ||
- | Application that needs GPS data can use this API to manage GPS daemon start and stop and to find out what serial port device (/ | ||
- | |||
- | === GPS Manager (libgpsmgr) === | ||
- | Application that needs GPS data can use this API to manage GPS daemon start and stop. This is needed in small handhelds where it is not good to have gpsd running all the time (because of battery and memory constraints) and to guarantee that only one gpsd process is running simultaneously even if multiple processes need the GPS data. | ||
- | The idea of the API is to allow multiple applications to use gpsd services but only when there is at least one application that needs GPS data. If no application is running, the gpsd is not started at all or gpsd stops itself automatically (to save memory and battery life). | ||
- | |||
- | ==== Библиотеки нижнего уровня в Maemo 5.0 (Fremantle) ==== | ||
- | В MAEMO5 отсутствуют библиотеки нижнего уровня libgbsbt, libgpsmgr, gpsd daemon.Вместо этих библиотек в MAEMO5 предполагается использование liblocation либо API для обращения к демонам, | ||
- | |||
- | === GYPSY === | ||
- | |||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | |||
- |
etc/common_activities/maemo/maemo4_maemo5.txt · Last modified: 2009/11/17 19:55 by regina