Что такое набор разработчика для Android (NDK)? - PullRequest
73 голосов
/ 12 июля 2011

Что такое Android NDK (встроенный комплект разработки)? Как можно это использовать? Зачем его использовать?

Ответы [ 8 ]

84 голосов
/ 12 июля 2011

NDK (Native Development Kit) - это инструмент, который позволяет программировать на C / C ++ для устройств Android. Он предназначен для интеграции с SDK (он описан как «сопутствующий инструмент») и используется только для критически важных для проекта частей проекта. См. здесь для получения дополнительной информации.

51 голосов
/ 26 июня 2014

NDK может улучшить производительность приложения. Это обычно верно для многих приложения, связанные с процессором. Многие мультимедийные приложения и видеоигры используют нативный код для ресурсоемких задач. Улучшения производительности могут исходить из трех источников. Во-первых, нативный код компилируется в двоичный код и запускается непосредственно в ОС, а код Java транслируется на Java. байт-код и интерпретируется Dalvik Virtual Machine (VM) . На Android 2.2 или выше, компилятор Just-In-Time (JIT) добавлен в Dalvik VM для анализа и оптимизации Java байт-код во время работы программы (например, JIT может скомпилировать часть байт-код в двоичный код перед его выполнением). Но во многих случаях нативный код все еще работает быстрее, чем код Java.

Java-код запускается Dalvik VM на Android. Дальвик В.М. специально разработан для систем с ограниченными аппаратными ресурсами (пространство памяти, процессор скорость и т. д.).

Вторым источником улучшения производительности в NDK является то, что нативный код позволяет разработчикам использовать некоторые функции процессора, недоступные в Android SDK, например, NEON, технология Multiple Data Multiple Data (SIMD) , позволяющая элементы данных должны обрабатываться параллельно. Одним конкретным примером задачи кодирования является цвет преобразование для видеокадра или фотографии. Предположим, мы должны преобразовать фотографию 1920x1280 пикселей от цветового пространства RGB до цветового пространства YCbCr. Наивный подход заключается в применении формула преобразования для каждого пикселя (то есть более двух миллионов пикселей). С NEON мы можем обрабатывать несколько пикселей одновременно, чтобы сократить время обработки.

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

Неудобство

NDK не может получить доступ ко многим API, доступным в Android SDK напрямую, а разработка в NDK всегда будет представлять дополнительную сложность в ваше приложение.

18 голосов
/ 12 июля 2011

Android NDK - это сопутствующий инструмент, используемый только в сочетании с Android SDK, который позволяет разработчикам приложений создавать критические для производительности части своих приложений с использованием собственного (C / C ++) кода.

Это обеспечивает преимуществав виде повторного использования существующего кода и увеличения скорости.

Пожалуйста, перейдите по ссылкам ниже.

Ссылка-1

Ссылка-2

Ссылка-3

8 голосов
/ 12 июля 2011

Android NDK - сопутствующий инструмент для Android SDK , который позволяет создавать критически важные для производительности части ваших приложений в собственном коде.Он предоставляет заголовки и библиотеки , которые позволяют вам создавать действия, обрабатывать пользовательский ввод, использовать аппаратные датчики, получать доступ к ресурсам приложений и т. Д. При программировании на C или C ++ .Если вы пишете собственный код, ваши приложения по-прежнему упаковываются в файл .apk, и они по-прежнему работают внутри виртуальной машины на устройстве.Основная модель приложения для Android не меняется.

Следующие ссылки также отвечают на ваш вопрос:

Что такое NDK?

Когда разрабатывать в родном коде

NDK Скачать

Как создать приложение NDK

как работать с NDK

10 советов для Android NDK

3 голосов
/ 12 июля 2011

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

Приложения Android работают на виртуальной машине Dalvik. НДК позволяет реализовать части своих приложений, используя native-код такие языки, как C и C ++. Это может обеспечить преимущества для определенных классы приложений, в виде повторного использования существующего кода и в в некоторых случаях увеличена скорость.

Источник: http://developer.android.com/sdk/ndk/overview.html

Android NDK - это сопутствующий инструмент для Android SDK, который позволяет вам создавать критичные для производительности части ваших приложений в собственном коде. Это предоставляет заголовки и библиотеки, которые позволяют строить действия, обрабатывать пользовательский ввод, использовать аппаратные датчики, получать доступ к ресурсам приложения, и более, при программировании на C или C ++. Если вы пишете нативный код, ваш приложения все еще упакованы в файл .apk, и они все еще работают внутри виртуальной машины на устройстве. Фундаментальный Android Модель приложения не меняется.

Источник: http://developer.android.com/sdk/ndk/index.html

2 голосов
/ 24 января 2018

Android NDK (собственный комплект разработки)

Android Native Development Kit (NDK) - это разработчики для написания кода на C / C ++, который компилируется в собственный код

Зачем его использовать?

Исходный код компилируется непосредственно в машинный код для процессора (а не в промежуточный язык, как в Java), тогда разработчики могут получить наилучшую производительность

Как его использовать?

Здесь лучшие уроки

https://developer.android.com/ndk/index.html

https://www.androidauthority.com/android-ndk-everything-need-know-677642/

https://www.ntu.edu.sg/home/ehchua/programming/android/Android_NDK.html

2 голосов
/ 22 марта 2016

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

2 голосов
/ 24 апреля 2015

NDK - это набор инструментов, который позволяет вам реализовать части вашего приложения, используя языки с собственным кодом, такие как C и C ++ .... Оформить заказ https://developer.android.com/tools/sdk/ndk/index.html

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