Что такое Android NDK (встроенный комплект разработки)? Как можно это использовать? Зачем его использовать?
Что такое Android Native Development Kit (NDK)?
Ответ 1
NDK (Native Development Kit) - это инструмент, который позволяет вам программировать на C/C++ для устройств Android. Он предназначен для интеграции с SDK (он описывается как "инструмент компаньона") и используется только для важных для производительности частей проекта. См. Здесь для получения дополнительной информации.
Ответ 2
NDK может улучшить производительность приложений. Это обычно справедливо для многих приложений, связанных с процессором. Многие мультимедийные приложения и видеоигры используют собственный код для задач с интенсивным использованием процессора. Улучшения производительности могут исходить из трех источников. Во-первых, собственный код компилируется в двоичный код и запускается непосредственно в ОС, а Java-код транслируется в байт-код Java и интерпретируется виртуальной машиной Dalvik (VM). В Android 2.2 или выше компилятор Just-In-Time (JIT) добавляется в Dalvik VM для анализа и оптимизации байт-кода Java во время работы программы (например, JIT может скомпилировать часть байтового кода для двоичный код перед его исполнением). Но во многих случаях собственный код по-прежнему работает быстрее, чем Java-код.
Java-код запускается Dalvik VM на Android. Dalvik VM специально разработан для систем с ограниченными аппаратными ресурсами (объем памяти, скорость процессора и т.д.).
Вторым источником повышения производительности в NDK является то, что собственный код позволяет разработчикам использовать некоторые функции процессора, недоступные в Android SDK, такие как технология NEON, технология множественных данных с одной инструкцией (SIMD), позволяющая обрабатывать несколько элементов данных в параллели. Одним конкретным примером задачи кодирования является преобразование цвета для видеофрагмента или фотографии. Предположим, мы должны преобразовать фотографию 1920x1280 пикселей из цветового пространства RGB в цветовое пространство YCbCr. Наивный подход заключается в применении формулы преобразования для каждого пикселя (то есть более двух миллионов пикселей). С NEON мы можем обрабатывать несколько пикселей одновременно, чтобы сократить время обработки.
Третий аспект заключается в том, что мы можем оптимизировать критический код на уровне сборки, что является обычной практикой в разработке настольных программных продуктов.
Недостаток
NDK не может напрямую обращаться к большому количеству API-интерфейсов, доступных в Android SDK, и разработка в NDK всегда будет вводить дополнительную сложность в ваше приложение.
Ответ 3
Android NDK - сопутствующий инструмент, используемый только в сочетании с Android SDK, который позволяет разработчикам приложений создавать критичные для производительности части своих приложений с помощью собственного кода (C/C++).
Это обеспечивает преимущества в виде повторного использования существующего кода и увеличения скорости.
Пожалуйста, перейдите по ссылкам ниже.
Ответ 4
Android NDK - это вспомогательный инструмент для Android SDK, который позволяет создавать критически важные части ваших приложений в собственном коде. Он предоставляет заголовки и библиотеки, которые позволяют создавать мероприятия, обрабатывать ввод пользователей, использовать аппаратные датчики, доступ к ресурсам приложений и т.д. При программировании на C или C++. Если вы пишете собственный код, ваши приложения по-прежнему будут упакованы в файл.apk, и они все равно будут работать внутри виртуальной машины на устройстве. Основная модель приложения для Android не меняется.
Следующие ссылки также отвечают на ваш вопрос:
Ответ 5
Android NDK - это набор инструментов, который позволяет встраивать компоненты, которые используют собственный код в приложениях Android.
Приложения Android запускаются в виртуальной машине Dalvik. NDK позволяет реализовать части ваших приложений, используя языки родного кода, такие как C и C++. Это может обеспечить преимущества для определенных классов приложений в виде повторного использования существующего кода и, в некоторых случаях, увеличения скорости.
Источник: http://developer.android.com/sdk/ndk/overview.html
Android NDK - это вспомогательный инструмент для Android SDK, который позволяет создавать критически важные части ваших приложений в собственном коде. Он предоставляет заголовки и библиотеки, которые позволяют создавать мероприятия, обрабатывать ввод пользователей, использовать аппаратные датчики, доступ к ресурсам приложений и т.д. При программировании на C или C++. Если вы пишете собственный код, ваши приложения по-прежнему будут упакованы в файл.apk, и они все равно будут работать внутри виртуальной машины на устройстве. Основная модель приложения для Android не меняется.
Ответ 6
NDK - это набор инструментов, который позволяет вам реализовать части вашего приложения, используя языки родного кода, такие как C и C++.... Оформить заказ https://developer.android.com/tools/sdk/ndk/index.html
Ответ 7
NDK - это всего лишь набор инструментов, который позволяет вам писать коды C/C++ для вашего приложения. Например, предположим, что вы хотите добавить критическую функцию/производительность в свое приложение, и вы хотите записать его в C/C++, тогда eclipse или любой другой IDE не позволит вам писать ваш C/C++, и в этом случае вы должны использовать NDK и интегрировать его в свое приложение.
Ответ 8
Android NDK (собственный набор для разработки)
Android Native Development Kit (NDK) - это разработчики для написания кода в C/C++, который компилируется в собственный код
Зачем его использовать?
Исходный код скомпилирован непосредственно в машинный код для CPU (а не на промежуточном языке, как в 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