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 и другие платформы работающие с наладонными компьютерами.
Ссылки
- Официальный сайт проекта Maemo // http://maemo.org
- Xостинг проектов под платформу Maemo // http://garage.maemo.org
- Maemo SDK // http://maemo.org/development/sdks/
- Особенности Python для Maemo // http://maemo.org/development/documentation/how-tos/3-x/python_maemo_3.x_howto.html
- Maemo debugging guide // http://maemo.org/development/documentation/how-tos/3-x/maemo_debugging_guide.html
- Инструкции по портированию приложений // http://maemo.org/development/documentation/how-tos/3-x/howto_porting_to_maemo_bora.html

