2010-07-27 11 views
12

Ich bestellte gerade ein Android-Smartphone und möchte anfangen, mit dem Erschaffen meiner eigenen Anwendungen herumzuspielen. Nun stellt sich die Frage, welche Sprache verwendet werden soll, das native Java oder Python mit SL4A (ehemals ASE).Beginnend mit Android: Java oder Python (SL4A)

Ich tendiere zu Python, da ich es viel besser als Java kenne, aber ich frage mich, was ich vermisse, wenn ich eine "zweite Klasse" auf Android benutze. Auf der SL4A-Website wird auch gesagt, dass es sich um Alpha-Qualitätssoftware handelt, was nicht gerade ermutigend ist.

Ich bin mir auch nicht ganz sicher, was die Grenzen der Skriptumgebung sind und ob sie problematisch wären.

Antwort

16

Im Moment können Sie kein freigebbares Programm mit Python (oder einer anderen Skriptsprache) mit SL4A erstellen. Ich habe Gerüchte gehört, dass Google daran arbeitet, aber selbst wenn sie es aktivieren, sind Python-Anwendungen wahrscheinlich langsamer und leistungshungriger als Java. Außerdem können Sie mit der Skript-API nur auf eine begrenzte Teilmenge der nativen Java-API zugreifen. Ich würde SL4A im Moment nicht für ernsthafte Entwicklungsarbeiten, nur für einmalige Skripte und Prototyping, in Erwägung ziehen.

Werfen Sie einen Blick auf Scala. Es ist eine statisch typisierte Sprache in der JVM, verwendet jedoch die Typinferenz, um den größten Teil des Rauschens in Java zu entfernen. Es unterstützt auch die funktionale Programmierung und hat viele pythonische Funktionen. Da es statisch typisiert ist, ist es genauso effizient wie Java, ohne die Nachteile zu haben. IMHO ist es die Sprache, die Java in erster Linie hätte sein sollen.

Viele Leute bloggen über die Verwendung von Scala auf Android, so Google für weitere Informationen.

+1

Ich werde auf jeden Fall einen Blick auf Scala werfen, sollte interessant sein. –

+0

Hängt davon ab, wie Sie Ihr Programm programmieren. Wenn Sie ein erfahrener Python-Programmierer sind, sollten Sie sich dafür entscheiden, da es für die meisten (oder fast alle) Zwecke ausreichend schnell ist. Vermeiden Sie einfach Java, wann immer Sie können. – OTZ

+0

@otz: für normale Desktop-Programme würde ich Ihnen zustimmen, aber wie ich in meinem Beitrag (1) gesagt habe, gibt es derzeit keine Möglichkeit, ein Python-Skript in eine releasable Android-App zu verwandeln, (2) die SL4A Python-Implementierung gibt nicht Zugriff auf die vollständige Android-API und (3) auf einem Mobiltelefon Batterieverbrauch ist von größter Bedeutung. Eine dynamische Sprache wie Python wird mehr Saft verwenden als das Java oder Scala Äquivalent. –

2

Wahrscheinlicher wird davon abhängen, welche Art von Anwendungen Sie entwickeln werden.

Ich würde mit Java beginnen, um mit Android SDK vertraut zu werden. Wie auch immer, zuerst müssen Sie sich einige Beispiele und Tutorials ansehen. Die meisten von ihnen sind in Java gemacht, und nur ein paar, wahrscheinlich auf der Dev-Seite von SL4A dafür.

Auch gibt es native Entwicklung Android NDK, die mit C++ programmiert werden kann.

Aber sowieso Java-Regeln für allgemeine Anwendungen.

+0

Ich habe nicht über Tutorials/Dokumentation nachgedacht, das ist ein guter Punkt. Also sollte ich sowieso in Java anfangen, egal welche Sprache ich am Ende benutze. –

2

Hinzufügen von Update zu Dave Kirby Antwort:

Issue 55, Distribute scripts as APKs im Bugtracker bei SL4A befasst sich speziell mit diesem.

Es wird eine Lösung ausgearbeitet (die möglicherweise bereits abgeschlossen ist), die unter SharingScripts beschrieben wird. Das einzige Problem scheint zu sein, dass Sie eine Interpreter APK bereits installiert haben müssen.

1

möchten Sie vielleicht Ruboto es ist ein Framework für die Entwicklung von Android-Apps auf JRuby basiert, was bedeutet, dass Ihr JRuby-Code Android-APIs aufrufen kann und auch von der Android-Java-Seite aufgerufen werden kann. Here ist ein Einführungsartikel.

1

Betrachten Sie Kivy, wenn Sie Android-Apps mit Python schreiben möchten. Der Prozess des Packen von Skript zu .apk-Datei wird here beschrieben.

Das Problem ist, resultierende .apk wird groß sein (~ 7 MB für 300 KB Daten). Es ist offensichtlich, weil Sie dort Python-Laufzeit und alle Bibliotheken packen müssen.

Eine andere Lösung, die ich gehört habe, ist Pygame for Android, aber es funktioniert auf niedriger lewel, so dass Sie Grafiken manuell zeichnen müssen.

Leider habe ich noch keine dieser Möglichkeiten ausprobiert, aber es sieht so aus, dass ich bald anfangen werde, kivy zu benutzen.

Verwandte Themen