Разработка GPS-приложения для Nokia N810: Часть 1. Среда разработки

Подходящее сочетание: Eclipse и Python

В статье рассказывается о том, как сконфигурировать среду разработки, предназначенную для Интернет-планшета Nokia N810, в том числе и о настройке Eclipse на целевой машине для разработки на языке Python.

Пол Ферилл (Paul Ferrill), технический директор, ATAC

Пол Ферилл (Paul Ferrill) пишет для компьютерной прессы на протяжении более 20 лет. Он начинал с обзоров сетевых продуктов для PC Magazine, в том числе таких, как LANtastic и ранние версии Novell Netware. У Пола есть степени бакалавра и магистра технических наук в области электроники. Он писал программы для такого количества компьютерных платформ и архитектур, что уже сам не может вспомнить их все.



06.08.2009

Интернет-планшет Nokia N810 — это замечательное компактное карманное устройство с множеством функций. Он поставляется с несколькими стандартными приложениями и ссылками на web-сайт Maemo, с которого можно загрузить множество других приложений. (См. ссылки в Ресурсах.)

К сожалению, не всегда удается найти приложение именно с теми конкретными функциями, которые вам нужны. Если поиск оказывается безрезультатным, то остается, в сущности, два варианта: найти кого-либо, кто создаст это приложение для вас, либо написать его самому. В статье "Разработка приложений для Nokia N810" на сайте developerWorks рассматривалось создание приложения, использующего сигнальный API N810. Основное внимание в статье уделялось использованию существующего API и стандартного SDK.

В данной серии статей о разработке GPS-приложения рассказывается, как создать приложение, работающее с глобальной системой позиционирования (global positioning system, GPS), с использованием N810 и его встроенного GPS-приемника.

Выбор средств разработки

Правильный выбор средств разработки напрямую влияет на общий ход процесса программирования и, в конечном итоге, на производительность разработчика. Очень существенным моментом при выборе средств разработки является используемый язык программирования. По умолчанию среда разработки Maemo поддерживает язык C, хотя можно добавить поддержку как для C++, так и для Python. На сайте Maemo есть инструкция по добавлению соответствующих метапакетов для дополнительных языков (см. Ресурсы).

Для эффективной разработки приложений требуется хорошая среда разработки с инструментами для редактирования, компиляции и отладки программ. Еще одно важное требование для встраиваемых приложений — это возможность запуска программ как в эмулируемой среде, так и на целевом устройстве непосредственно. Облегчение цикла редактирование-компиляция-тестирование повышает производительность труда программиста.

В прошлом главным методом разработки приложений для Интернет-планшета Nokia было использование SDK и Scratchbox (см. Ресурсы). Это по-прежнему жизнеспособный вариант, предоставляющий подход на основе эмуляции в автономной среде. Единственным существенным его недостатком является объём усилий, требующихся для развертывания этого решения на устройстве для тестирования. На самом деле всё не очень страшно, но для получения нужного результата потребуется выполнить несколько действий.

Ключевыми факторами при выборе языка программирования являются число библиотек поддержки, а также количество и качество примеров программ, помогающих быстро начать работу над своим проектом. Выбор языка программирования для разработки приложений — это вопрос удобства. Многие программисты свободно владеют несколькими языками, но предпочитают один или два, с которыми им работается наиболее комфортно.

Для этого проекта я остановился на Python по целому ряду причин. Этот язык мне знаком, и для него есть множество библиотек на разные случаи жизни. Многие уже написанные Python-приложения для среды Maemo предоставляют дополнительные сведения и инструкции для удобства освоения.


Eclipse и PluThon

Редактор Eclipse предоставляет отличную основу для разработки приложений на множестве языков. Он бесплатен и легко устанавливается на любой платформе. Использование Eclipse для разработки на Python требует установки дополнения Pydev (см. Ресурсы). После установки Eclipse можно воспользоваться менеджером обновлений для добавления дополнительных возможностей.

Разработка с помощью Eclipse полностью поддерживается в Maemo посредством слоя интеграции, описанного на сайте Maemo. Предоставляется поддержка для Maemo версии 4.0.x Chinook и версии 4.1.x Diablo SDK, а также для устройств N800 и N810. Среди новых возможностей, добавленных после релиза Diablo — утилита PC Connectivity, подключаемый модуль ESBox для запуска эмулятора Scratchbox и подключаемый модуль PluThon для выполнения на устройстве (on-device execution).

Как и PC Connectivity, PluThon представляет собой потрясающее достижение; их сочетание дает возможность подключаться к планшету по туннелю SSH, загружать на него приложения и утилиты, а также запускать приложение непосредственно на устройстве. Чтобы все правильно настроить, потребуются некоторые усилия, но они оправдывают себя. На рисунке 1 показано загруженное приложение Hildon Hello World, готовое к запуску на устройстве.

Рисунок 1. Eclipse и Pluthon
Eclipse и Pluthon

Настройка среды разработки

Один из самых быстрых способов получить полностью сконфигурированную среду разработки для Maemo — это загрузить с сайта Maemo комплекс Maemo SDK Appliance для VMware. После этого понадобится лишь VMware Player (см. в Ресурсах ссылки на обе программы). После запуска мы получаем среду Linux® на основе K Desktop Environment (KDE) со всем необходимым для разработки программ для устройств Nokia N800 и N810.

Для нашего проекта важно протестировать приложение непосредственно на устройстве, поскольку нам требуется функциональность GPS. Эту проверку можно провести с помощью дополнения PluThon. Вся установка происходит из среды Eclipse. Подробные инструкции можно получить на странице с информацией по установке PluThon (см. Ресурсы). Все инструкции необходимо будет выполнять из среды VMware Appliance, потому что в текущей версии PluThon по умолчанию не установлен.

Чтобы получить рабочее соединение, требуется соблюдение нескольких условий и некоторые действия по его настройке. Сначала необходимо установить три пакета, указанные на странице с информацией по установке PluThon. Выполнение соединения PluThon требует SSH-сервера, запущенного на планшете. Для установки сервера SSH на планшете нужно выполнить в терминале одну команду:

$ sudo apt-get install openssh-server

Чтобы создавать SSH-соединение без ввода пароля при установке связи между машиной разработки и планшетом, требуются открытый и закрытый ключи. На странице, посвященной PC Connectivity (см. Ресурсы), даны подробные сведения по созданию ключей из командной строки. Также нужно скопировать ключи в определенные места на компьютере и на целевом устройстве. К счастью, в среде Eclipse ключи создаются намного проще.

Для создания ключей в среде Eclipse выберите пункт меню Window > Preferences, как показано на рисунке 2. Затем выберите General > Network Connnections > SSH2; появится окно с тремя вкладками. На средней вкладке—Key Management—можно создать открытый и закрытый ключи.

Рисунок 2. Создание ключей легким способом
Создание ключей легким способом

Теперь нужно нажать кнопку Generate DSA Key. При желании можно ввести парольную фразу для повышения безопасности, но это не обязательно. Затем необходимо нажать на кнопку Save Private Key для локального сохранения ключа. Ключ нужно сохранить в домашней папке пользователя в каталоге .ssh.

Примечание: мне не удалось сохранить ключ непосредственно из меню Eclipse и пришлось потом скопировать файлы с помощью командной строки.

Чтобы сочетание открытого и закрытого ключей работало, открытый ключ должен храниться на целевой машине. Для сохранения ключа нажмите кнопку Export Via SFTP в том же окне создания ключа SSH2. Понадобится IP-адрес планшета и запущенный сервер SSH. Еще одно требование состоит в том, что необходимо подключиться как user, когда появится подсказка со стороны целевого устройства:

user@192.168.1.111

Затем нужно повторить этот же процесс для ключа RSA. После того как оба набора ключей будут созданы и скопированы в правильные каталоги, можно продолжить работу.


Проверка

После завершения установки и настройки можно провести проверку, чтобы убедиться, что все сконфигурировано правильно. Легче всего это сделать, создав и запустив простое приложение Hello World. Для этого запустите Eclipse на своей машине, предназначенной для разработки (или в Maemo SDK VMware Appliance). Затем выберите пункт меню File > New > Project для запуска мастера создания нового проекта. Затем выберите PluThon > PluThon project. Введите имя проекта (Hello World), затем нажмите Next.

Теперь для обеспечения связи с целевым устройством нужно создать сеанс SSH для своего проекта. Для этого потребуется имя компьютера или IP-адрес и имя пользователя. Можно выбрать другой порт или просто оставить значение по умолчанию. Затем нужно нажать Finish для завершения процесса. Теперь у нас есть пустой проект, готовый для написания программы.

Если нужен быстрый способ проверить настройки с помощью приложения, которое отображает что-либо на планшете, то можно использовать шаблон Hildon Hello World. Для использования этого шаблона требуются в сущности те же шаги, что перечислены выше, кроме одного дополнительного шага непосредственно перед нажатием кнопки Finish. После создания сеанса SSH нажмите Next; будет предложен вариант создания своего проекта на базе существующего шаблона. Выберите шаблон Hildon Hello World, а затем нажмите Next. Появится заключительная страница с опцией связывания нескольких проектов. Ее можно спокойно проигнорировать и нажать Finish.

Теперь у нас есть проект с одним исходным файлом на Python с именем hello_world.py, состоящим из 40 строк кода, включая комментарии, который выводит в середине окна текст Hello World. При желании этот текст можно изменить, но для простого тестирования в этом нет необходимости. Здесь уместно отметить удобство Python и то, как он использует библиотеки для добавления функциональности в программу. Две строки в программе hello world program—import gtk и import hildon—вставляют все необходимое для отображения текста на экране.

Последний шаг — это собственно размещение приложения на целевом устройстве. Выберите Run > Run As, а затем нажмите PluThon Application, чтобы с помощью SSH-соединения скопировать все приложение на устройство и запустить. Если все в порядке, должен появиться белый экран со словами Hello World (или с текстом, который вы ввели вместо этого) в середине экрана. Eclipse предоставляет консольное окно для отображения всех сообщений о состоянии и любых данных, которые выводились бы на консоль, если бы приложение было запущено непосредственно из командной строки Python.


Заключение

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

Среди других факторов, которые нужно учитывать при выборе библиотек — доступ к базе данных для хранения информации о положении, полученной с GPS, математические библиотеки для расчета расстояний и коммуникационные библиотеки на случай, если возникнет необходимость передавать координаты текущего местоположения через сетевое соединение. Можно даже использовать бесплатные библиотеки для подключения к таким открытым сервисам, как Twitter, но я не стал с этим связываться.

Выбор Python и Eclipse в качестве основы для этой разработки облегчает создание модульных тестов и добавляет встроенное тестирование в конечный продукт. Модуль Eclipse Pydev поставляется с различными фрагментами программ, в том числе и для быстрого создания системы модульного тестирования, вокруг которой можно строить программу. Если следовать стандартным соглашениям по написанию программы на Python с использованием Docstrings, то автоматически будет создана хорошая основа для документации. Работать с документацией гораздо легче, если она встроена прямо в текст программы, поскольку это позволяет поддерживать все в синхронизированном состоянии.

Принятие решения по выбору библиотеки для пользовательского интерфейса требует создания и тестирования прототипов с использованием всех возможных вариантов. Хотя стандартные библиотеки Hildon предоставляют все виджеты и кнопки, которые могут понадобиться в типичном настольном приложении, они не обязательно наилучшим образом подходят для интерфейса, ориентированного на сенсорное управление. Можно изменить размеры различных объектов в соответствии с поставленными требованиями, хотя для сложного интерфейса это не рекомендуется. Среди других возможных кандидатов — Enlightenment Foundation Library (EFL), которая используется медиа-проигрывателем Canola. Это решение выглядит привлекательно, но чтобы всё заработало хорошо, потребуется много труда со стороны разработчика. Было бы интересно испытать все эти варианты на практике.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Мобильные приложения, Linux
ArticleID=418657
ArticleTitle=Разработка GPS-приложения для Nokia N810: Часть 1. Среда разработки
publish-date=08062009