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