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

Android: Java, C или С++?

Я написал несколько простых приложений на Android с помощью Java.
Но позже я нашел это:

Он предоставляет заголовки и библиотеки, которые позволяют создавать действия, обрабатывать ввод пользователя, использовать аппаратные датчики, доступ к ресурсам приложений, и более, при программировании на C или С++. (Источник)

Как это связано с этим:

Приложения Android написаны на языке программирования Java. (Источник)

Возможны ли все три языка?
Извините за немой вопрос.

4b9b3361

Ответ 1

В статье, на которую вы ссылаетесь, есть хорошая информация. Он также ссылается на http://developer.android.com/sdk/ndk/overview.html, в котором говорится:

NDK не будет полезен большинству приложений. Как разработчик, вам нужно сбалансировать свои выгоды от его недостатков; в частности, используя код не приводит к автоматическому увеличению производительности, но всегда увеличивает сложность приложения. В общем, вы должны использовать если он необходим для вашего приложения, а не только потому, что вы предпочитаете программировать на C/С++.

Типичные хорошие кандидаты для NDK - автономные, интенсивные для ЦП операции, которые не выделяют много памяти, такие как обработка сигналов, физическое моделирование и т.д. Просто перекодировать метод для запуска на C обычно не приводит к большому увеличению производительности. когда анализируя, следует ли вам развивать собственный код, подумайте о ваших требованиях и посмотрите, предоставляют ли API фреймворка Android функциональность, которая вам нужна. Однако NDK может быть эффективный способ повторного использования большого корпуса существующего кода C/С++.

Ответ 2

Android - под Linux, поэтому вы можете запускать на нем любой язык. Я запустил сценарии Perl на Android-телефоне для удовольствия. С практической точки зрения разработки приложений, реализация Java Java, работающая на Dalvik, будет типичным маршрутом.

Ответ 3

Java всегда позволяет вам называть компоненты "native code". Однако вы хотите избежать их, если это возможно, потому что они могут вводить в ваш код тонкие ошибки и зависимости платформы.

Я не верю, что вы можете закодировать все приложение для Android на C/С++, но, по крайней мере, у вас должна быть оболочка Java.

Ответ 4

Это хороший вопрос: AFAIK, c или С++ входят в картину, когда вы действительно хотите запрограммировать что-то ключевое значение dalvik, чем использовать Android API, как указано в вашем вопросе, что-то вроде сенсорных функций или аппаратного обеспечения.

Если вы хотите создать приложение с использованием API, оно будет в основном в Java/XML.

Ответ 5

Перезаписывая одну из этих "автономных, интенсивно работающих с ЦП операций, которые не выделяют много памяти" на C, может повысить производительность/время автономной работы в 17 раз по это расследование. В этой статье выясняется, что запуск CCTOOLS Fortran еще быстрее. Поэтому альтернативные языки заслуживают внимания.