2010-07-27 11 views
12

Ho appena ordinato uno smartphone Android e voglio iniziare a giocare con la creazione delle mie applicazioni. Ora la domanda è quale linguaggio usare, il nativo Java o Python usando SL4A (ex ASE).A partire da Android: Java o Python (SL4A)

Tendo a Python, perché lo conosco molto meglio di Java, ma mi chiedo cosa mi mancherebbe usare una lingua di "seconda classe" su Android. Sul sito Web SL4A è anche indicato che si tratta di un software di qualità Alpha, che non è esattamente incoraggiante.

Non sono nemmeno sicuro di quali siano le limitazioni dell'ambiente di scripting e se siano problematiche.

risposta

16

Al momento non è possibile creare un programma rilasciabile con Python (o con qualsiasi altro linguaggio di scripting) utilizzando SL4A. Ho sentito dire che questo è qualcosa su cui Google sta lavorando, ma anche se lo consentono, le app di Python rischiano di essere lente e assetate di energia rispetto a Java. Inoltre, l'API di scripting consente solo l'accesso a un sottoinsieme limitato dell'API Java nativa. Non prenderei in considerazione l'utilizzo di SL4A per il lavoro di sviluppo serio al momento, solo per script e prototipazione one-off.

Dai uno sguardo allo Scala. È un linguaggio tipizzato staticamente sulla JVM, ma utilizza l'inferenza di tipo per rimuovere la maggior parte del rumore che si ottiene in Java. Supporta anche pienamente la programmazione funzionale e ha molte funzioni pitone. Poiché è tipizzato in modo statico, è efficiente quanto Java semplice e privo di svantaggi. IMHO è la lingua che Java avrebbe dovuto essere in primo luogo.

Un sacco di persone usano il blog su Scala su Android, quindi Google è in giro per ulteriori informazioni.

+1

Darò sicuramente un'occhiata a Scala, dovrebbe essere interessante. –

+0

Dipende da come si codifica il programma. Se sei un programmatore Python esperto, prova a farlo, poiché è sufficientemente veloce per la maggior parte (o quasi) degli scopi. Basta evitare Java ogni volta che puoi. – OTZ

+0

@otz: per i normali programmi desktop sono d'accordo con te, ma come ho detto nel mio post (1) non c'è attualmente modo di trasformare uno script python in un'app Android rilasciabile, (2) l'implementazione di Python SL4A non dà l'accesso all'API Android completa e (3) sull'utilizzo della batteria del telefono cellulare è fondamentale. Un linguaggio dinamico come Python userà più succo rispetto all'equivalente Java o Scala. –

2

Molto probabilmente dipenderà dal tipo di applicazioni che verranno sviluppate.

Vorrei iniziare con Java per familiarizzare con Android SDK. Comunque prima devi esaminare alcuni esempi, tutorial. Molti di questi sono fatti in Java, e solo pochi, probabilmente sul sito di sviluppo di SL4A.

Inoltre, è disponibile Android NDK di sviluppo nativo, che può essere programmato con C++.

Ma comunque regole Java per applicazioni generali.

+0

Non ho pensato a tutorial/documentazione, questo è un buon punto. Quindi probabilmente dovrei iniziare in Java comunque, indipendentemente dalla lingua che uso alla fine. –

2

Aggiunta di un aggiornamento per la risposta di Dave Kirby:

Issue 55, Distribute scripts as APKs, nel tracker questione a offerte SL4A specificamente con quella.

È in corso una soluzione (che potrebbe essere completa) descritta in SharingScripts. L'unico problema sembra essere che è necessario avere un APK dell'interprete già installato.

1

si consiglia di verificare Ruboto è un framework per lo sviluppo di app Android basate su JRuby che significa che il tuo codice JRuby può chiamare API Android e può anche essere richiamato dal lato Android Java. Here è un articolo introduttivo.

1

Considerare Kivy, se si desidera scrivere app Android con Python. Il processo di compressione dello script nel file .apk è descritto con here.

Il problema è, risultato .apk sarà grande (~ 7Mb per dati 300Kb). È ovvio, perché è necessario mettere in valigia il runtime Python e tutte le librerie.

Un'altra soluzione di cui ho sentito parlare è Pygame for Android, ma funziona su lower lewel, quindi è necessario disegnare la grafica manualmente.

Sfortunatamente, non ho ancora provato nessuno di questi modi, ma sembra che inizierò a usare presto kivy.

Problemi correlati