Комплект для разработки программного обеспечения


Комплект для разработки программного обеспечения ( SDK ) — это набор инструментов для разработки программного обеспечения в одном устанавливаемом пакете. Они облегчают создание приложений , имея компилятор, отладчик и, возможно, программную среду . Обычно они зависят от комбинации аппаратной платформы и операционной системы . [1] [2] [3] Для создания приложений с расширенными функциями, такими как реклама, [4] push-уведомления, [5] и т. д.; большинство разработчиков прикладного программного обеспечения используют специальные комплекты для разработки программного обеспечения. [6]

Некоторые SDK необходимы для разработки приложения для конкретной платформы. Например, для разработки приложения Android на платформе Java требуется Java Development Kit . Для iOS -приложений (приложений) требуется iOS SDK . Для универсальной платформы Windows можно использовать пакет SDK для .NET Framework . Существуют также SDK, которые добавляют дополнительные функции и могут быть установлены в приложениях для предоставления аналитики, данных об активности приложений и вариантов монетизации. Некоторые известные создатели этих типов SDK включают Google , [7] Smaato , [8] InMobi , [9] .и Фейсбук . [10]

SDK может принимать форму интерфейсов прикладного программирования (API) [3] в виде встроенных в устройство библиотек повторно используемых функций, используемых для взаимодействия с конкретным языком программирования , или может быть настолько сложным, как аппаратно-зависимые инструменты, которые могут обмениваться данными . с конкретной встроенной системой . [11] Общие инструменты включают средства отладки и другие утилиты , часто представленные в интегрированной среде разработки (IDE). [12] Пакеты SDK могут включать образцы программного обеспечения и/или технические примечания вместе с документацией и учебными пособиями, помогающими прояснить моменты, сделанные в основном справочном материале.[13] [14]

SDK часто включают лицензии , которые делают их непригодными для создания программного обеспечения, предназначенного для разработки по несовместимой лицензии. Например, проприетарный SDK, как правило, несовместим с разработкой свободного программного обеспечения, в то время как SDK под лицензией GPL может быть несовместим с разработкой проприетарного программного обеспечения по юридическим причинам. [15] [16] Однако SDK, созданные под лицензией GNU Lesser General Public License (LGPL), обычно можно использовать для проприетарной разработки. [17] В случаях, когда базовая технология является новой, SDK могут включать аппаратное обеспечение. Например, NFC AirTag 2021 г.SDK включал в себя как платную, так и считывающую части необходимого аппаратного стека. [18]

Среднее мобильное приложение Android реализует 15,6 отдельных SDK, а игровые приложения реализуют в среднем 17,5 различных SDK. [19] Наиболее популярными категориями SDK для мобильных приложений Android являются аналитика и реклама. [19]

SDK могут быть небезопасными (поскольку они реализованы в приложениях, но выполняют отдельный код). Вредоносные SDK (с честными намерениями или нет) могут нарушать конфиденциальность данных пользователей , снижать производительность приложений или даже приводить к блокировке приложений в Google Play или App Store . [20] Новые технологии позволяют разработчикам приложений контролировать и отслеживать клиентские SDK в режиме реального времени.