Как стать автором
Обновить

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

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

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

Публикации

Истории