Международная конференция разработчиков
и пользователей свободного программного обеспечения

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

Владислав Васильев – УП “Витебскоблгаз”, Витебск, Беларусь – vlad@gas.by
Павел Фиалко – НРУПТН “Дружба”, Новополоцк, Беларусь – pavelnf@gmail.com

LVEE 2007

Описывается платформа разработки с открытыми исходными текстами 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 – модели 770 и N800.

Из основных характеристик устройств можно назвать использование процессоров ARM и большое (800×480 пикселей) разрешение экрана. Время работы составляет до 3 часов в активномм режиме и до 7 часов в режиме ожидания. Время работы обоих устройств сильно зависит от количества запущенных программ. Устройства не являются смартфонами и не имеют gsm-модулей. Это принципиальная позиция Nokia. Возможно она связана с боязнью создания конкуренции своим же продуктам на базе ОС Symbian.

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


Рис. 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/

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