Автор : Газетдинов Альберт (по ссылке и оригиналы статей с картинками)
Все статьи Альберта в другом формате можно взять здесь
В прошлой статье я начал рассказывать о языке программирования Python, с которым можно работать на смартфонах с интерфейсом Series 60. Я познакомил вас с интерактивной консолью, объяснил, как запускать приложения *.py и дал инструкцию по написанию элементарных программ. Создавать в интерактивной консоли приложения, которые могут выполнять действительно полезные функции, одно мучение. Причина простая интерактивная консоль не приспособлена для комфортного написания больших объемов кода. Наша задача разобраться, с помощью чего надо писать программы на мобильном Python и как создавать из них Symbian-приложения со значком в меню.
Вооружаемся!
Файлы формата *.py содержат голый код языка Python и могут быть открыты любым текстовым редактором. Надеемся, что на компьютере текстовый редактор для вас не проблема, поэтому уделим внимание исключительно мобильному ПО.
Встроенный редактор обычно плохо подходит. Лучший выбор, по моему мнению, программа YEdit, которая выделяется богатыми настройками и широким диапазоном поддерживаемых кодировок.
Необходим и браузер файловой системы, который имеет доступ в системные папки. Недолго мучаясь, можно в качестве браузера взять приложение из примеров к Python; местонахождение браузера systemappsPython (для Symbian 6-8). Если хотите массу настроек рекомендую функциональную программу FileMan (рис. 2).
Интересным вариантом будет также браузер X-plore, который (рис. 5) имеет встроенный редактор текстовых файлов (рис. 6). Примечательно, что X-plore единственный редактор под ОС Symbian 9 с поддержкой кодировки UTF-8. Упускать из виду эту программу владельцам соответствующих телефонов, например Nokia 3250, категорически не рекомендуется.
Скорее в бой!
Считаем, что необходимый инструментарий уже на руках, а навыки работы с редакторами и браузерами имеются. Начнем!
Создайте в редакторе файл, содержащий следующие две строки:
import appuifw
appuifw.note("Hello World!")
(мини-программка создаст окно с надписью).
Сохраните файл в любом месте (например, в корне диска) с именем my_program и расширением *.py . Если изменение расширения не доступно в редакторе, выход один изменить расширение вручную через файловый браузер.
В этом месте я вынужден предупредить обладателей смартфонов с 9-ой версии Symbian, что весь нижеследующий текст применим только для смартфонов с Symbian 6-8, и предлагаю перейти к последнему абзацу статьи.
В комплекте с PythonScriptShell идет скрытая (то есть не отображаемая в меню) программа AppMgr. Ее предназначение установка программ и библиотек Python, а также создание на их основе Symbian-приложений. Файлы *.py имеют ассоциацию с AppMgr, если открыть my_program.py в любом файловом браузере, запустится именно AppMgr с табличкой вариантов действий.
Выбираем пункт Python script. AppMgr установит файл в подпапку my рабочей папки Python. Если запустить Python и выбрать в меню «Функции» пункт Run script, в конце списка теперь будет находиться my_program.py.
Нажмите ОК и любуйтесь результатом: должно появиться информационное окошко с сообщением «Hello World!», после чего программа завершится.
Таким образом, нами получена первая относительно самостоятельная программа. Но именно что относительно, потому что запуск возможно осуществлять только через оболочку Python. Однако та же программа AppMgr может создать и Symbian-приложение, для этого предназначена функция Standalone app. К сожалению, разработчики эту возможность.
В решении проблемы нам поможет сам Python, точнее его принцип открытости. Напоминаем, что код программ Python находится в файлах *.py в виде текста; любой может легко изменить код по своему усмотрению.
Текст программы AppMgr находится в файле default.py в папке systemappsappmgr. Необходимо открыть файл текстовым редактором и найти ближе к концу следующий текст:
...
actions = [lambda: script_install(filename),
#lambda: standalone_install(filename),
lambda: lib_install(filename)]
menu = [u"Python script",
#u»Standalone app",
u»Python lib module"]
...
Символ # означает комментарий все, что после него идет в этой строке, игнорируется интерпретатором. Закомментирована может быть информация, которая поясняет действия тех или иных строк кода и значительно облегчает редактирование программы в будущем. Как видим, разработчики использовали комментарий, чтобы скрыть функцию программы. Нам необходимо убрать два символа # в обеих строках.
Для применения изменений сохраните файл default.py. Чтобы проверить результат редактирования, необходимо перейти файловым браузером к программе my_program.py и открыть ее. Если все изменения произведены правильно, то запустится AppMgr и предложит не 2, а уже 3 варианта действий, среди которых будет и Standalone app. Активация этого пункта приведет к появлению окна с предложением ввести UID. Это последний этап, который придется преодолеть.
UID 8-значный (в шестнадцатеричном виде) уникальный номер. Именно по нему ОС Symbian различает установленные на смартфоне программы друг от друга. На одном смартфоне не может работать две программы с одним UID, запуск любой из них приведет к ошибке. Получать идентификатор, по идее, нужно от разработчиков Symbian, причем единственное преимущество такого UID будет в том, что он 100% уникален. Если же придумать номер самим, то появляется шанс встретить программу с таким же UID. Однако вероятность такого события ничтожно мала. Идентификатор должен лежать в определенных диапазонах, и если введенный UID не укладывается в рамки, то AppMgr уведомит сообщением «Failed Error».
Вот пример «рабочего» UID: «0x31243ABC», который необходимо ввести в окно запроса Give UID и нажать на ОК. Если все прошло успешно, появится сообщение «Installation complete», которое напрямую говорит: «приложение создано, и значок с именем my_program появился в меню (на Nokia 6600 чудо свершится почти сразу, а вот на Nokia N70 нужно подождать секунд 5-10)». Запуск новоявленного приложения приведет к появлению все того же сообщения «Hello World!». После программа перейдет в режим ожидания, и для выхода из нее необходимо нажать на «Выйти».
Внимательный читатель может заметить, что здесь говорится о Symbian-приложении, тогда как Python интерпретируемый язык и возможности создавать приложения в машинных кодах не имеет. Действительно, автор чуть лукавит. AppMgr создает не приложение с введенным UID и с именем, как у файла *.py: он создает на основе этих данных загрузчик программы. Чтоб удостовериться, достаточно зайти файловым браузером в папку systemappsmy_program того диска, где установлен PythonScriptShell. Там находится: my_program.app непосредственно загрузчик, default.py сама программа и my_program.rsc. Файл default.py является полной копией my_program.py, что проверяется текстовым редактором.
Если присмотреться, то созданное приложение my_program по структуре похоже с рассмотренным выше AppMgr. Более того, заглянув в рабочую папку Python, можно и там найти те же Python.app, default.py и Python.rsc. Эти три файла и есть минимальный набор любого Symbian-приложения, созданного на основе *.py программы.
Таким образом, нами под моим руководством, надеюсь, вами получено «самостоятельное» приложение долгожданный значок в меню. Если скопировать папку my_program в папку systemapps другого смартфона, то в его меню появится значок, но запуск my_program ни к чему не приведет. Здесь опять видны «уши» интерпретатора: чтобы все-таки запустить приложение, необходим PythonForS60. Напомним, что установка мобильного Python включает различные модули в его папке systemlibs находится огромное количество файлов с расширением *.py и *.pyd.
Вот такая развязка. Python дает владельцам смартфонов революционную возможность создавать приложения со значком в меню.
Приручаем Python под Symbian 9
А теперь информация для обладателей смартфонов с Symbian 9: все программы на языке Python должны находиться в корневой папке Python того диска, где был установлен PythonScriptShell. Новые (например, my_program.py) необходимо вручную с помощью файлового браузера перемещать туда, где находятся примеры. Все эти программы доступны при запуске Python в меню Run Script.
Продолжение здесь
Похожие файлы
Создание и управление интерфейсом на Android с Python. Часть 4
Программирование для смартфоновФруктовый Python! Часть 2.
Программирование для смартфоновКомментарии 23
Списибо за статью давно хотел узнать побольше про питон.У меня вместо Hello World выходит:
Traceback (most recent call last):
File \"E:\\System\\Apps\\Python\\default.py\", line 81, in menu_action
f()
File \"E:\\System\\Apps\\Python\\default.py\", line 65, in query_and_exec
execfile(script_list[index][1].encode(\'utf-8\'), script_namespace.namespace)
File \"E:\\System\\Apps\\Python\\my\\my_program.py\", line 1 может кто подскажет что делать пожалуйста
очего не получается не могу найти эти # которые надо удалить из \"actions = [lambda: script_install(filename),
#lambda: standalone_install(filename),
lambda: lib_install(filename)]
menu = [u\"Python script\",
#u»Standalone app\",
u»Python lib module\"]\" у меня питон 1320 в default.py ничего такого не нашел помогите кто нибудь icq 197926938
Другое дело, спасибо!
-------------
Добавлено в 18.48: Bad Request))))))
Там ссылка сверху ваша не работает.
0 ответить