nvbn 10.05.2011 21:57
Python — Разработка графических приложений для Android или приложение Welinux
Прошла всего неделя с момента покупки htc desire, а мне уже захотелось под него что-нибудь написать. А так как java я не знаю, то пришлось извращаться и писать на python. Забегая вперёд, для тех кого интересует только приложение Welinux - qr код справа.
Приложение может потребовать Python For Android, без него пока не тестировалось.
Установка необходимых компонентов
Для разработки и тестирования на телефон (или в эмулятор) нужно поставить Scripting Layer for Android и Python For Android, на компьютере - Android SDK с установленными в нём пакетами Android SDK Platform-tools и SDK Platform Android 1.6 API 4.
Настройка телефона
Разрешим устанавливать приложения из неизвестных источников(Настройки → Приложения → Неизвестные источники) и включим режим отладки (Настройки → Приложения → Разработка → Отладка USB).
Ложка дёгтя
Для начала я всех немного огорчу, нормальное графическое приложение на Python для Android написать не получится, так как единственный доступный нам способ создания GUI - WebView. То есть приложение будет состоять из двух частей: интерфейс на html + javascript и сама программа на python. Между собой эти части будут общаться через event'ы.
Часть python
Начну с python кода, импортируем, инициализируем модуль для работы с Android устройством и "подключим" html файл base.html:
1 |
import android
|
Создадим цикл, в котором будет отлавливать event'ы:
1 |
|
Нам понадобятся два значения из event, это event['name'] - его имя и event['data'] - передаваемые им данные.
Для создания event'а существует функция droid.eventPost('name', 'data'), где name - имя, data - передаваемая строка.
Так же наша программа будет использовать меню, код для его очистки и создания:
1 |
|
Теперь при нажатии в меню на "Начало" будет сгененрирован event с именем "start" и значением True.
Вот python код приложения Welinux (файл script.py):
html + javascript часть
Код из данной части будет использоваться внутри тэга script.
Инициализируем модуль для работы с телефоном:
1 |
|
Создадим функцию для отлавливания event'ов и зарегистрируем её:
1 |
function clear(data) {
|
Это функция будет вызываться при выполнении droid.eventPost('clear', None) в python части.
Для создания event'ов существует функция droid.eventPost('name', 'data'), где name - имя, data - передаваемая строка.
html+js код приложения (файл base.html):
Тестирование приложения
Отправим файлы на телефон через adb:
1 |
cd путь_до_android_sdk/platform-tools/
|
Запустим SL4A из меню и откроем в нём script.py и увидим наше приложение.
Вот и всё, теперь осталось собрать apk, дабы не дублировать официальный сайт SL4A, просто приведу ссылку на инструкцию.
Исходный код одним архивом.
Повторная ссылка на риложение
konkere 15.05.2011 06:47 #
+ 0 -
В маркет планируется?
Ну и о залогинивании со всеми вытекающими хотелось бы узнать. Было бы прекрасно (:
Месяц назад тоже пробовал писать на Питоне под Андроид. Правда телефона с андроидом у меня пока нет, но планирую покупать Samsung Galaxy S II.
Что не сделают люди чтобы не открывать учебник по Java. Ну и зачем там это тормозилово?
Еще как больше, а ваш аргумент в стиле если мотор сильный то уже не важно сколько груза погрузили разница на глаз не видна. А так да гигарц провернет кудаже ему деватся.
Для мелких приложений особой разницы нету. Никто же не собирается писать большие и сложные штуки на питоне под андройд, да и смысл вообще писать сложные штуки для телефонов?
большие и сложные штуки
сложные штуки для телефонов
Всё ведь логично!
Нужно чтобы у телефонов были всякие штуки.
Насчет тормозилова не согласен. Но лучше все же писать на Java, к тому же, чтобы писать для Android требуется самый минимум знаний Java, да и документации и туториалов достаточно в сети.