Что такое Android NDK.
Android NDK это набор инструментов, который позволяет встраивать компоненты, которые используют машинный код в вашем Android приложении.Android приложения, запущенные в виртуальной машины Dalvik. NDK позволяет реализовать части вашего приложения, используя внутренний код языков, таких как C и C+. Это может обеспечить преимущества для определенных классов приложений, в виде повторного использования существующего кода, а в некоторых случаях увеличение скорости.
НДК обеспечивает:
• набор инструментов и создавать файлы, используемые для создания собственных библиотек кода C и C+ источников
•способ внедрения соответствующих родной библиотеки в файл приложения пакета (. АПК), которые могут быть развернуты на устройствах Android
•набор собственных заголовков системы и библиотеки, которые будут поддерживаться во все будущие версии платформы Android, начиная с Android 1.5
• Документация, примеры и учебники
Последний выпуск NDK поддерживает эти наборы инструкций ARM:
• ARMv5TE (включая Thumb-1 инструкцию)
•ARMv7-(в том числе Thumb-2 и VFPv3-D16 инструкции, с дополнительной поддержкой для NEON/VFPv3-D32 инструкции)
Будущие версии NDK также будут поддерживать:
•инструкций x86 (см. CPU-ARCH-ABIS.TXT для получения дополнительной информации)
ARMv5TE машинный код будет работать на всех ARM-устройств на базе Android. ARMv7-будет работать только на устройствах, таких как Verizon Droid или Google Nexus , совместимых процессорах. Основное различие между двумя наборами инструкций ARMv7-поддерживает аппаратное FPU, Thumb-2 инструкции NEON. Вы можете обратиться к одному или обоим наборам инструкций — ARMv5TE по умолчанию, но переход на ARMv7-так же прост, как добавление одной строки в Application.mk файл приложения, без необходимости менять что-нибудь еще в этом файле. Вы также можете строить для обеих архитектур в то же время всё сохранить в финале. АПК. Для получения полной информации приводится в CPU-ARCH-ABIS.TXT в пакете НДК.
НДК обеспечивает стабильные заголовки Libc (библиотеки C), в libm’ах (математическая библиотека), OpenGL ES (3D графическая библиотека), интерфейс JNI, и другие библиотеки, перечисленные в разделе ниже.
НДК не пойдёт на пользу большинству приложений. Как разработчик, вы должны сбалансировать свои преимущества в отношении его недостатков, в частности, с помощью собственного кода не приводить к автоматическому увеличению производительности, это не всегда увеличивает сложность приложения. Типичные хорошие кандидаты для NDK являются автономными, CPU-интенсивных операций, которые не выделяют много памяти, таких как обработка сигналов, моделирование физики, и так далее. Просто перекодировка метода для работы в C обычно не приводит к значительному увеличению производительности. НДК может быть эффективным способом повторного использования большого корпуса существующих C / C кодов.Обратите внимание, что НДК только для приложений, первичная среда Android остается Dalvik виртуальная машина.