SDK
SDK (англ. software development kit — комплект средств разработки) — это набор инструментов для создания программного обеспечения, объединённых в одном устанавливаемом пакете. SDK упрощает разработку приложений за счёт наличия компилятора, отладчика и иногда программного фреймворка. Обычно SDK ориентированы на конкретную комбинацию аппаратной платформы и операционной системы. Для создания приложений с расширенными возможностями, такими как реклама, push-уведомления и прочее, большинство разработчиков используют специализированные SDK для программного обеспечения.
Некоторые SDK необходимы для разработки приложений под определённую платформу. Например, для создания приложения Android на платформе Java требуется комплект средств разработки Java. Для приложений под iOS используется iOS SDK. Для платформы Universal Windows Platform может применяться .NET Framework SDK. Существуют также SDK, которые добавляют дополнительные функции в приложения, предоставляя аналитику, данные об активности пользователей и возможности монетизации. Среди разработчиков таких SDK выделяются компании Google, Smaato, InMobi и Facebook.
Подробности
SDK может быть реализован в виде интерфейсов программирования приложений (англ. application programming interfaces, API)[1] в виде библиотек функций для работы с определённым языком программирования, либо представлять собой сложные аппаратно-зависимые инструменты для взаимодействия, например, с встраиваемой системой[2]. В состав стандартных инструментов часто входят средства отладки и другие утилиты, зачастую объединённые в интегрированной среде разработки[3]. SDK может содержать примеры программ, технические записки, а также документацию и руководства, разъясняющие материал основной документации[4].
SDK часто поставляются с лицензиями, которые делают их несовместимыми с разработкой программного обеспечения под иной тип лицензии. Например, проприетарный SDK обычно несовместим с разработкой свободного программного обеспечения, а комплект с лицензией GNU GPL, в свою очередь, юридически несовместим с проприетарными разработками[5].
SDK с лицензией GNU LGPL обычно можно использовать и в проприетарных разработках[6]. В случаях, когда технология новая, в состав SDK могут входить аппаратные компоненты. Например, комплект AirTag для технологии ближнего поля (NFC) в 2012 году включал как аппаратную, так и программную часть системы[7].
Среднестатистическое мобильное приложение для Android использует 15,6 различных SDK, а для игровых приложений этот показатель составляет в среднем 17,5[8]. Наиболее популярными категориями SDK для Android-приложений являются аналитика и реклама[9].
SDK потенциально могут представлять опасность, так как они внедряются в приложение, но могут выполнять сторонний код. Вредоносные SDK (независимо от мотивов их разработчиков) способны нарушать конфиденциальность данных пользователей, снижать производительность работы приложения или даже привести к его удалению из Google Play или App Store[10]. Современные технологии позволяют программистам в реальном времени контролировать и отслеживать работу клиентских SDK.
Поставщики SDK для определённых систем или подсистем иногда используют более специализированные термины вместо слова «программный». Например, и Microsoft[11], и Citrix[12] предлагают пакеты для разработки драйверов устройств, называемые driver development kit («комплект средств разработки драйверов»).
Примеры
Примеры комплектов средств разработки для различных платформ:
- AmigaOS NDK
- Android NDK
- iOS SDK
- Java Development Kit
- Java Web Services Development Pack
- Microsoft Windows SDK
- VaxTele SIP Server SDK
- Visage SDK
- Vuforia Augmented Reality SDK
- Windows App SDK
- Xbox Development Kit
Примечания
- ↑ Sandoval, K. What is the Difference Between an API and an SDK? (англ.). Nordic APIs Blog. Nordic APIs AB (2 июня 2016). Дата обращения: 7 сентября 2024. Архивировано 4 мая 2022 года.
- ↑ Benso, A. A software development kit for dependable applications in embedded systems // Proceedings International Test Conference 2000 (IEEE Cat. No.00CH37159) : [англ.] / Benso, A., Chiusano, S., Prinetto, P.. — 2000. — P. 170–8. — ISBN 0-7803-6546-1. — doi:10.1109/TEST.2000.894204.
- ↑ Burd, B. Android Application Development All-in-One For Dummies : [англ.]. — John Wiley & Sons, 2015. — P. 31. — ISBN 9781118973806.
- ↑ Asif, S.Z. Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications : [англ.]. — John Wiley & Sons, 2011. — P. PT384. — ISBN 9781119995814.
- ↑ Vaughan-Nichols, S.J. No, Google is not making the Android SDK proprietary. What's the fuss about? (англ.). ZDNet. CBS Interactive (4 января 2013). Дата обращения: 7 сентября 2024. Архивировано 25 июля 2017 года.
- ↑ Davidson, S.J. A Primer on Open Source Software for Business People and Lawyers (англ.). Leonard, Street and Deinard (2004). Дата обращения: 7 сентября 2024. Архивировано 7 февраля 2020 года.
- ↑ Airtag releasing NFC mobile payments developer kit, wishes Apple would help simplify the ecosystem (англ.). VentureBeat (16 октября 2012). Дата обращения: 25 апреля 2020. Архивировано 21 января 2022 года.
- ↑ Shoavi, Orly The All-Star Winners of Mobile App Tools (SDKs) (англ.). SafeDK. Дата обращения: 23 ноября 2016. Архивировано 16 декабря 2017 года.
- ↑ Lishi, He All iOS and Android 3rd Platform SDKs (англ.). Fork.ai. Дата обращения: 7 сентября 2024. Архивировано 17 сентября 2024 года.
- ↑ Perez, Sarah Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information (англ.). TechCrunch (19 октября 2015). Дата обращения: 28 сентября 2016. Архивировано 3 декабря 2017 года.
- ↑ Windows Driver Kit documentation (англ.). Hardware Dev Center. Microsoft. Дата обращения: 7 сентября 2024. Архивировано 17 декабря 2019 года.
- ↑ Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062 (англ.). Citrix Systems, Inc (27 июня 2017). Дата обращения: 7 сентября 2024. Архивировано 21 января 2022 года.