LVEE 2007 10

Материал из Linux Vacation/Eastern Europe (LVEE).

Maemo - платформа разработки программ для ОС Internet Tablet

Владислав Васильев УП "Витебскоблгаз" - Витебск, Беларусь

Павел Фиалко - НРУПТН "Дружба" - Новополоцк, Беларусь


В предлагаемом докладе описывается платформа Maemo - платформа разработки с открытыми исходными текстами для интернет-планшетов фирмы Nokia. Освещены следующие вопросы: особенности платформы, история создания и роль компании Nokia в ней; устройства, работающие на платформе Maemo; рассказано о сообществе и людях принимающих участие в продвижении платформы. Также рассмотрены среда и средства разработки платформы, механизмы портирования существующих программ, приведен обзор приложений уже работающих на данной платформе.


что такое Maemo и роль в ней Nokia

Maemo представляет собой платформу разработки с открытыми исходными текстами для интернет-планшетов Nokia и других, основанных на linux устройствах.

Платформа Maemo включают в себя инструменты необходимые для создания и портирования приложений для ОС Internet Tablet. Операционная система Internet Tablet представляет собой модифицированный вариант дистрибутива Debian GNU/Linux. Разработчику, знакомому с технологиями GTK+/GNOME и дистрибутивом Debian, не составит труда разобраться в Maemo.

Компания Nokia всячески способствует развитию платформы и направляет ее развитие. Она первая разработала устройства, использующие эту платформу.На данный момент это интернет-планшеты Nokia 770 и Nokia N800. Корпорация всячески стимулирует подключение новых разработчиков, дизайнеров и активных пользователей к работе над платформой.

какие устройства работают на этой платформе

Как было сказано выше, к настоящему моменту компания Nokia выпустила два устройства работающие на платформе Maemo - это Nokia 770 Nokia и N800.

Из основных характеристик устройств можно назвать использование ARM процессоров и большой 800x480 пикселей размер экрана. Время работы до 3 часов в рабочем режиме и до 7 часов в режиме ожидания.Время работы обоих устройств сильно зависит от количества программ запущенных программ. Надо акцентировать внимание на то, что эти устройства не является smartphone и не имеют gsm-модулей. Это принципиальная позиция Nokia. Возможно она связана с боязнью создания конкуренции своим же продуктам на базе Symbian OS.

Внешний вид интернет-планшетов приведен на рисунках:

[Рисунок 1. Внешний вид интернет-планшета Nokia 770]

[Рисунок 2. Внешний вид интернет-планшета Nokia N800]

сообщество Maemo

Сообщество Maemo очень разнообразно в географическом плане. Есть разработчики из Финляндии, России, Западной Европы, США и из Латинской Америки и по ориентировочным оценкам количество активных разработчиков составляет несколько сотен человек.

На официальном сайте проекта [1] содержится документация, учебные материалы, репозитарий программ для тестирования. Также сайт maemo.org предоставляет услуги для сообщества Maemo, куда входят:

  • каталог программ;
  • хостинг проектов сторонних разработчиков под платформу Maemo [2];
  • электронная энциклопедия wiki;
  • новостной портал Maemo.

Также есть irc канал и ряд форумов.

среда и средства разработки платформы Maemo

На данный момент существует две основные ветки SDK [3] для устройств, работающих на платформе Maemo. Первая ветвь - Maemo 2.2 'gregale' - предназначена для разработки программ для интернет-планшета Nokia 770, работающих под управление IT OS, редакции 2006 года. Вторая ветвь - Maemo 3.1 'bora' - предназначена для разработки программ для интернет-планшета Nokia N800, работающих под управление IT OS, редакции 2007 года, версии 3.2007.10-7.

Обе ветви SDK представляют собой так называемые "rootstrap" - образы корневой файловой системы устройств. Причем для Nokia 770 образ разбит на два архива, первый - пакеты для разработки корневой файловой система (используется только на Nokia 770), второй - набор пакетов для SDK. Для Nokia N800 существуют rootstrap для двух архитектур - i386 и armel.

Обе ветви дополнительно требуют для работы кросс-платформенный набор инструментов Scratchbox R4 или более поздней. Официальный сайт Scratchbox - scratchbox.org.

В качестве средства для построения графического интерфейса пользователя платформа Maemo использует библиотеку GTK+. Основным языком для создания приложений на платформе Maemo является Си. Также возможна разработка программ и на языке Питон. Но разработчикам на Питоне следуют иметь в виду некоторые ограничения, накладываемые платформой Maemo (для подробной информации необходимо обратиться к документации [4]).


Из инструментов отладки приложений на платформе Maemo присутствуют следующие:

  • gdb - отладчик;
  • strace - трассировщик системных вызовов;
  • valgrind - отладчик и профилер, работает только для архитектуры x86 и только внутри Scratchbox.

Дополнительная информация по применению инструментов отладки содержится в "maemo debugging guide" [5].

возможность портирования

При портирование приложений на платформу Maemo существуют некоторые ограничения.

В основном все ограничения по портированию приложений касаются интерфейса пользователя и используемых библиотек. Этапы процесса портирования сильно зависят от портируемого приложения, от тех библиотек и функций которые используются в нем. Однако общий алгоритм портирования можно описать так:

  • удалить или заменить все не поддерживаемые платформой библиотеки;
  • исправить или переписать все функции использующие удаленные библиотеки;
  • модифицировать интерфейс пользователя с учетом требований платформы, например,
    • разрешение экрана не должно превышать 800х480 точек;
    • исправить структуру дерева файлов портируемой программы;
    • внести изменения или создать файлы отвечающие, за формирование пакета Debian, руководство по созданию пакетов можно найти по адресу http://packages.debian.org/

Пример портирования приложения и инструкции по портированию приведен в [6].

краткий обзор программ, работающих под платформой Maemo

Все приложения уже работающих под рассматриваемой платформой можно квалифицировать по следующим критериям:;

  • Идущие в стандартной поставке;
  • Приложения сторонних разработчиков;
  • Портированные приложения;
  • Приложения специально написанные под Maemo и другие платформы работающие с наладонными компьютерами.

Ссылки

  1. Официальный сайт проекта Maemo // http://maemo.org
  2. Xостинг проектов под платформу Maemo // http://garage.maemo.org
  3. Maemo SDK // http://maemo.org/development/sdks/
  4. Особенности Python для Maemo // http://maemo.org/development/documentation/how-tos/3-x/python_maemo_3.x_howto.html
  5. Maemo debugging guide // http://maemo.org/development/documentation/how-tos/3-x/maemo_debugging_guide.html
  6. Инструкции по портированию приложений // http://maemo.org/development/documentation/how-tos/3-x/howto_porting_to_maemo_bora.html
Личные инструменты