В чем разница между SDK и API?
В разработке программного обеспечения, с постоянным увеличением масштаба систем, становится крайне важным разбиение сложных систем на более мелкие компоненты, при этом особое значение имеет проектирование интерфейсов. Основная задача проектирования интерфейсов – рациональное распределение обязанностей в программной системе. Хорошее проектирование интерфейсов позволяет уменьшить зависимость между частями системы, повысить связность модулей и снизить их связанность, тем самым повышая ремонтопригодность и расширяемость системы. API, как одна из форм интерфейса, играет важную роль во взаимодействии между программами, а SDK и API тесно связаны.
01 API
(1) Понятие API
API, полное название – "Интерфейс программирования приложений", представляет собой набор предопределенных функций, предназначенных для использования в качестве "интерфейса" для соединения двух различных сущностей. Он предоставляет способ, позволяющий приложениям и разработчикам получать доступ к процедурам программного или аппаратного обеспечения, не касаясь исходного кода или не понимая деталей его внутренней работы.
Фактически, API – это функции, предварительно написанные другими, которые могут выполнять определенные функции. Вам просто нужно вызвать их методы в соответствии с предоставленным интерфейсом и передать указанные параметры, и эта функция поможет вам реализовать эти функции.

С точки зрения концепции "интерфейса", в области компьютерных технологий это относится к месту взаимодействия между двумя различными сущностями, которые могут быть двумя совершенно разными системами или двумя фрагментами программы. Поэтому "I" в интерфейсе можно понимать следующим образом. На этой основе место взаимодействия человека с программой называется UI (пользовательский интерфейс), который включает в себя все формы ввода, такие как мышь, клавиатура, сенсорный экран и голосовой ввод и т.д. Взаимодействие между программами называется API, и все взаимодействия, не связанные с человеком, осуществляются через API. По сути, взаимодействие – это передача данных и запуск функций.
(2) Классификация API
API делятся на системные API (например, Windows, Linux, Unix и т.д.) и пользовательские API, не относящиеся к операционной системе. В качестве эффективной модели инкапсуляции кода, модель разработки API Microsoft Windows была заимствована многими компаниями, разрабатывающими коммерческие приложения, и они разработали API-функции определенных коммерческих приложений для публикации, чтобы облегчить сторонним разработчикам расширение функциональности. Например, API, разработанные Google, Apple и Nokia.
API также делятся на открытые API и закрытые API. Как следует из названия, открытый API – это интерфейс, доступный всем, позволяющий любому вызывать его и получать данные, лежащие в его основе. Иногда компании делают API своей общедоступной системой, то есть компания устанавливает свои собственные стандарты интерфейса системы, и все члены компании могут вызывать исходный код через этот стандарт интерфейса при выполнении системной интеграции, настройки и разработки приложений. Этот стандарт интерфейса называется открытым API. Закрытый API – это интерфейс, который не открыт для внешнего мира.
02 SDK
(1) Понятие SDK
SDK, полное название – "Комплект разработки программного обеспечения", обычно представляет собой набор инструментов разработки, используемых инженерами-программистами для создания программного обеспечения для конкретных пакетов, программных фреймворков, аппаратных платформ, операционных систем и т.д. Проще говоря, SDK – это набор инструментов, предоставляемый сторонним поставщиком услуг для реализации определенной функции программного продукта.
Обычно SDK предоставляется профессиональными компаниями в виде набора профессиональных услуг, например, предоставление инструментов разработки Android или услуг на основе разработки оборудования и т.д. Существуют также SDK для определенной программной функции, такие как технология push-уведомлений, технология распознавания изображений, технология мобильных платежей, технология анализа распознавания речи и т.д. В условиях общей тенденции к открытости Интернета некоторые функциональные SDK стали рассматриваться как продукт для эксплуатации.
Разработчикам больше не нужно разрабатывать каждую функцию продукта самостоятельно, им просто нужно выбрать подходящий и стабильный SDK-сервис, и они смогут интегрировать определенную функцию в продукт за короткое время.
(2) Разница между SDK и API
SDK эквивалентен среде разработки и интеграции, а API – это интерфейс данных. API-данные вызываются в среде SDK.
Фактически, SDK содержит определения API, API определяет возможность, спецификацию интерфейса, а SDK может содержать эту возможность, эту спецификацию. Но SDK содержит не только API и его реализацию, это набор программных инструментов, который также содержит множество других вспомогательных функций.
SDK содержит материалы, необходимые для использования API, поэтому люди часто называют разработку Windows-приложений с использованием только API "программированием SDK".





