Toolkit maakt Android-apk's van Python-scripts

Ontwikkelaars hebben een opensource-toolkit gepresenteerd die een Python-script kan omzetten in een Android-apk. Nog niet alle Python-modules worden ondersteund en de tool werkt vooralsnog alleen met de Kivy-ontwikkeltoolkit.

Met Python for Android kunnen ontwikkelaars Python-scripts relatief eenvoudig omzetten in een Android-apk. De tool werkt alleen nog maar met applicaties die in de Kivy-ontwikkelomgeving zijn gemaakt, maar volgens een ontwikkelaar van de toolkit, die zelf aan Kivy meewerkt, is de broncode aan te passen zodat ook andere ontwikkelframeworks worden ondersteund.

De toolkit ondersteunt een aantal Python-modules, waaronder sqlite3, pygame, ffmpeg en openssl. Als een apk die met de toolkit is gegenereerd wordt uitgevoerd, worden de scripts uitgepakt en wordt de OpenGL ES 2.0-api voor embedded systemen gebruikt om objecten op het scherm te tekenen.

De toolkit is enkel nog getest onder Ubuntu 11.10, maar zou ook op andere X-omgevingen moeten draaien. Er zijn al meer toolkits om Python-scripts op Android te draaien, waaronder van Google zelf, maar die maakten het nog niet mogelijk om het hele script in één, zichzelf uitpakkende apk te bundelen.

Door Joost Schellevis

Redacteur

10-01-2012 • 11:53

27

Reacties (27)

27
27
18
3
0
2
Wijzig sortering
Python for Android. Leuk. Maar dankzij SL4A kunnen we Python, Perl, JRuby, Lua, BeanShell, JavaScript en Tcl scripts op Android apparaten draaien.
Da's pas fijn, toch?

Wil je dat zelf eens proberen, check dan:
http://jokar-johnk.blogsp...ndroid-app-with-sl4a.html
http://developer.android....cts/projects-eclipse.html
en
http://groups.google.com/group/android-scripting?pli=1

Lees ook deze eens:
http://android-scripting....Ch05_Introducing_SL4A.pdf
http://android-scripting....ging_and_Distributing.pdf

[Reactie gewijzigd door mrlammers op 23 juli 2024 04:05]

SL4A is leuk, maar ik vind Kivy een stuk leuker.
Zo makkelijk om mooie user interfaces te maken en makkelijk APK's van te maken.

Als je iemand een python script wil geven moet hij dan eerst SL4A en Python voor android gaan installeren, met kivy maak je er een apktje van en klaar.
Voor SL4A moet je als gebruiker SL4A installeren op de tablet/telefoon. Dat kan je script dan aanroepen. Maar niet alleen jouw script, elk programma kan dat doen. En voor de zekerheid heeft SL4A alle denkbare vrijheden die je nodig zou kunnen hebben.

Hoezo veiligheids risico?

Doe mij maar zoiets als kivy dan. Eens kijken of het wat is. Dan kan ik weer eens iets in de market zetten.. :)
Anoniem: 151857 10 januari 2012 11:58
Awesome! Java is niet voor een prutser als mijzelf weggelegd. Python daarintegen is een supersimpel taaltje om te leren voor een paar niet al te moeilijke taken. +1
Awesome! Java is niet voor een prutser als mijzelf weggelegd. Python daarintegen is een supersimpel taaltje om te leren voor een paar niet al te moeilijke taken. +1
Pardon? Python is een geavanceerde high-level taal met een groot aantal ingebouwde functies en klassen. Ik zou het in ieder geval niet als een "supersimpel taaltje" willen classificeren...
Nou is hier enige nuance op z'n plek. Python is een taal die inderdaad bijzonder krachtig kan zijn, maar ook eenvoudig om te leren. De zen of python geeft goed de ideeën erachter weer, en geeft aan waarom het door eenvoudig te zijn niet hoeft in te leveren op kracht.
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Uiteraard komt altijd als het gaat over Python weer de discussie over interpreted vs compiled talen, en inderdaad is de performance van Python niet die van C# enz. . Perf. critical dingen kunnen in C geschreven worden en eenvoudig gelinked naar pyton. Zie bijvoorbeeld Cython

Dat Python gebruikt kan worden voor serieuze software is ook op tal van wijzen te zien:
Large organizations that make use of Python include Google,[45] Yahoo!,[46] CERN,[47] NASA,[48] ILM,[49] and ITA.
EVE online is gedeeltelijk geschreven in Python, Frets on Fire (en afgeleide FoFiX ) (wat beiden pc clones van guitar hero zijn, zijn geschreven in python.

[Reactie gewijzigd door afraca op 23 juli 2024 04:05]

Although that way may not be obvious at first unless you're Dutch.
Iemand enig idee waar dit vandaan komt? :P

Ontopic: mooie ontwikkeling. :) Het ondersteunen van een extra programmeertaal betekent dat er een groep getalenteerde developers bij komt die in hun favoriete taal apps kunnen ontwikkelen voor Android.

Ik hoop wel dat er gebruik gemaakt wordt van de default android UI-api's, en er niet een eigen widget library oid wordt gebruikt via OpenGL. UI Consistency is namelijk wel belangrijk voor Android in de strijd tegen iOS.
Hier wordt verwezen naar de BDFL van python Guido van Rossum (een nederlander).
Volgens mij niet,

Is het niet gewoon omdat het door een nederlander geschreven is (Tim Peters), en dat er in het nederlands veel ambiguiteiten zitten?
Vergeet niet Battlefield 2, 2142 en andere games op die engines
Python is een duidelijke en logische taal vandaar dat de meeste mensen het simpel noemen, het is ook een uitstekende taal voor beginnende programmeurs.
Ik denk dat hij bedoeld: Simpel, in de zin van niet moeilijk.
Als dat de reden is om dit te gebruiken dan zou ik je aanraden om dit beter links te laten liggen.
En niet eens omwille van Python (wat ik ook erg fijn vind werken), maar gewoon omdat je beter kunt verdiepen in een platform i.p.v. "even prutsen". Daar win je meer mee.

@i-chat: ik werk veel in Python, vind het ook een fijne taal. Het gaat mij niet om Python/Java/C++, maar of je "even gaat prutsen" of dat je met aandacht een platform leert. Of dat nu Python is of Java maakt niet uit.

[Reactie gewijzigd door YaPP op 23 juli 2024 04:05]

want, omdat je je niet kunt / wilt verdiepen in weer een andere taal, maakt dat je geen goede apps kunt bouwen? neem bijv die gast die de treintijden app bouwde toen de ns dat zelf nog niet deed, python is een vrij goede taal op software mee te bouwen, en als je dat toevallig goed kent, en je nu de mogelijkheid hebt die kennis te gebruiken voor een tooltje dat ook onder android werkt, waarom niet, een goede app bouw je met de beperkingen van de omgeving in je achterhoofd,

als ik jouw redenatie doortrek zijn alle C++ aplicaties per defenitie beter dan alle php scripts, en dat is ECHT niet zo...
_/-\o_ Nee, want we nemen onszelf zo super serieus.
Een beetje prutsen/klooien of wat dan ook gebruik ik ook wel om e.e.a. simpel/eenvoudig te laten overkomen.
Nee, we moeten vooral zeggen dat het ontiegelijk ingewikkeld is allemaal met héééééle stijle leercurven. |:(
Hoe moet ik me dit dan voorstellen qua ervaring voor de gebruiker? Of zou dit bedoelt zijn voor achtergrond services zonder (G)UI? Kan ik niet 123 uit de beschrijving halen of op de bron site vinden.
Als een apk die met de toolkit is gegenereerd wordt uitgevoerd, worden de scripts uitgepakt en wordt de OpenGL ES 2.0-api voor embedded systemen gebruikt om objecten op het scherm te tekenen.
Je zou gewoon elke willekeurige app kunnen nabootsen volgens mij (mits je modules gebruikt die nog niet aanwezig zijn)
Maar waarom zou je Python boven java verkiezen als er toch voor kiest om iets voor android te maken? Ik kan me niet voorstellen dat dat alleen maar is omdat Python "makkelijker" is dan java?
Bestaande applicaties gebouwd op Kivy's framework eenvoudig(er) porten naar Android. Daarnaast voor mensen die al eenvoudigweg bekend zijn met Python en zo aardig wat uurtjes kunnen besparen. Een taal leren doe je sneller als je andere talen kent, maar desalniettemin is het ervaring die je moet hebben voor je weet waar je mee bezig bent.

[Reactie gewijzigd door afraca op 23 juli 2024 04:05]

Maar, draai je hiermee een Python runtime vanuit die APK, of wordt de Python-code gecompileerd naar Dalvik-code?
Apart dat hier in het artikel en op github staat dat pygame werkt, maar in de aankondigings post staat dat het onmogelijk is om pygame te laten werken...
Ik heb al een klein appje geschreven met Kivy, op hun website staat al een ruime tijd een apk packaging tool, die het overigens prima doet.
Vind het alleen jammer dat al mijn files gewoon uitgepakt worden op de sd kaart, zou mooier zijn als dat niet hoefde.
Anoniem: 440115 10 januari 2012 13:41
Ik ontwikkel momenteel mee aan het project kivy, met name op android vlak. Het mooie van kivy is:
- Eenmalig ontwikkelen, overal draaien (linux, windows, mac, android en apple IOS)
- Python: daarmee kan je snel ontwikkelen, sneller dan java, c++ en objective-c
- Eenvoudig je UI voorzien van animaties
ik heb al eens een app gemaakt met java. nu zal ik python is proberen. ik vind python sowieso fijner programmeren
Anoniem: 381570 10 januari 2012 12:04
Ik ben zelf bezig met python en dit opent veel mogenlijkheden, Ik ga het maar eens proberen!

Op dit item kan niet meer gereageerd worden.