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