Робот без кофеина

    В последнее время на конференциях всё чаще обсуждается тема, как создавать приложения под Android на различных языках программирования, кроме Java.

    Android — пусть и не идеальная, но для прагматического разработчика самая лучшая мобильная платформа для open source проектов. Но все приложения бегут под Dalvik VM, так что вам любом случае придётся иметь дело с окружением Java.



    Что если вы не хотите иметь дело с Java, но при это писать мобильные приложения для Android? В этом случае возможны различные варианты:
    У каждого из подходов есть свои преимущества и недостатки. Из всего перечисленного самыми реальными способами считаются веб-приложения, кросс-платформенные средства разработки, Scala и NDK.

    В качестве дополнительного изучения можно порекомендовать подробную статью Python for Android, только что опубликованную в Linux Journal.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 25

      +2
      monodroid забыли. может ещё что-то есть
        0
        ok, добавил «небесплатные альтернативы»
        +10
        > У каждого из подходов есть свои преимущества и недостатки.

        ИМХО, самое полезное было бы, если бы вы перечислили эти преимущества и недостатки )
          –1
          NDK не позволяет осуществлять доступ к элементам API Android, насколько мне известно
            0
            На NDK стоит реализовывать узкие места, критические к производительности. Если использовать его как панацею, то производительность может даже упасть.
              0
              Да, и в контексте текущего поста, его стоит убрать, т.к. писать все-равно придется на Java.
                0
                Вы не сможете использовать его как панацею, привет. NDK — это прослойка между сями и джавой, возможность вызывать ф-ии на C++ из-под Java. И производительность не упадет, сложно представить, что такое можно написать на C++, что бы упала производительность. Но из-под C++ кода вы не сможете вызывать даже ф-ии Java из своего приложения так просто.
                  0
                  Матчасть…
                  «The Android NDK is a companion tool to the Android SDK that lets you build performance-critical portions of your apps in native code. It provides headers and libraries that allow you to build activities, handle user input, use hardware sensors, access application resources, and more, when programming in C or C++. If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change.

                  Using native code does not result in an automatic performance increase, but always increases application complexity. If you have not run into any limitations using the Android framework APIs, you probably do not need the NDK. Read What is the NDK? for more information about what the NDK offers and whether it will be useful to you.»

                  via developer.android.com
                    0
                    Может я чего-то не понимаю, но не нашел противоречий своим словам. marakana.com/forums/android/examples/49.html — хорошая диаграмма, показывающая, где находится С-шный код
                      0
                      Кэп уже выдохся, но в последний раз намекнет, что «Using native code does not result in an automatic performance increase». Не факт, что код, который вы сможете написать будет работать быстрее. Конечно, если вы знаете С++ на 100%, то флаг вам в руки.
                        0
                        Фраза довольно абстрактная, уверен что ее туда вписали, что бы не начинали ныть «какой Java медленный». Простой перебор массива базовых типов в цикле на сях происходит в 3-4 раза быстрее чем на джаве, и такие 95% случаев использования NDK.
                          0
                          да, вот только большинство программ под мобильные девайсы не имеют ничего общего с вычислениями. По статистике моих проектов, чуть ли не 90 процентов работы и кода заключаются в создании красивых GUI и написании обработчиков для них. А если писать гуй на NDK, то кроме невероятной потери времени, можно с легкостью накосячить в симуляции жавы на плюсах и таки наколбасить код, который будет работать и медленней, и хуже.
                            0
                            Разве я где-то опроверг ваше утверждение? Наоборот.
              +2
              >Adobe AIR
              а почему он относится к небесплатным альтернативам?
                0
                несвободные?
                  0
                  В таком случае так и пишите, «несвободная альтернатива», а то как-то запутанно получается.
                +1
                Бейсик забыли!
                Приложение BASIC! позволяет создавать программы для Android на языке Бейсик.
                Оно бесплатно и есть в маркете.
                http: // laughton.com / basic
                GPL.
                  +3
                  Но все приложения бегут под Dalvik VM, так что вам в любом случае придётся иметь дело с окружением Java.Мне кажется эта фраза как бы намекает — пишите под Android на Java, не надо костылей.
                    0
                    NDK, например, совсем даже не костыль.
                      +1
                      Это NDK-то не костыль. Вы пробовали? Все в конечном счете сводится к тому что для того что бы обращаться к различным возможностям системы (а как правило к ним приходится обращаться часто в серьезном приложении) приходится вызывать Java код, что делать при помощи JNI крайне утомительно.
                      Единственное где оно оставляет более менее приятные ощущения это разработка игр, где в общем-то все что нужно это рисовать на OpenGL Surface
                        0
                        Ну речь как-бы об альтернативе, а она почти всегда уступает оригиналу. Но по крайней мере NDK достаточно стабилен + поддерживается производителем.
                    0
                    Для 2.3 Android можно вообще на чистом C/C++ писать приложения через NativeActivity. Ну и Render Script.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Вот кстати интересно Qt для Android умеет использовать родные View или нет. Пока все приложения что были созданы при помощи Qt которые мне попадались их не использовали и выглядели вообще иначе чем все остальное, что крайне раздражало.
                        0
                        Кто сталкивался со scala на android? Поделитесь впечатлениями.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое