Topic: [Android] sviluppare app installabili dal play store in py: è possibile?  (Letto 14039 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline billiejoex

  • python sapiens
  • *****
  • Post: 522
  • Punti reputazione: 1
    • Mostra profilo
Faccio una domanda un po' scontata ma sono un paio d'ore che giro e ancora non ho trovato risposta.
Avrei una mezza idea di cominciare a sviluppare un'app per Android, ovviamente in Python.

A riguardo so ancora molto poco (fino a un paio di mesi fa stavo ancora col nokia 3110 =)).
Ho dato una rapida occhiata in giro e ho capito che è sicuramente possible installare un interprete python su Adroid come componente separato.
Quello che non mi è chiaro è se è possibile sviluppare in python e distribuire il programma "finale" sul play store di modo che l'utente non debba installare l'interprete separatamente.

Per cui la mia domanda riguarda più che altro non la fattibilità di sviluppo di per sè, quanto la *distribuzione* di programmi scritti in py su Android.
E' possibile, di fatto, eguagliare Java sotto questo aspetto o Python rimane in qualche modo un cittadino di seconda classe?
Se si perchè (cosa manca)?

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Esiste Python for Android https://github.com/kivy/python-for-android/, che è un pezzo di Kivy http://kivy.org/. Dalla pagina del download di Kivy http://kivy.org/#download vedo ben tre link (!) di applicativi demo piazzati sull'Android market. Ne deduco che, in linea di principio, la cosa è fattibile. Ovviamente in pratica funziona che quando ti scarichi l'applicativo dal market, ti scarichi anche un.. piccolo pitone su misura... Ma Python preinstallato su Android non lo trovi, ahimè...

Offline Javatar

  • python neanderthalensis
  • ****
  • Post: 349
  • Punti reputazione: 0
    • Mostra profilo
    • La mia pagina su Github
Mi aggiungo con una domanda più specifica...
L'esecuzione di codice java avviene in una modalità processore privilegiata se non erro....
Python viene compilato in java per sfruttare questo o c'è dell'altro?

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Allora posto che io non so un tubo di sviluppo su Android (abbiamo solo dato qualche tesina, ma in Java)...

La mia esperienza personale sullo sviluppo con soluzioni "non ufficiali" e' che se conosci la piattaforma ufficiale e quella non ufficiale di solito non hai troppi problemi. Non sempre pero' guadagni davvero un mucchio di tempo.

In generale probabilmente risparmi tempo usando la soluzione nativa o qualcosa di molto vicino. Mi aspetto, per dire, che Scala se la cavi abbastanza bene.

Tornando a noi... Kivvy e' molto famoso. E' possibile che funzioni assolutamente benissimo e al primo colpo. A seconda di quanto astrae da android la cosa puo' essere un bene (conoscere Android non serve) o un male (devi conoscere Android, ma ti serve solo quando le cose vanno male). Non avendolo fatto, non so dirti.

Offline ubuntu_of_fortune

  • python sapiens
  • *
  • moderatore
  • Post: 745
  • Punti reputazione: 3
    • Mostra profilo
Forse questo talk@EuroPython2012 può tornarti utile! ;)

Offline Bakuriu

  • python sapiens sapiens
  • ******
  • Post: 2.267
  • Punti reputazione: 2
  • Katon, Goukakyuu no jutsu!
    • Mostra profilo
    • Jack's Blackboard - Il mio blog
Mi aggiungo con una domanda più specifica...
L'esecuzione di codice java avviene in una modalità processore privilegiata se non erro....
Python viene compilato in java per sfruttare questo o c'è dell'altro?

Python non viene compilato in Java bytecode a meno che tu non usi Jython(cosa che è fattibile, ma è solo incidentale a kivy).
Poi cosa tu intendi per "avviene in modalità processore privilegiata" non so. Sicuramente non viene eseguito tutto a livello kernel, altrimenti codice malevolo potrebbe fare di tutto e di più. So che android ha una lista abbastanza lunga di privilegi diversi, e quindi ha seconda di quale specifici il SO di dare alcuni privilegi, ma i privilegi li dà all'intera applicazione, quindi non centra il bytecode java rispetto all'interprete python: sono privilegi dell'intero processo.

Offline Python

  • python sapiens sapiens
  • ******
  • Post: 2.045
  • Punti reputazione: 2
  • Radon - Cyclomatic Complexity of your Python code
    • Mostra profilo
    • Radon - Cyclomatic Complexity of your Python code
Quando compili in apk l'applicazione Kivy con Python-For-Android puoi specificare tutti i privilegi che vuoi con un'opzione da linea di comando.

Offline Javatar

  • python neanderthalensis
  • ****
  • Post: 349
  • Punti reputazione: 0
    • Mostra profilo
    • La mia pagina su Github
Citazione
Poi cosa tu intendi per "avviene in modalità processore privilegiata" non so.
http://en.wikipedia.org/wiki/ARM_architecture
Parlavo di ARM non di android... Ma mi sono risposto da solo :
Citazione
Jazelle DBX (Direct Bytecode eXecution) is a technique that allows Java Bytecode to be executed directly in the ARM architecture as a third execution state (and instruction set) alongside the existing ARM and Thumb-mode. Support for this state is signified by the "J" in the ARMv5TEJ architecture, and in ARM9EJ-S and ARM7EJ-S core names. Support for this state is required starting in ARMv6 (except for the ARMv7-M profile), although newer cores only include a trivial implementation that provides no hardware acceleration.

Offline Greg75

  • python unicellularis
  • *
  • Post: 8
  • Punti reputazione: 0
    • Mostra profilo
Salve a tutti, ho scritto una app in python(ovviamente) usando sl4a e python installati sul mio tablet, per la grafica ho usato files xml. Ora non mi rimane che creare un apk, ma ho troppe incognite a riguado.
Per prima cosa, non ho capito quale è il modo migliore per farlo.
Secondo, la mia app per funzionare su un altro terminale avrà bisogno di sl4a e python installati?
Guardando in giro ho visto che eclipse puo farlo, peccato che io non abbia mai usato eclipse.
Qualcuno ha esperienza a riguardo?  ...HELP HELP HELP!

Offline Javatar

  • python neanderthalensis
  • ****
  • Post: 349
  • Punti reputazione: 0
    • Mostra profilo
    • La mia pagina su Github
Non so rispondere, ma ti consiglio di usare kivy e python-for-android :
http://kivy.org/docs/guide/packaging-android.html