Android: Java, C или C ++? - PullRequest
       2

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

31 голосов
/ 18 января 2012

Я написал несколько простых приложений в Android, используя Java.Но позже я обнаружил следующее:

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

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

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

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

Ответы [ 5 ]

33 голосов
/ 18 января 2012

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

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

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

5 голосов
/ 18 января 2012

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

4 голосов
/ 18 января 2012

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

3 голосов
/ 18 января 2012

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

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

2 голосов
/ 16 марта 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...