полезное для смартфонов

Головна » Статті » symbian

Phyton
Что такое Питон и с чем его едят Может, это не совсем та категория для этой статьи, но в категорию для новичков она не годится, ибо новички к Питону приходят далеко не сразу.
В данной статье освещу вопрос, что же есть такое Питон. Его многие не любят, но это лишь потому, что мало кто умеет его готовить =)
Что такое _компилированная_ программа на Си? Это набор уже готовых (ассемблерных) команд процессору, которые этот самый процессор тупо выполняет. То есть сначала программа пишется текстом, который смартфон понять, разумеется, не в состоянии. Потом с помощью программы _на_компьютере_ (компилятора) этот текст преобразуется в упомянутые команды. Так как команды поступают уже сразу процессору, мы имеем высокое быстродействие для готовых программ на си, малое потребление оперативной памяти и все те плюсы, которые вы сможете назвать сами.
А что такое программа на питоне? Обычно такая программа как была текстом, так она текстом в телефон и попадает (исключения оговорю ниже). Программа на питоне называется скрипт, что в переводе с английского означает - сценарий. Другими словами, скрипт - это сценарий, по которому будет работать телефон. Чувствуете разницу? набор тупых команд и сценарий (театр, наша жизнь - игра). Для исполнения сценария нужны актеры и сцена. Роль актеров и сцены выполняет как раз виртуальная машина Питона (назовем ее питоновой машиной). Именно она запускается, когда мы запускаем скрипт или программу на питоне. И она уже начинает преобразовывать просто текстовый файлик в понятные телефонному процессору команды. Если в программах на си эту часть преобразования делает отдельная программа на компьютере один раз (компиляция), то у программ на питоне текст в команды преобразуется прямо на телефоне каждый раз во время выполнения скрипта (интерпретация). Разумеется, интерпретация, разбор на лету, непростая работа. И питоновая машина вынуждена потреблять для своей работы в сравнении с программами си значительно больше оперативной памяти (о числах ниже)
Первый подход, компиляция - дает скорость и малый размер потребляемой оперативки. Второй подход - возможность писать программы прямо на телефоне, отсутствие необходимости скачивать и устанавливать сотнемегабайтные (местами кривоватые) дистрибутивы и читать сотни страниц (местами неполной) документации. На питоне знаменитая программа Hello world записывается в одну строчку прямо в консоли питона:
print u"Hello, world"
в то время как на си это порядка 30-40 строк кода (!!!) да еще и тысячу телодвижений программиста по сбору этой проги в рабочий *.app
Может быть, уже кто-то задумался, что механизм весьма похож на java с ее байт-кодом и виртуальной машиной. Но java ест оперативы несоразмерно больше Питона для аналогичных задач!!
Так, простенькая программка на питоне может занимать килобайт 800 (пример - gsmlocation в обменнике программ на питоне). Навороченная, подгружающая много тяжелых модулей - около двух мегабайт (пример ForeMost там же), в то время как java уже при старте использует хорошо если 1,5 - 2 метра (загрузка витуальной машины)! И, наконец, написать программу на java прямо на смарте или даже на компе - дело посложнее аналогичного на Питоне.
Если Ваш телефон завален java, но вы боитесь ставить проги на Питоне - это все равно, что есть спагетти ложкой, потому что вы боитесь уколоть тарелку вилкой или ножом.
И что самое смешное, как понадобилось подобрать ключ к программам от котов, так скачивание за одну ночь перевалило все рекорды питонщиков... правда обидно, что множество других толковых программ не замечают. И ни-ни, что питон громоздкий-неудобный-тяжелый-нехороший =)
Ну и наконец питон - находка для программистов-смартфонщиков и свободного софта! Я и сам не раз правил коды, писал для себя программы прямо в метро. автобусе или где еще. Однажды надо было мне и друзьям дозвонится в абонслужбу одной конторы. Тогда еще программ для эмуляции нажатий клавиш не было, но я за пять минут сделал скрипт, который с интервалом в тридцать секунд звонил на указанный телефон. Прямо стоя на улице. Кто-нть сможет похвастаться подобным на си? =) Питон - это расширение возможностей смарта для ваших _повседневных_ однообразных задач без особых усилий и затрат, без необходимости ныть в столе заказов, это возможность подсказывать свои идеи программистам, возможность общаться с разработчиками напрямую (и на русском, хе) и еще масса, масса, масса всего. Причем сложность проектов зависит только от желания и фантазии автора.
Оговорюсь, что на компьютере я программирую на си( ) и си шарп (он же CSharp или С#), потому что на компьютере с питоном свои плюсы-минусы, хотя и для компа программ на питоне предостаточно, причем для самых разных платформ. Речь здесь идет о смартах.
Везде свои плюсы-минусы. Каждый делает выбор для себя. С современными смартфонами вопрос оперативной памяти вообще не стоит, так что боятся Питона и говорить, что он плохой глупо =) А навредить он вашему телефону не может, захламить он может в десять раз меньше, чем пресловутый Григафон или офис. (вирусы на питоне не писал никто для смартов, нет смысла и возможности скрыться от глаз польователя)
P.S. Скрипт может быть и не совсем в виде текста, могут быть уже частично компилированные скрипты. Но при этом ускоряется время загрузки программы. А скорость работы остается прежней.
Статья эта - крик души. Надоело, что мне пишут и жалуются, мол какой питон громоздкий и неудобный, какой он жадный до оперативы.
Любой обладатель смартфона знает, что мобильная операционная система делает телефон похожим на старшего брата -- настольный компьютер. Можно на свой вкус устанавливать разнообразные программы, которые кардинально влияют на удобство работы. Но мало кто знает, что на смартфоне, как и на компьютере, имеется возможность самостоятельно писать программы. Я расскажу о бесплатном языке программирования Python, который стараниями Nokia и Symbian адаптирован для смартфонов с интерфейсом S60. С помощью «змеиного» языка легко побеждать рутинные задачи: составлять отчеты, выявлять в документах типичные ошибки -- повторения слов или неработающие гиперссылки, и многое другое.
В начале 90-х сотрудник Национального голландского исследовательского института Гвидо Ван Россум в свободное от работы время написал на домашнем Apple Macintosh интерпретируемый язык Python. Интерпретируемые языки программирования
Термин «интерпретируемый» значит, что для запуска программы требуется специальное приложение-консоль, которое будет переводить код программы в понятный машине язык. Для примера: известные многим со школы языки Pascal и C не интерпретируемые -- созданную программу надо скомпилировать в exe-файл, который может быть запущен на любом компьютере.
Не без помощи энтузиастов Python быстро оброс множеством функций и сегодня широко представлен не только в настольных ОС семейства Windows, Linux, OS X (Apple), но и мобильных: Symbian, Windows Mobile и Palm.
Расчехляем дудочку факира (новомодное название подготовки к инсталляции приложения - atrant)
Начнем с того, что установим Python на смартфон. Для этого потребуются файлы PythonScriptShell и PythonForS60. Первый -- приложение-консоль, которое необходимо для запуска и написания программ. Второй -- набор библиотек, отвечает за функционирование программ.
Разработчики постоянно радуют обновлениями (на момент написания статьи самая новая версия -- 1.3.20). Таким образом компания Symbian стимулирует появление новых программ и игр, что делает смартфоны с интерфейсом S60 более привлекательными для покупателей.
Как же понять, что именно нужно? Предлагаю посмотреть на таблицу 1, где приведены имена установочных файлов для каждой редакции 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
Symbian OS 8.1 (S60 Edition 2 Feature Pack 3)
Nokia: N70, N72 и N90
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 или PythonForS60_1_3_20_3rdEd_ unsigned_freedevcert.SIS, PythonScriptShell_1_3_20_3rdEd_ unsigned_freedevcert.SIS
Для Symbian 6 доступна только самая ранняя версия мобильного Python, и ситуация НЕ изменится (смотрим шапку темы - atrant) . Находится файл для него в самой нижней вкладке с номером версии 1.3.1.
У Symbian 9, на которой построены последние телефоны Nokia, ситуация диаметрально противоположная -- новые версии Python регулярно выходят раз в несколько (имхо - раз в пару - atrant) месяцев. Одновременно появляются обновления для 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. Нажатие на правую софт-клавишу приведет к ожидаемому выходу из приложения. Ну а нам -- вперед!
Здравствуй, мир!(классика от Кернигана и Ричи... hello, world - atrant)
Interactive console. При нажатии на этот пункт меню программа перейдет в так называемый интерактивный режим, в котором можно вводить команды на языке Python и немедленно видеть результат их выполнения.
Интерактивная консоль встречает приглашением, которое состоит из трех знаков: «>>>». Попробуйте набрать следующую строку: «print «Hello World S60!» и нажать на джойстик. Если все сделано правильно, то на экране у вас то же, что и на нашем скриншоте.
Разберем этот пример. Команда «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 = -1», и после этого курсор будет переведен на новую строку. Заметьте, пробел между выводимыми объектами вставляется автоматически.
Предыдущий пример был с целыми числами, но Python без проблем справится и с дробными (вещественными). Кроме сложения ( ), над числами можно произвести операции умножения (*), вычитания (-), деления (/) и возведения в степень (**).С помощью скобок в интерактивной консоли Python можно задать вычисление сложных математических выражений вида 485*738 (203**2)/234-1456, что дает право жить Python в памяти вашего смартфона хотя бы в виде сложного калькулятора.
На скриншоте приведен и пример «общения» с интерактивной консолью, результатом которого стала вычисленная длина (в виде вещественного числа) окружности с радиусом равным пяти.
К запуску готов!
Run script. Выбор этой функции приведет к отображению списка программ на языке Python (см. скриншот). Для запуска выбранной программы необходимо нажать на ОК.
В списке отображаются примеры, поставляемые вместе с Python и находящиеся в рабочей папке -- systemappsPython -- того диска, где был установлен 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.
5) imgviewer.py -- просмотрщик картинок. Рабочая папка программы -- e:images. Позволяет просматривать картинки на весь экран, имеется возможность скроллинга изображения, если оно выходит за пределы экрана, прокручивание списка (нажатие на клавиши 1 и 3) и множество других функций.
6) keyviewer.py -- программа для отображения кодов нажатых клавиш. Нажимая на различные комбинации клавиш, можно увидеть их код в десятичном и шестнадцатеричном виде.
7) snake.py -- бессмертная змейка. Управляйте джойстиком и направляйте змею (вероятно питона) к спасительной пище.
Голубой передатчик (назвал главу... еще один трамбон пьяного факира. Имхо - работа с Bluetooth - atrant)
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. При нажатии на этот пункт меню появится окошко с предложением посетить официальный сайт www.python.org для получения дополнительной информации.
Альтернатива 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-приложений.
А также напишем первую полезную программу. Полученные навыки позволят самостоятельно делать приложения, заточенные под личные нужды.
Категорія: symbian | Додав: BoSS (11.02.2009)
Переглядів: 5481 | Рейтинг: 3.0/2
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Категорії розділу
інші цікаві та корисні статті
symbian
Apple
Nokia
перепрошивка взлом..
поради для користувачів смартфонів
Топ 16 самих концептуальних телефон
Наше опитування
скіки вам років
Всього відповідей: 181
Міні-чат
Реклама
Анекдот

Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0