Програмування під maemo і meego для початківців, meego

У даній статті буде дано введення в розробку додатків для платформ Maemo і MeeGo. Починаючи з самих азів, установки і настройки допоміжного програмного забезпечення, і закінчуючи налагодженням і розгортанням додатка. Ми створимо просте додаток, що виконує основні операції над числами (калькулятор), дане прикладена досить просте і має безліч способів реалізації, а ми розглянемо приклад нестандартного рішення представлений в книзі [7].

Maemo - базується на Debian Linux платформа для портативних пристроїв. Використовується в інтернет-планшетах Nokia 770, Nokia N800, N810 і комунікаторі Nokia N900. В основі Maemo лежать компоненти середовища GNOME, в тому числі графічна бібліотека gtk. Велика частина коду Maemo відкрита, і послужила основою для створення Ubuntu Mobile. Існує безліч програм для платформи Maemo, майже всі вони безкоштовні і вільні. Платформа включає в себе ОС Maemo і Maemo SDK.

Maemo заснована в основному на відкритому коді і розроблена Nokia Maemo Devices у співпраці з багатьма проектами з відкритим кодом, такими як ядро ​​Linux, Debian і GNOME. Maemo заснована на Debian GNU / Linux і отрісовиваєт більшу частину свого графічного інтерфейсу, систем і бібліотек за допомогою GNOME. Він використовує менеджер вікон Matchbox і Hildon в якості графічного інтерфейсу і інструменту додатки.

Інтерфейс в Maemo 4 схожий на багато портативні інтерфейси і функцією «домашнього» екрану, який діє як центральна точка, з якої доступні всі додатки і налаштування. Головний екран розділений на райони запуску додатків, меню, і великий настроюється області, яка відображатиме інформацію, таку як RSS-потік, інтернет-радіо програвач і вікно пошуку Google.

Maemo 5 UI трохи відрізняється: меню і інформаційна область перебувати у верхній частині дисплея, а також чотири настроюються настільних комп'ютерів зі своїми ярликами і віджетами.

MeeGo - незалежна операційна система, яка, однак, використовує напрацювання таких проектів, як Maemo, Moblin, Fedora і Debian.

Починаємо програмувати під Maemo

Перш ніж почати процес, нам необхідно встановити деякий допоміжне програмне забезпечення, а саме сам емулятор і кроссплатформенную середу Scratchbox. Детальний опис установки середовища Scratchbox і Maemo SDK розглянуто на вікі-сторінці [1].

Тепер давайте розглянемо, як запустити емулятор платформи Maemo. Весь процес складається з наступних пунктів.

Запуск емулятора платформи Maemo
  1. Запустити емулятор не під Scratchbox:

$ Xephyr: 2 -host-cursor -screen 800x480x16 -dpi 96 -ac

  • Так як в FREMANTLE_ARMEL емулятор не запускається, необхідно перейти на FREMANTLE_X86, для цього виконуємо наступну команду:

    $ Sb-conf select FREMANTLE_X86

  • Якщо з'являється помилка, необхідно завершити всі попередні процеси командою:

    $ Sb-conf killall -signal = 9

  • Завантажується FREMANTLE_ARMEL, виконуємо наступні команди:
  • Запускається платформа Maemo в емуляторі Xephyr.
  • Створення програми під Maemo

    Створюємо порожній проект для додатка в Qt Creator'е. Весь код додаток розміщується в трьох файлах main.cpp, calculator.cpp і calculator.h, додаємо файли до проекту.

    Запуск проекту на емуляторі

    Запуск програми на емуляторі Xephyr складається з декількох кроків:

    Запущене застосування під платформою Maemo показано на Рис. 1.

    Мал. 1. Maemo калькулятор

    висновок

    Розробка програми для платформи Maemo не відрізняється від розробки для настільних систем, все завдяки крос-платформенности Qt. Вся відмінність полягає в тестуванні, налагодженні і розгортанні додатки, а також використання спеціальних бібліотек. Так як під час розробки програми під рукою може не виявитися реального пристрою, для цих цілей були розроблені спеціальні емулятори та середовища для тестування і розгортання розробляється.

    Починаємо програмувати під MeeGo

    Першим кроком при знайомстві з даною платформою і особливо розробкою для неї необхідно встановити допоміжне програмне забезпечення, а саме Qt 4.7 SDK, Qt Creator, MeeGo Touch Framework (MTF).

    Установка MeeGo Touch 1.0 вручну на Ubuntu 10.04
    1. Для MeeGo Touch необхідний Qt версії 4.7, якщо все ще не встановлено, встановлюємо (скачати: qt.nokia.com/downloads).
    2. Прописати змінні середовища:
    3. $ Export QTDIR = / [path to installed qtsdk] / qt /
    4. $ Export PATH = $ / bin: $
    5. Завантажити та встановити Touch Theme (для запуску додатків на настільній машині):
      1. Клонуємо зі сховища:

      $ Git clone git: gitorious.org/meegotouch/meegotouch-theme.git - Збираємо: $ qmake - Встановлюємо: $ sudo make install - встановити необхідні пакети: $ sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa -dev libxdamage-dev - Завантажити і встановити MeeGo Touch: - клонуємо зі сховища: $ git clone git: gitorious.org/meegotouch/libmeegotouch.git

    6. Конфігуріруем, збираємо і встановлюємо:

      $ ./configure make sudo make install

      Можливі проблеми: При складанні виникли помилки в наступних місцях:

      Процес роботи над розширенням функціоналу та відлов помилок не зупиняється на жодну хвилину, і відповідно в наступних версіях MTF всі помилки будуть виправлені і додані нові :)

      Установка MeeGo Touch 1.1 зі сховищ Ubuntu 10.04
      1. Налаштовуємо менеджер пакетів:
        1. Додати наступну сходинку в /etc/apt/sources.list.d/meego-sdk.list
      2. Додати ключ сховища:

        $ Gpg -keyserver pgpkeys.mit.edu -recv 0BC7BEC479FC1F8A

        $ Gpg -export -armor 0BC7BEC479FC1F8A | sudo apt-key add -

      3. Оновити базу даних менеджера пакетів: $ sudo apt-get update
      4. Щоб перевірити, що MeeGo репозиторій був коректно доданий, запустіть наступну команду. Будуть виведені деталі від пакеті MADDE.

        $ Apt-cache policy madde

    7. Встановити MeeGo SDK:
    8. Встановити MeeGo об'єкт:
      1. Створити MeeGo об'єкт, використовуючи MADDE (об'єкти: ARM (N900): meego-core-armv7l-1.1; Aava: meego-handset-ia32-1.1, meego-netbook-ia32-1.1):
      2. Щоб перевірити, що об'єкти були встановлено коректно, виконайте наступні команди:
      3. Перевіряємо, що додаток qt-simple створений для правильного об'єкта, виконаємо:

    За більш детальною інформацією щодо встановлення MeeGo Touch 1.1 звертаємося до спільного ресурсу [2].

    Запуск Meego-Handset [Netbook] edition на емуляторі Xephyr
    1. Завантажити образ Meego handset edition або netbook edition і разархивируем його:

    Примітка: MeeGo збірки з'являються щодня, їх можна скачати з [6].

  • Завантажити meego-sdk-chroot скрипт:
  • Налаштувати Х для запуску Xephyr:
  • Змонтувати образ MeeGo в директорію і запустити meego-sdk-chroot скрипт:

    Тепер ми перебуваємо в оболонці meego chroot. Зауваження: Для отмонтірованія способу використовуємо команду: $ sudo umount. / [Name_of_mount_directory]

    $ Export DISPLAY =: 0; встановлюємо змінну середовища $ zypper install meego-simulator-launcher-handset; тільки для meego-handset $ startmeego

    При виконанні останньої команди відбудеться запуск оболонки MeeGo-Handset. Виходячи від змонтованого образу (Handset або Netbook) у вас запуститися той чи інший образ.

    MeeGo Handset на Xephyr

    Мал. 2. MeeGo-Handset UI

    MeeGo Netbook на Xephyr

    Мал. 3. MeeGo-Netbook UI

    Давайте запустимо наш раніше розроблений калькулятор для платформи Maemo на MeeGo-Handset і MeeGo-Netbook.

    Запуск калькулятора на MeeGo-Netbook
    1. Запускаємо MeeGo-Netbook на емуляторі, як було показано вище.
    2. Монтуємо директорію з проектом, для цього виконаємо наступні кроки:
    • Створюємо директорію в MeeGo-Handset:

      $ Sudo mkdir [meego_netbook_mount_dir] / home / meego / code

    • Монтуємо директорію з вихідними кодами калькулятора:

      $ Sudo mount -bind [calculator_sources] / [meego_netbook_mount_dir] / home / meego / codeПрімечаніе: Виконуємо дану команду в стандартній командній оболонці (bash).

  • Заходимо в примонтировать директорію і запускаємо калькулятор:

    Примітка: Виконуємо дану команду в командній оболонці meego (meego chroot).

    Запушений калькулятор на MeeGo-Netbook показаний на Рис. 4.

    Мал. 4. MeeGo-Netbook калькулятор

    Тепер давайте запустимо калькулятор на MeeGo-Handset. Для запуску програми необхідно виконати всі ті ж самі кроки, що й для MeeGo-Netbook, але тільки запустити збірку MeeGo-Handset. Запушений калькулятор на MeeGo-Handset показаний на Рис. 5.

    Мал. 5. MeeGo-Handset калькулятор

    Як видно на Рис. 5. калькулятор виглядає не зовсім, так як ми очікували. Давайте розберемося, в чому ж проблема. А проблема в те, що для MeeGo-Handset додатки розробляються за допомогою спеціального набору інструментів, а саме MeeGo Touch Framework (MTF, libmeegotouch). Давайте подивимося, як це робиться.

    Зміна програми для MeeGo-Handset

    MeeGo Touch (libmeegotouch) це інструмент розробки додатків для мобільних пристроїв з сенсорними екранами, заснований на Qt. Він входить до складу MeeGo Platform API. Надає всі необхідні будівельні блоки для створення власних додатків, які слідують MeeGo Handset UX принципам. Інструмент побудований на основі Qt Graphics View Framework.

    В Qt Creator створюємо проект "Empty Project", додаємо файли main.cpp, calculator.cpp і calculator.h калькулятора. У файлі проекту необхідно вказати наступні рядки для встановленого MeeGo Touch (MTF 1.0):

    Після цього ми можемо приступати до зміни програми для використання його на MeeGo.

    Зміни, пов'язані з MTF

    Давайте подивимося на зміни, які торкнулися main.cpp:

    За подробицями звертайтеся до документації по Platfrom API [4].

    Щоб додати віджет Calculator на сторінку програми за допомогою методу setCentralWidget () його необхідно успадкувати від класу QGraphicsWidget. У MTF 1.1 функція установки центрального віджета сторінки setCentralWidget () приймає в якості встановлюваного компонента MWidget.

    Це в основному головні зміни, які торкнулися додатки при перенесенні на MeeGo-Handset. Є деякі зміни пов'язані з відображенням результату обчислень за допомогою QLCDNumber, т.к даного класу в MTF 1.0 не виявилося, довелося його замінити на MTextEdit.

    Результат змін представлений на Рис. 6.

    Мал. 6. MeeGo-Handset калькулятор

    Як видно з представлених змін, перенесення додатка для MeeGo-Handset не складає особливих труднощів. Згодом MTF буде тільки набирати функціональність і міць, що дасть розробникам більш широкий простір для маневру і більш сучасних і якісних додатків.

    висновок

    Maemo - усталена платформа, яка має свою аудиторію і спільнота розробників. Містить, як свої переваги, так і недоліки, які залучають або відштовхують розробників. Головна особливість це відкритість платформи, але деякі компоненти є пропрієтарними. Основним двигуном є компанія Nokia, яка рухає свої ідеї і прислухається до думки спільноти.

    MeeGo є спільною розробкою компаній Nokia і Intel, яка тільки починає набирати обертів і завойовувати ринок. Дана платформа заснована на Maemo і Moblin, і увібрала в себе всі переваги цих платформ і придбала власні.

    Обидві платформи розвиваються і будуть широко використовуватися в найближчому майбутньому. Основний акцент змішається до платформи MeeGo, яка може використовуватися на чому кількості пристроїв, починаючи мобільними пристроями і закінчуючи телевізорами. Maemo використовується на hi-end мобільних пристроях Nokia і добре закріпилася на своєму місці.

    Список літератури

    Схожі статті