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


Відповіді:


93

NDK (Native Development Kit) - це інструмент, який дозволяє програмувати на C / C ++ для пристроїв Android. Він призначений для інтеграції з SDK (він описується як "супутній інструмент") і використовується лише для важливих для проекту частин проекту. Дивіться тут для отримання додаткової інформації.


11
@YoushaAleayoub - На пристрої Android код, написаний на Java, виконується у віртуальній машині Java - системі, що постачається системою, яка інтерпретує байтові коди Java. Код, написаний на C / C ++, компілюється в машинні інструкції, які запускаються безпосередньо центральним процесором. Цей останній код називається "рідним" кодом, оскільки він є природним для процесора. Зверніть увагу, що для різних процесорів потрібні різні вказівки власного коду. Отже, коли ви використовуєте NDK, у вас є можливість генерувати код для одного типу апаратного забезпечення або для широкого спектру процесорів, які в кінцевому підсумку упаковуються у файл .apk для вашої програми.
Тед Хопп,

Отже, якщо я хочу використовувати OpenCV на Android, чи краще використовувати його версію на C ++?
user8663682

@ user8663682 - Я б рекомендував використовувати версію Android . Він як і раніше вимагає використання NDK, але вся робота з розкриття можливостей програм Android вже виконана.
Тед Хопп,

56

NDK може покращити продуктивність програми. Зазвичай це вірно для багатьох програм, пов’язаних із процесорами. Багато мультимедійних програм та відеоігор використовують власний код для виконання процесорів. Покращення продуктивності може походити з трьох джерел. По-перше, власний код компілюється в двійковий код і запускається безпосередньо в ОС, тоді як код Java перекладається в байт-код Java і інтерпретується віртуальною машиною Dalvik (VM) . В ОС Android 2.2 або новішої версії, " Вчасно" (JIT) до Dalvik VM додається компілятор для аналізу та оптимізації байт-коду 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 завжди додасть додаткової складності вашому додатку.


19

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

Це забезпечує переваги у формі повторного використання існуючого коду та збільшення швидкості.

Будь ласка, перейдіть за посиланнями нижче.

Посилання-1

Посилання-2

Посилання-3


8

Android NDK є інструментом компаньйона для Android SDK , який дозволяє будувати продуктивності критично важливі частини своїх додатків в машинному коді. Він надає заголовки та бібліотеки, що дозволяють створювати дії, обробляти дані користувача, використовувати апаратні датчики, отримувати доступ до ресурсів додатків тощо під час програмування на C або C ++ . Якщо ви пишете власний код, ваші програми все ще упаковуються у файл .apk, і вони все ще працюють у віртуальній машині на пристрої. Основна модель програми для Android не змінюється.

Наступні посилання також відповідають на ваше запитання:

Що таке NDK?

Коли розробляти в рідному коді

NDK Завантажити

Як створити додаток NDK

як працювати з NDK

10 порад для Android NDK


3

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


3

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


2

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


3
Ця деталь вже є у прийнятій відповіді. Як, на вашу думку, це має бути окрема відповідь?
Пареш Маяні

Намагаюся забити більше, напевно :)
Дакш Гаргас

2

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.