Skip to main content

Что такое Native Development Kit?

В области компьютерного программирования и разработки программного обеспечения набор средств для разработки (NDK) обычно представляет собой абстрактный интерфейс программирования (API), который предоставляет разработчику возможность использовать функции или выполнять код непосредственно через основную операционную систему. Этот метод выполнения программы заметно отличается от запуска управляемого кода или интерпретируемых программ, в котором написанный код выполняется виртуальной машиной или интерпретатором, который действует как программный уровень между основными функциями операционной системы и пользовательским кодом. , Использование встроенного комплекта разработки может иметь важное значение в приложениях, требующих максимально быстрого выполнения и обработки, поскольку он может обеспечить прямой доступ к оборудованию и библиотекам, используемым операционной системой. В зависимости от типа написанной программы и целевой операционной системы использование встроенного комплекта разработки может совсем не увеличить скорость программы и может создать код, который сложно поддерживать, читать и переносить в другие системы.

Приложения, написанные для некоторых устройств, например смартфонов, или использующие интерпретированные компьютерные языки, не выполняются напрямую процессами основной операционной системы или ядром. Вместо этого программный код выполняется отдельной программой, известной как виртуальная машина (ВМ) или интерпретатор. Виртуальная машина читает код, расширяет и разрешает команды и взаимодействует с ядром для выполнения кода. Это может быть полезно для некоторых разработчиков, поскольку обеспечивает хороший уровень абстракции для переносимости и оставляет много сложных деталей, таких как управление ресурсами и обработка файлов, создателям виртуальной машины.

Однако в некоторых случаях виртуальная машина может быть помехой для некоторых типов программ. ВМ может замедлить выполнение или не предоставить доступ к некоторым функциям в ядре хоста. Встроенный комплект разработки для целевой операционной системы или устройства предоставляет функции ядра для написания приложения. В зависимости от степени набора, это может позволить программе напрямую обращаться к оборудованию, загружать свои собственные пользовательские библиотеки в ядро ​​или использовать системные оптимизации.

Нативные средства разработки чаще всего используются только для срочных частей программы. Это могут быть вычисления при обработке графики, вывод на дисплей или ввод и вывод файла. Не все программы, использующие собственные функции или подпрограммы, получат выигрыш в скорости, потому что виртуальная машина может уже оптимизировать управляемый код, поэтому итоговый машинный код идентичен, независимо от того, используются ли собственные функции. Кроме того, нативный код связывает программу с конкретной реализацией операционной системы, а иногда и с конкретной версией устройства, что означает, что код, использующий нативный комплект разработки, может быть нелегко перенести на другие системы.