2010-07-27 3 views
12

Я только что заказал Android-смартфон и хочу начать играть с созданием собственных приложений. Теперь вопрос заключается в том, какой язык использовать, родной Java или Python с использованием SL4A (бывший ASE).Начиная с Android: Java или Python (SL4A)

Я склонен к Python, так как я знаю это намного лучше, чем Java, но мне интересно, чего бы мне не хватало, используя язык «второго класса» на Android. На веб-сайте SL4A также говорится, что это программное обеспечение для альфа-качества, что не совсем обнадеживает.

Я также не совсем уверен, каковы ограничения среды сценариев и если они будут проблематичными.

ответ

16

На данный момент вы не можете создать программу для разблокировки с помощью Python (или любого другого языка сценариев) с использованием SL4A. Я слышал слухи о том, что это то, над чем работает Google, но даже если они действительно позволяют это, приложения Python, вероятно, будут медленными и энергоемкими по сравнению с Java. Также API-интерфейс сценариев дает вам доступ к ограниченному подмножеству собственного Java API. Я бы не стал использовать SL4A для серьезных разработок на данный момент, только для одноразовых скриптов и прототипов.

Посмотрите на Scala. Это статически типизированный язык на JVM, но использует вывод типа для удаления большей части шума, который вы получаете на Java. Он также полностью поддерживает функциональное программирование и обладает множеством питонистических функций. Поскольку он статически типизирован, он так же эффективен, как и прямая Java без каких-либо недостатков. ИМХО это язык, на котором должна была быть Java.

Многие люди ведут блог об использовании Scala на Android, поэтому Google для получения дополнительной информации.

+1

Я обязательно посмотрю на Скала, должно быть интересно. –

+0

Зависит от того, как вы кодируете свою программу. Если вы опытный программист на Python, пойдите для него, поскольку он достаточно быстро для большинства (или почти всех) целей. Просто избегайте Java, когда можете. – OTZ

+0

@otz: для обычных настольных программ я бы согласился с вами, но, как я сказал в своем сообщении (1), в настоящее время нет способа превратить скрипт python в распространяемое приложение для Android, (2) реализация SL4A Python не дает доступ к полному API Android и (3) при использовании аккумулятора мобильного телефона имеет первостепенное значение. Динамический язык, такой как python, будет использовать больше сока, чем эквивалент Java или Scala. –

2

Скорее всего это будет зависеть от того, какие приложения вы будете разрабатывать.

Я бы начал с Java, чтобы ознакомиться с Android SDK. В любом случае сначала вам нужно изучить некоторые примеры, учебные пособия. Большинство из них выполняются на Java, и лишь немногие, возможно, на сайте Dev SL4A.

Также есть встроенный Android NDK, который можно запрограммировать с помощью C++.

Но в любом случае правила Java для общих приложений.

+0

Я не думал о учебниках/документации, это хороший момент. Поэтому я, вероятно, должен начинать с Java в любом случае, независимо от того, какой язык я использую в конце. –

2

Добавление обновления в ответ Дэйва Кирби:

Issue 55, Distribute scripts as APKs, в системе отслеживания проблем в SL4A сделок конкретно с этим.

Существует решение, которое разрабатывается (может быть завершено к настоящему времени), описанное в SharingScripts. Единственная проблема заключается в том, что вам нужно установить уже установленный APK-интерпретатор.

1

Возможно, вы захотите зарегистрироваться Ruboto - это платформа для разработки приложений Android на базе JRuby, что означает, что ваш JRuby-код может вызывать Android API, а также может быть вызван с Android-платформы Java. Here - описание товара.

1

Рассмотрите возможность использования Kivy, если вы хотите написать приложения для Android с помощью Python. Процесс сценария упаковки в файл .apk описан here.

Проблема в том, что в результате .apk будет большой (~ 7Mb для данных 300 КБ). Это очевидно, потому что вам нужно собрать там время выполнения Python и все библиотеки.

Другое решение, о котором я слышал, это Pygame for Android, но он работает на нижнем уровне, поэтому вам нужно рисовать графику вручную.

К сожалению, я еще не пробовал ни одного из этих способов, но, похоже, я скоро начну использовать kivy.

Смежные вопросы