Подтвердить что ты не робот

Альтернативы java для Android

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

Cheers, Зе Мария

4b9b3361

Ответ 2

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

Здесь ASE позволяет писать сценарии на python и, возможно, на других языках. Нет никакого компилятора python, несмотря на то, что вы могли бы услышать в противном случае.

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

Ответ 3

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

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

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

Я предполагаю, что я пытаюсь сказать, что это зависит в основном от того, насколько хорошо вы перейдете к Scala.

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

Ответ 4

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

Ответ 6

Там также порт JRuby для Android, с которым я играл, и кажется интересным. http://ruboto.org/

Ответ 7

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

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

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

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

Ответ 8

Существует также Lua, который вы можете использовать с SDK Corona.