2010-07-27 21 views
12

Właśnie zamówiłem smartfon z Androidem i chcę zacząć bawić się przy tworzeniu własnych aplikacji. Teraz pytanie brzmi, który język używać, natywna Java lub Python za pomocą SL4A (dawniej ASE).Począwszy od Androida: Java lub Python (SL4A)

Mam tendencję do Pythona, ponieważ wiem o wiele lepiej niż Java, ale zastanawiam się, czego bym nie zauważył używając "drugiej klasy" języka na Androida. Na stronie internetowej SL4A jest również napisane oprogramowanie o jakości alpha, co nie jest zachęcające.

Nie jestem również całkiem pewien, jakie są ograniczenia środowiska skryptowego i czy byłyby problematyczne.

Odpowiedz

16

W tej chwili nie można utworzyć programu z Pythonem (ani żadnym innym językiem skryptowym) za pomocą SL4A. Słyszałem pogłoski, że to jest coś, nad czym pracuje Google, ale nawet jeśli umożliwiają to aplikacje Pythona prawdopodobnie będą wolne i żądne władzy w porównaniu z Javą. Skryptowy interfejs API daje dostęp tylko do ograniczonego podzbioru natywnego interfejsu API języka Java. Nie rozważałbym używania SL4A do poważnych prac rozwojowych w tej chwili, tylko dla jednorazowych skryptów i prototypowania.

Spójrz na Scala. Jest to język statycznie wpisany na maszynie JVM, ale wykorzystuje typ wnioskowania w celu usunięcia większości szumów, które występują w Javie. W pełni obsługuje również funkcjonalne programowanie i ma wiele pythonistycznych funkcji. Ponieważ jest statycznie napisany, jest tak samo wydajny jak prosta Java bez żadnych wad. IMHO jest językiem, który Java powinna być na pierwszym miejscu.

Wiele osób pisze blogi na temat używania Scala na Androida, więc Google w poszukiwaniu dodatkowych informacji.

+1

Na pewno przyjrzę się Scali, powinny być interesujące. –

+0

Zależy od sposobu zakodowania programu. Jeśli jesteś doświadczonym programistą Pythona, przejdź do niego, ponieważ jest wystarczająco szybki dla większości (lub prawie wszystkich) celów. Po prostu unikaj Javy, kiedy tylko możesz. – OTZ

+0

@otz: dla zwykłych programów komputerowych chciałbym się z tobą zgodzić, ale jak już powiedziałem w moim poście (1) nie ma obecnie sposobu na przekształcenie skryptu Pythona w zwalnianą aplikację dla systemu Android, (2) implementacja Pythona SL4A nie daje dostęp do pełnego API Android i (3) na baterii telefonu komórkowego jest najważniejsza. Dynamiczny język, taki jak Python, użyje więcej soku niż odpowiednik Java lub Scala. –

2

Prawdopodobnie zależy to od rodzaju aplikacji, które będą rozwijane.

Zacznę od Javy, aby zapoznać się z pakietem SDK systemu Android. W każdym razie najpierw zajrzyj do przykładów, tutoriali. Większość z nich jest wykonywana w Javie i tylko kilka, prawdopodobnie na stronie dev firmy SL4A.

Jest też natywny program Android NDK, który można zaprogramować za pomocą C++.

Ale tak czy inaczej zasady Java dla ogólnych aplikacji.

+0

Nie myślałem o tutorialach/dokumentacji, to dobry punkt. Prawdopodobnie powinienem zacząć w Javie, niezależnie od tego, jakiego języka używam na końcu. –

2

Dodawanie aktualizację odpowiedź Dave Kirby:

Issue 55, Distribute scripts as APKs w trackerze emisyjnej na okazje SL4A specjalnie z tego.

Istnieje rozwiązanie opracowywane (może być już ukończone) opisane pod numerem SharingScripts. Wydaje się, że jedynym problemem jest to, że musisz mieć zainstalowany już interpreter APK.

1

możesz sprawdzić pod numerem Ruboto jest to framework do tworzenia aplikacji na Androida opartych na JRuby, co oznacza, że ​​Twój kod JRuby może wywoływać interfejsy API Androida i może być również wywołany od strony Java w systemie Android. Here to artykuł wprowadzający.

1

Zastanów się, czy chcesz napisać aplikacje na Androida w języku Python. Proces pakowania skryptu do pliku .apk jest opisany here.

Problem polega na tym, że wynikowy plik .ap będzie duży (~ 7Mb dla danych 300Kb). Jest to oczywiste, ponieważ musisz spakować tam środowisko uruchomieniowe Python i wszystkie biblioteki.

Innym rozwiązaniem, o którym słyszałem, jest Pygame for Android, ale działa na dolnym lewelu, więc musisz narysować grafikę ręcznie.

Niestety, nie próbowałem jeszcze żadnego z tych sposobów, ale wygląda na to, że wkrótce zacznę używać kivy.

Powiązane problemy