Python на Symbian S60: особенности питона с финской закалкой

Любой обладатель смартфона знает, что мобильная операционная система делает телефон похожим на старшего брата — настольный компьютер. Можно на свой вкус устанавливать разнообразные программы, которые кардинально влияют на удобство работы. Но мало кто знает, что на смартфоне, как и на компьютере, имеется возможность самостоятельно писать программы. Я расскажу о бесплатном языке программирования Python, который стараниями Nokia и Symbian адаптирован для смартфонов с интерфейсом S60. С помощью «змеиного» языка легко побеждать рутинные задачи: составлять отчеты, выявлять в документах типичные ошибки — повторения слов или неработающие гиперссылки, и многое другое.

Материал написан специально для публикации на Mobi.ru

Обсудить материал на форуме

В начале 90-х сотрудник Национального голландского исследовательского института Гвидо Ван Россум в свободное от работы время написал на домашнем Apple Macintosh интерпретируемый язык Python.

Интерпретируемые языки программирования Термин «интерпретируемый» значит, что для запуска программы требуется специальное приложение-консоль, которое будет переводить код программы в понятный машине язык. Для примера: известные многим со школы языки Pascal и C не интерпретируемые — созданную программу надо скомпилировать в exe-файл, который может быть запущен на любом компьютере.

Не без помощи энтузиастов Python быстро оброс множеством функций и сегодня широко представлен не только в настольных ОС семейства Windows, Linux, OS X (Apple), но и мобильных: Symbian, Windows Mobile и Palm.

Расчехливаем дудочку факира

Начнем с того, что установим Python на смартфон. Для этого потребуются файлы PythonScriptShell и PythonForS60. Первый — приложение-консоль, которое необходимо для запуска и написания программ. Второй — набор библиотек, отвечает за функционирование программ.

Зайдем по ссылке ;package_id=171153 и скачаем установочные файлы. Разработчики постоянно радуют обновлениями (на момент написания статьи самая новая версия — 1.3.20). Таким образом компания Symbian стимулирует появление новых программ и игр, что делает смартфоны с интерфейсом S60 более привлекательными для покупателей.

Как же понять, что именно нужно? Предлагаю посмотреть на таблицу 1, где приведены имена установочных файлов для каждой редакции Symbian.

Таблица 1. Соответствие между редакцией Symbian и именем установочных файлов Python

Версия Symbian Некоторые телефоны Файлы для скачивания Symbian OS 6.1 (S60 1-st Edition) Nokia: N-Gage, 7650, 3650 и 3660; RoverPC: Sendo X1; Siemens: SX1 PythonForS60_1stEd_1_3_1.SIS Symbian OS 7.0 (S60 Edition 2) Nokia: 6600, 7610, 6260, 3230, 6670; Panasonic: X700, X800; Samsung: D720 и D730 PythonForS60_1_3_20_2ndEd.SIS, PythonScriptShell_1_3_20_2ndEd.SIS Symbian OS 8.0a (S60 Edition 2 Feature Pack 2) Nokia: 6630, 6680 и 6681; Lenovo: P930 PythonScriptShell_1_3_20_2ndEdFP2.SIS, PythonScriptShell_1_3_20_2ndEdFP2.SIS Symbian OS 8.1 (S60 Edition 2 Feature Pack 3) Nokia: N70, N72 и N90 PythonScriptShell_1_3_20_2ndEdFP3.SIS, PythonScriptShell_1_3_20_2ndEdFP3.SIS Symbian OS 9.0 (S60 Edition 3) Nokia: 3250, N71, N80, N91, N92, E60, E61 и E70 PythonForS60_1_3_20_3rdEd_selfsigned.SIS, PythonScriptShell_1_3_20_3rdEd_selfsigned.SIS или PythonForS60_1_3_20_3rdEd_ unsigned_freedevcert.SIS, PythonScriptShell_1_3_20_3rdEd_ unsigned_freedevcert.SIS

Для Symbian 6 доступна только самая ранняя версия мобильного Python, и ситуация вряд ли изменится. Находится файл для него в самой нижней вкладке с номером версии 1.3.1.

У Symbian 9, на которой построены последние телефоны Nokia, ситуация диаметрально противоположная — новые версии Python регулярно выходят раз в несколько месяцев. Одновременно появляются обновления для 7-й  и 8-й версии Symbian, так что владельцы аппаратов под этой ОС могут вздохнуть свободно.

Существуют две разновидности установочных файлов Python для Symbian 9: подписанные и не подписанные. Подпись введена компанией Symbian для защиты операционной системы от вирусов. Не подписанное ПО доступом к функциям операционной системы обладает крайне ограниченным. Любопытно, что пользователь сам может зарегистрировать несертифицированное ПО.

Установочные файлы Python, имеющие окончание selfsigned, подписаны. Такой вариант лучше всего подойдет для начинающих. Файлы, у которых в названии стоит окончание unsigned_freedevcert, предназначены для самостоятельной подписи, при этом Python получит максимальный доступ к ОС.

Скачав нужные файлы на компьютер, необходимо перенести их любым доступным способом на смартфон. При наличии data-кабеля и установленного Nokia PC Suite можно воспользоваться мастером «Установка приложений».

Первым устанавливается PythonForS60, вторым — PythonScriptShell, после чего в меню смартфона появится значок Python. Клик по иконке вызывает консоль, которая встречает справкой об авторских правах и версиях программы (см. скришнот).

Не нарушайте авторских прав!

После нажатия на левую софт-клавишу консоль выдаст список из четырех функций: Run script, Interactive console, Bluetooth console и About Python. Нажатие на правую софт-клавишу приведет к ожидаемому выходу из приложения. Ну а нам — вперед!

Здравствуй, мир!

Interactive console. При нажатии на этот пункт меню программа перейдет в так называемый интерактивный режим, в котором можно вводить команды на языке Python и немедленно видеть результат их выполнения.

Интерактивная консоль встречает приглашением, которое состоит из трех знаков: «>>>». Попробуйте набрать следующую строку: «print «Hello World S60!» и нажать на джойстик. Если все сделано правильно, то на экране у вас то же, что и на нашем скриншоте.

Наши первые шаги в мире мобильного Python

Разберем этот пример. Команда «print» предназначена для вывода различной информации, в данном случае «Hello World S60!». Запомните: все, что находится в кавычках, является текстом, сами кавычки при этом не выводятся. С помощью «print» удастся выводить не только текст и цифры, но и значения переменных.

Пример:

a = 1

b = 2

print «a + b =»,a+b

В первых двух строках задаются переменные. Переменная — это буквенное обозначение области памяти, в которой хранится некоторое значение. В данном случае программа указывает Python, что переменная a должна равняться единице. Во второй строке создается переменная b со значением 2. А в третьей строке происходит следующее: сначала оператор print выведет текст «a + b =», затем будет вычислена сумма a и b и выведен ее результат. Таким образом, на экране отобразится «a + b = 3», и после этого курсор будет переведен на новую строку. Заметьте, пробел между выводимыми объектами вставляется автоматически.

Предыдущий пример был с целыми числами, но Python без проблем справится и с дробными (вещественными). Кроме сложения (+), над числами можно произвести операции умножения (*), вычитания (-), деления (/) и возведения в степень (**).С помощью скобок в интерактивной консоли Python можно задать вычисление сложных математических выражений вида 485*738+(203**2)/234-1456, что дает право жить Python в памяти вашего смартфона хотя бы в виде сложного калькулятора.

На скриншоте приведен и пример «общения» с интерактивной консолью, результатом которого стала вычисленная длина (в виде вещественного числа) окружности с радиусом равным пяти.

К запуску готов!

Run script. Выбор этой функции приведет к отображению списка программ на языке Python (см. скриншот). Для запуска выбранной программы необходимо нажать на ОК.

Примеры программ на мобильном Python

В списке отображаются примеры, поставляемые вместе с Python и находящиеся в рабочей папке — system\apps\Python\ — того диска, где был установлен PythonScriptShell. Объясню немного про каждый пример:

1) ball.py — любопытная программа, в которой дается возможность управлять шариком. Предмет стремится оказаться на «полу» под действием виртуальной гравитации, что можно предотвратить, двигая джойстик.

2) default.py — сама консоль Python. При запуске программа перезапускается.

3) filebrowser.py — браузер файловой системы (рис. 4). Позволяет просматривать содержимое всех дисков смартфона (C:\ — внутренняя память, D:\ — виртуальный диск, создаваемый в оперативной памяти, E:\ — флэш-карта, Z:\ — прошивка). Нажатие на папки приведет к отображению их содержимого, если же щелкнуть по файлу, то появится меню действий. В случае когда открываемый файл имеет расширение py, то есть это программа на Python, он будет автоматически запущен.

4) gles_demo.py и simplecube.py — демонстрируют 3D-возможности Python, которые представлены набором инструкций (API) OpenGL ES. В первом примере просто вращаются красивые кубы, во втором — только один куб, но у него можно менять атрибуты внешнего вида через меню.

OpenGL ES OpenGL ES — кроссплатформенная графическая библиотека для создания качественных игр с использованием 3D-объектов с эффектами текстурирования, освещения и другого. К сожалению, данная библиотека недоступна смартфонам с Symbian 6 и 7. keyviewer.py — программа для отображения кодов нажатых клавиш

5) imgviewer.py — просмотрщик картинок. Рабочая папка программы — e:\images\. Позволяет просматривать картинки на весь экран, имеется возможность скроллинга изображения, если оно выходит за пределы экрана, прокручивание списка (нажатие на клавиши 1 и 3) и множество других функций.

Запускаем программу на Python

6) keyviewer.py — программа для отображения кодов нажатых клавиш. Нажимая на различные комбинации клавиш, можно увидеть их код в десятичном и шестнадцатеричном виде.

7) snake.py — бессмертная змейка. Управляйте джойстиком и направляйте змею (вероятно питона) к спасительной пище.

Голубой передатчик

Bluetooth Console. С помощью «голубого зуба» смартфон можно подключить к настольному компьютеру или ноутбуку. Пользователь может работать в интерактивной консоли с помощью полноценной клавиатуры.

Работаем со смартфоном на ПК через Bluetooth Console

1) Запустите HyperTerminal на компьютере (Пуск — Программы — Стандартные — Связь).

2) В появившемся окне «Описание подключения» введите имя нового подключения и выберите ему любой понравившийся значок, нажмите ОК.

3) В окне «Подключения» из списка «Подключаться через» выберите тот COM-порт, который был создан после установки Bluetooth-адаптера на компьютер (серийный порт Bluetooth RFCOMM) и нажмите ОК.

4) Запустите Python на смартфоне и в меню «Функции» выберите пункт «Bluetooth Console».

5) Появится окно найденных Bluetooth-устройств, из них выберите то, которое принадлежит компьютеру, и нажмите «Выбрать».

6) Если соединение прошло успешно, то на смартфоне появится окно с вопросом «Set as default?», нажмите ОК.

7) Перейдите к окну HyperTerminal, там будет надпись «Connected», замечания об авторских правах и версия программы Python, ниже будет находиться приглашение «>>>».

Таким образом, был получен аналог мобильного «Interactive Console» на компьютере: можно вводить команды с клавиатуры и видеть результат их выполнения на мониторе. На телефоне это видимым образом не отображается, однако Bluetooth-канал активен, а процессор на смартфоне нагружается для обработки набранных команд.

Перед выходом из HyperTerminal сохраните подключение (Файл — Сохранить). Теперь при последующих запусках можно не настраивать подключение заново, а загрузить его (Файл — Открыть). После, при запуске «Bluetooth Console», на смартфоне будет появляться окно «Connect to:», где достаточно нажать «Default host».

Итоги

About Python. При нажатии на этот пункт меню появится окошко с предложением посетить официальный сайт для получения дополнительной информации.

Альтернатива Python

Кроме Python, имеется возможность писать программы на смартфонах S60 и на таком языке, как mShell. Сайт разработчиков: www.m-shell.net.

Плюсы mShell:

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

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

— Наличие версии для Symbian UIQ.

А теперь минусы:

— Меньший функционал по сравнению с Python.

— Невозможность создания самостоятельных приложений — запуск программ возможен только из консоли mShell.

— Платность. Распространяется программа в двух версиях: Free и Full. Free — бесплатная, но у нее отсутствуют некоторые функции. Full — полнофункционален, но стоит денег. Следует отметить, с недавних пор Full-версия для Symbian 7-8 бесплатная, обладателей смартфонов с Symbian 9 эта новость не касается.

После прочтения статьи у некоторых (хотя, надеюсь, у всех) появилось огромное желание сделать свою программу на языке Python.

В следующих статьях мы расскажем:

Как смотреть код программы и сохранять его. Как создать иконки в меню для быстрого запуска Python-приложений.

А также напишем первую полезную программу. Полученные навыки позволят самостоятельно делать приложения, заточенные под личные нужды.

Обсудить материал на форуме






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.