Альтернативы Java на андроиде

Я просто вовлек себя телефон на базе Android, и я умираю, чтобы начать кодировать на нем! Однако я не крупный поклонник Java, хотя я могу жить, с которым, я хотел бы знать, существуют ли разумные альтернативы для виртуальной машины андроида. Я сделал проект среднего размера с помощью clojure, однако от обзоров, которые я считал, это очень медленно при работе андроида. Как насчет scala? Я считал, что некоторые люди сделали эксперименты с ним в андроиде, это "достаточно быстро"? Насколько большой кривая обучения?

С наилучшими пожеланиями, Ze Maria

12
задан user361526 14 May 2010 в 08:28
поделиться

6 ответов

Это: Программирование на Scala для Android кажется интересным.

5
ответ дан 2 December 2019 в 19:30
поделиться

Существует NDK, который позволяет вам писать частей вашей программы на C или C ++.

Существует ASE, позволяющая писать скрипты на python и, возможно, на других языках. Компилятора python не существует, хотя вы могли слышать иное.

Я кое-что читал о scala, но, поскольку мне это было неинтересно, я не обратил внимания.

4
ответ дан 2 December 2019 в 19:30
поделиться

Определенно, существует довольно много людей, занимающихся разработкой Android на Scala. Особо следует отметить, что существует даже плагин для SBT, предпочтительного конструктора проектов на Scala, со специфичными для Android целями.

Что касается кривой обучения, я не могу говорить о самой разработке Android, поскольку не занимался этим. Что касается Scala, вы можете стать продуктивным очень быстро, но изучение всех особенностей языка требует времени. Вам не нужно изучать все особенности - я видел людей, которые писали неигрушечные программы, не имея почти никакого опыта - но некоторые люди не выносят незнания чего-то о языке, который они используют.

Кроме того, многие программы на Scala очень декларативны. Если вы посмотрите на файлы сборки SBT, например, они в основном декларативны. Некоторых людей это почему-то очень расстраивает.

Думаю, я пытаюсь сказать, что в основном от вас зависит, насколько хорошо вы воспримете Scala.

Что касается скорости, код на Scala может быть таким же быстрым, как код на Java, хотя это может потребовать отказа от более высокоуровневых абстракций в обмен на более уродливый, но быстрый код. Однако это во многом зависит от того, какой тип вычислений вы выполняете.

4
ответ дан 2 December 2019 в 19:30
поделиться

Android 2.2 добавляет jit в VM, что должно сделать загрузку программ на Clojure гораздо более эффективной. Clojure производит много маленьких классов, которые требуют времени для загрузки при запуске программы android. это должно быть облегчено в enw android, хотя и сейчас это не является невыносимым.

3
ответ дан 2 December 2019 в 19:30
поделиться

Только что заметил, что некоторые примеры на Scala можно найти в trunk: http://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/docs/android-examples.

Сам не пробовал, но это обнадеживает.

1
ответ дан 2 December 2019 в 19:30
поделиться
​​

«достаточно быстро» - вы запускаете на мобильном телефоне приложения, которые задают вопрос относительно того, что вы от них ожидаете.

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

У них есть NDK, но я считаю, что у вас все еще должен быть внешний интерфейс Java, и ваш Java-код должен вызывать код NDK, когда это необходимо. Вы в значительной степени хотите писать собственный код только тогда, когда вам действительно нужна оптимизация. Многие классы java, такие как java nio и классы opengl, являются просто оболочками для вызовов низкого уровня, которые напрямую используют аппаратные ресурсы.

Я, наверное, немного ответил на ваш вопрос.

0
ответ дан 2 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: