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