Комплект для разработки программного обеспечения ( SDK ) — это набор инструментов для разработки программного обеспечения в одном устанавливаемом пакете. Они облегчают создание приложений, имея компилятор, отладчик и иногда программную структуру . Они обычно специфичны для комбинации аппаратной платформы и операционной системы. Для создания приложений с расширенными функциями, такими как реклама, push-уведомления и т. д., большинство разработчиков прикладного программного обеспечения используют специальные комплекты для разработки программного обеспечения.
Некоторые SDK требуются для разработки платформенно-зависимых приложений. Например, для разработки приложения Android на платформе Java требуется Java Development Kit . Для приложений iOS (apps) требуется iOS SDK . Для универсальной платформы Windows может использоваться .NET Framework SDK . Существуют также SDK, которые добавляют дополнительные функции и могут быть установлены в приложениях для предоставления аналитики, данных об активности приложения и вариантов монетизации. Некоторые известные создатели этих типов SDK включают Google, Smaato, InMobi и Facebook.
SDK может принимать форму интерфейсов прикладного программирования [1] в виде библиотек многократно используемых функций на устройстве, используемых для взаимодействия с определенным языком программирования , или может быть таким же сложным, как аппаратно-зависимые инструменты, которые могут взаимодействовать с определенной встроенной системой . [2] Общие инструменты включают средства отладки и другие утилиты , часто представленные в интегрированной среде разработки . [3] SDK могут включать образцы программного обеспечения и/или технические заметки вместе с документацией и учебными пособиями, помогающими прояснить моменты, изложенные в первичном справочном материале. [4] [5]
SDK часто включают лицензии , которые делают их непригодными для создания программного обеспечения, предназначенного для разработки по несовместимой лицензии. Например, проприетарный SDK, как правило, несовместим с разработкой свободного программного обеспечения , в то время как GNU General Public License 'd SDK может быть несовместим с разработкой проприетарного программного обеспечения по юридическим причинам. [6] [7] Однако SDK, созданные по GNU Lesser General Public License , обычно можно использовать для проприетарной разработки. [8] В случаях, когда базовая технология является новой, SDK могут включать аппаратное обеспечение. Например, AirTag 's 2021 Near-field communication SDK включал как платную, так и считывающую половины необходимого аппаратного стека. [9]
Среднестатистическое мобильное приложение Android реализует 15,6 отдельных SDK, а игровые приложения реализуют в среднем 17,5 различных SDK. [10] [11] Наиболее популярными категориями SDK для мобильных приложений Android являются аналитика и реклама. [11]
SDK могут быть небезопасными (потому что они реализованы в приложениях, но запускают отдельный код). Вредоносные SDK (с честными намерениями или нет) могут нарушать конфиденциальность данных пользователей , ухудшать производительность приложений или даже приводить к запрету приложений в Google Play или App Store . [12] Новые технологии позволяют разработчикам приложений контролировать и отслеживать клиентские SDK в режиме реального времени.
Поставщики SDK для конкретных систем или подсистем иногда заменяют термин software более конкретным термином . Например, и Microsoft [13] , и Citrix [14] предоставляют комплект для разработки драйверов для разработки драйверов устройств .
Примеры комплектов средств разработки программного обеспечения для различных платформ включают в себя: