Что такое Android Native Development Kit (NDK)?


Я хочу знать о NDK. Что такое Android NDK (native development kit) ? Как его можно использовать? Зачем его использовать?

8 65

8 ответов:

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

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

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

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

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

минус

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

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

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

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

Link-1

Link-2

Link-3

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

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

Что такое NDK?

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

NDK скачать

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

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

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

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

приложения для Android работают на виртуальной машине Dalvik. Пакет NDK позволяет вы реализуете части своих приложений с помощью собственного кода языков, таких как 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

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

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

Android NDK (native development kit)

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