Представлен (http://txzone.net/2012/01/introducing-python-for-android/) проект Python for Android (https://github.com/kivy/python-for-android), в рамках которого подготовлен инструментарий, позволяющий создавать приложения для платформы Android на языке Python. Итоговые приложения оформляются в виде APK-пакетов, которые можно установить как обычные приложения для Android. Для обеспечения выполнения интерпретатора Python используется Android NDK (http://developer.android.com/sdk/ndk/index.html) (Native Development Kit), позволяющий организовать выполнение нативного Си/Си++ кода с задействованием API платформы Android. Код проекта распространяется (https://github.com/kivy/python-for-android) в рамках лицензии LGPLv2.1.Для формирования пользовательского интерфейса в Python программах для платформы Android предлагается использовать Python-библиотеку Kivy (https://github.com/kivy/kivy), предназначенную для быстрого создания многоплатформенных GUI-интерфейсов, которые кроме Android та...
URL: http://txzone.net/2012/01/introducing-python-for-android/
Новость: http://www.opennet.me/opennews/art.shtml?num=32761
на этом можно написать сетевое приложение?
Модули socket и urllib (urllib2) идут там из коробки. Так что проблем нет.
> на этом можно написать сетевое приложение?Ага. На питоне. И посадить батарейку не за сутки как раньше, а за три часа. С учетом общей скорости работы питона которая во много раз сливает даже тамошней яве.
Слишком много слоев. Моя батарея этого не выдержит.
Да бросьте вы. Зато теперь мне будет не лень набросать приложение для проверки счёта в моём банке, возможно.
> Слишком много слоев. Моя батарея этого не выдержит.Ну почему же много. Python там нативен (NDK) а не выполняется через Java. Один слой убрали, другой добавили.
цитата с описания NDK:"If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change.
Using native code does not result in an automatic performance increase, but always increases application complexity. If you have not run into any limitations using the Android framework APIs, you probably do not need the NDK."
Т.е. писать-то можно и на Си, вот только выполнятся код будет всё равно поверх виртуальной машины Android-а...
П.С. вообще, утомили эти "игла в яйце, яйцо в ларце...".
Из процитированного следует другое - насколько бы нативным не был код, чтобы стать андроидным приложением (а не просто бинарем где-то в дебрях системы) к нему нужна еще java-нашлепка. Сам же нативный код, как не странно, будет выполняться все же непосредственно на проце.
Хорошо если так. В принципе тогда получается можно писать код на Си/С++, нативно его запускать, дёргая из него только некоторые функции через прослойку на виртуальной машине. Т.е. в данной схеме практически будут нивелированы потери производительности на виртуальную машину андроида - так? А графика, звук - тоже нативно или через какую-нибудь буферизацию и протаскивание данных через виртуализацию?
Игрушки под андроид именно так и делают. Более того, в NDK доступны функции для создания activity (местное название «окна»), opengles и низкоуровневого ввода (мультитач и всякие сенсоры), то есть можно писать приложения (точнее игрушки) вообще без единой строчки на java.
> Игрушки под андроид именно так и делают. Более того, в NDK доступны
> функции для создания activity (местное название «окна»), opengles и низкоуровневого
> ввода (мультитач и всякие сенсоры), то есть можно писать приложения (точнее
> игрушки) вообще без единой строчки на java.Ну тогда вообще не так всё плохо и только сам разработчик решает - писать ли ему на джаве либо на Си. И это уж вопрос к разработчикам. К слову, в свете того, что всё равно все устройства на arm - проблемы многоплатформенности для таких приложений, как я понимаю, не возникает и в текущем положении Dalvik - это лишь java-машина для тех, кто любит писать на java. Или я утрирую и не всё так просто всё же?
Отличная новость! Обязательно будем пробовать!
И если.... То тогда мы свои питонячьи проекты в два счета перенесем на мобильную платформу уже нативно, а Obj-C (на яблоках) и жаба (на андроиде), с которым мы поневоле связывались, тихо отдохнут в стороне! Супер!
только Obj-C - генерит native код и он же выполняется в устройстве.
А это недоразумение опять же выполняется в виртуальной машине андроида, и так же будет жрать батарейку.
Хотя мисье наверно готов возить с собой чемодан батареек ?
Вроде русским по бэкграунду написано, что интерпретатор питона выполняется нативно.
> Вроде русским по бэкграунду написано, что интерпретатор питона выполняется нативно.Зато скриптоподелка в нем нифига не транслируется в нативные инструкции и интерпретируется по ходу дела. Так что поток команд в проц с полезной логикой густо разбавлен чисто техническим потоком команд самого интерпретера. Более того, выполнение интерпретера оказывается львиной долей всей работы проца. Именно поэтому все кого волновала скорость и ушли на компиляторы и/или jit. Но до питонистов как обычно...
>> Вроде русским по бэкграунду написано, что интерпретатор питона выполняется нативно.
> Зато скриптоподелка в нем нифига не транслируется в нативные инструкции и интерпретируется
> по ходу дела.И вы сходите почитайте что такое Cython.
Мсье прямо сегодня кодил в obj-c и с тоской вспоминал при этом зеленого друга.А еще мсье скажет, что более смешной языковой пародии чем obj-c он жизни не видел: попытка притянуть ухватки динамической типизации за уши в статически компилируемый си - просто эпик фэйл какой-то.
Самое забавное при этом, что умники из Купертино сделали это не за ради смены чемодана батареек на тонкий-претонкий чемоданчик рядовым пользователем "огрызка-мобайл", и даже не за ради того что бы программерам было удобно кодить, а исключительно за ради права закрыть исходные тексты, открыть за вместо очередной апстор и наварить лишний зелено-рубль!
И не смотря на все это находятся хм... анонимусы, готовые их носить на руках за это. Прилюдно.
Я наивно полагал, что если уж тебя поимели взрослые дяди, то кричать на форумах, что это, мол, была мечта всей твоей жизни - верх глупости, но видимо кто-то считает иначе. Мдя...
> зеленого друга.Это вы о питоне так? Зеленый змий? :))
Нет-нет! Это *любимый* зеленый змей. Мне действительно очень и очень нравится на нем писать.
> Нет-нет! Это *любимый* зеленый змей. Мне действительно очень и очень нравится на
> нем писать.Зато мне совершенно не нравится что в системе надо содержать три версии этого дерьма потому что они взаимно не совместимы. Очень доставляет.
>> Нет-нет! Это *любимый* зеленый змей. Мне действительно очень и очень нравится на
>> нем писать.
> Зато мне совершенно не нравится что в системе надо содержать три версии
> этого дерьма потому что они взаимно не совместимы. Очень доставляет.Восемнадцать версий. И кормиить их три раза в день - разве тебе ещё не доложили?
> Восемнадцать версий. И кормиить их три раза в день - разве тебе
> ещё не доложили?Греп говорит пока только про три. Но я подозреваю что питоновские #$даки и до 18 догонятся постепенно. По крайней мере, 3-я версия опять будет нифига не совместима с предыдущими. Суки.
>> Восемнадцать версий. И кормиить их три раза в день - разве тебе
>> ещё не доложили?
> Греп говорит пока только про три. Но я подозреваю что питоновские #$даки
> и до 18 догонятся постепенно. По крайней мере, 3-я версия опять
> будет нифига не совместима с предыдущими. Суки.А зачем ты их 3 держишь?
Да что тут не понятного?! Ну тренируется на досуге грипом искать питон на разделе. Доставляет... *LOL*
> Да что тут не понятного?! Ну тренируется на досуге грипом искать питон
> на разделе. Доставляет... *LOL*Может ему рассказать про симлинки?
попробовал поставить - недоделка. Kivy без cython'a не компилится, а cython'a нет в нем...
А теперь наивный вопрос: что мешает запустить питоновый скрипт, создать с его помощью окно, и отрендерить в этом окне, допустим, вебкитом html-страничку+скрипты того-же зеленого чая, а? Или если нужно что-то более серьезное - dojo?
> А теперь наивный вопрос: что мешает запустить питоновый скрипт, создать с его
> помощью окно, и отрендерить в этом окне, допустим, вебкитом html-страничкуА зачем все это на питоне, у которого интерпретер сам по себе хряпнет 30% свободной оперативки на девайсе? Чисто из принципа?
>> А теперь наивный вопрос: что мешает запустить питоновый скрипт, создать с его
>> помощью окно, и отрендерить в этом окне, допустим, вебкитом html-страничку
> А зачем все это на питоне, у которого интерпретер сам по себе
> хряпнет 30% свободной оперативки на девайсе? Чисто из принципа?30% оперативки? Откуда дровишики?
> 30% оперативки? Откуда дровишики?Top запущенный в телефоне. Отдельные несознательные личности просто заманали уже на н900 писать тривиальные аплеты на питоне. Аплет на 10 кило сишного кода у питонистов требует чуть ли не 20 Мб даунлоадов питонистого рантайма и легко жрет под 30М оперативы чисто за тот факт что их высочество изволило вывести свой сраный значок через мегавысокоуровневый фреймворк. А в магазин вы наверное летаете спецрейсом личного самолета. Иначе недостаточно пальцато.
>> 30% оперативки? Откуда дровишики?
> Top запущенный в телефоне. Отдельные несознательные личности просто заманали уже на н900
> писать тривиальные аплеты на питоне. Аплет на 10 кило сишного кода
> у питонистов требует чуть ли не 20 Мб даунлоадов питонистого рантайма
> и легко жрет под 30М оперативы чисто за тот факт что
> их высочество изволило вывести свой сраный значок через мегавысокоуровневый фреймворк.
> А в магазин вы наверное летаете спецрейсом личного самолета. Иначе недостаточно
> пальцато.В N900 256Мб ОЗУ, python кушает аж 2 Мб, т.е менее 1%, остается вопрос про 30%.
>> А теперь наивный вопрос: что мешает запустить питоновый скрипт, создать с его
>> помощью окно, и отрендерить в этом окне, допустим, вебкитом html-страничку
> А зачем все это на питоне, у которого интерпретер сам по себе
> хряпнет 30% свободной оперативки на девайсе? Чисто из принципа?Эй, дубинушка, утухни!
а теперь на напиши более-менее серьезное приложение, которое подгружает 5-10 либ, запусти его, и проверь еще раз
а то нашел чем хвастаться
> а теперь на напиши более-менее серьезное приложение, которое подгружает 5-10 либ, запусти
> его, и проверь еще раз
> а то нашел чем хвастатьсяОтвет на вопрос предполагает ответ на вопрос.
Если вы в припадке истерики кричите "питон сам выжирает 30% (от чего, кстати)", до будьте любезны уже от того, что вам и на этот вопрос ответили. Хотя и этого делать не стоило. Надо было сразу говорить про серьёзное приложение, которое что-то там ест. Хотя я и так скажу, что не ест, у меня даже на компьютере с 128 памяти было обычно несколько штук всего запущено, типа gajim - и ничего плохого с памятью не было.
> а теперь на напиши более-менее серьезное приложение, которое подгружает 5-10 либ, запусти
> его, и проверь еще раз
> а то нашел чем хвастатьсяВспоминаем халяльно-кошерно-православный язык Си, функции malloc() и free(), учим что такое сборщик мусора или он же гарбич-коллектор :
http://ru.wikipedia.org/wiki/%D0%A1%D0%B...И может быть тогда в воспаленном разуме мелькнет догадка, что если приложение на python занимает 200 мегабайт памяти, то это всего лишь означает что у вас есть еще парочка свободных гигабайт и поэтому сборщик мусора дядя Вася лениться выходить на работу.
>> А теперь наивный вопрос: что мешает запустить питоновый скрипт, создать с его
>> помощью окно, и отрендерить в этом окне, допустим, вебкитом html-страничку
> А зачем все это на питоне,Реализация слоя бизнес-логики на строго-типизованном ЯП.
>у которого интерпретер сам по себе
> хряпнет 30% свободной оперативки на девайсе? Чисто из принципа?Не смешите мои тапки!
Когда и на каком питоне это было? На 2.5? И что за девайс?
Девайсы иной раз... такие девайсы! Вот, кстати, на *девайсах* с Mac OS X Lion именно питон 2.5 по дефолту стоит, если не ошибаюсь.
> Реализация слоя бизнес-логики на строго-типизованном ЯП.Лол, как звучит то применительно к телефону. Вы еще мускуль не забудьте и апач. А лучше сразу постгр. Ну, чтобы дефолтный сетап сразу же и оставил хомяку 0 байтов свободной оперативки.
> Не смешите мои тапки!
Да чего их там смешить?
> Когда и на каком питоне это было? На 2.5? И что за девайс?
Ах да, если уж мы по поводу версий питона то надо добавить что они любят быть взаимно несовместимы. А на телефон вы, козлы, тоже будете по три копии интерпретеров разных версий таскать?
> Девайсы иной раз... такие девайсы! Вот, кстати, на *девайсах* с Mac OS
> X Lion именно питон 2.5 по дефолту стоит, если не ошибаюсь.Для начала на ифоне стоит иось, кстати эппл пытался страдать фигней с только хтмл приложеними но геймдевы и прочие быстро им мозг вправили в нужную сторону.
Вообще-то питоненависничество - это болезнь. Но! К счастью вполне излечимая. Есть хорошо зарекомендовавший себя метод: попробовать оплатить из собственного кармана разработку средненького жаба-приложения. И все глупые вопросы навеянные кривыми аплетами (написанные школьниками на досуге) моментально отпадают.И вообще вы видимо представляете себе планшет и телефон в основном как средство развлечения, я - как инструмент автоматизации бизнес-цепочек. А бизнес поверьте с тремя (а кстати почему это с тремя? насколько мне известно - две имеют место быть) версиями питона на харде смирится легко. Мирится же он с тремя (считая ибмовскую) версиями жабы!
> Ах да, если уж мы по поводу версий питона то надо добавить
> что они любят быть взаимно несовместимы.2х обратно совместима. 3x между собой совместима. Между третьей и второй промежуток небольшой, средняя программа даже руками правится за минуту другу, а есть и автоматизация.
> Интересно, а господа анонимы вообще слышали что такое Cython?Это такая пофигень, которая не совсем совместима с питоном (который и так не вполне совместим сам с собой и таскает по этому поводу в одной системе три версии, бл) и которая вечно недопилена. Подохните уже, халявщики? Сделайте одолжение, а? Один гемор от таких рапид-халтурщиков - потом такие поделия выколупывать заколебывает очень.
>> Интересно, а господа анонимы вообще слышали что такое Cython?
> Это такая пофигень, которая не совсем совместима с питоном (который и так
> не вполне совместим сам с собой и таскает по этому поводу
> в одной системе три версии, бл) и которая вечно недопиленаЭто такая штука которая генерит нативный код.
>. Подохните
> уже, халявщики? Сделайте одолжение, а? Один гемор от таких рапид-халтурщиков -
> потом такие поделия выколупывать заколебывает очень.Сам такой.
> Это такая штука которая генерит нативный код.Ага, только совместимость как обычно, с середины на половину. Поэтому от питоновых поделок вечно один батхерт. Через пару лет половина или не работает или пляски с бубном требует.
> Сам такой.
К счастью не такой. Халтурить - удел халтурщиков.
>> Это такая штука которая генерит нативный код.
> Ага, только совместимость как обычно, с середины на половину.Python -> Cypton полная совместимость, обратно нет, но и не требуется потому как
Cython -> бинарник.
>> Сам такой.
> К счастью не такой. Халтурить - удел халтурщиков.Даже и тут схалтурил.
> попробовал поставить - недоделка. Kivy без cython'a не компилится, а cython'a нет
> в нем...Ну что Вы как маленький:
sudo pip install kivyВсе само ставится.
Для кроскомпиленого python и kivy? Попробуйте собрать этот инструментарий
У меня собралось, в чём проблема?