Я пытаюсь объяснить не разработчику разницу между API SDK. Мне нужно объяснить, почему коммерческий поставщик программного обеспечения по отпечаткам пальцев, скорее всего, не предоставит SDK, хотя, возможно, он использовал его.
Как поставщики устройств, так и поставщики программного обеспечения могут и должны предоставлять четко определенный API. Этот API-интерфейс позволяет другим программным программам (записываться) взаимодействовать с собственными программными компонентами или аппаратными устройствами поставщика.
Если у кого-то есть больше идей, чтобы объяснить это ясно, я был бы очень признателен за предложения. Я хочу подчеркнуть, что цель состоит в том, чтобы объяснить эти концепции непрограммисту, который не знает языка разработчика .
В частности, в контексте датчика отпечатка пальца и программного обеспечения для регистрации / проверки, вот как я попытался объяснить это:
Если я являюсь производителем устройств / датчиков отпечатков пальцев, а не занимаюсь написанием программного обеспечения, то я могу лучше продать свой продукт:
- Убедитесь, что мои драйверы устройств могут быть установлены в самых разных операционных системах.
- Определите и предоставьте API для разработчиков программного обеспечения для написания программ (например, для регистрации, проверки), чтобы «общаться» или использовать мое устройство
- Разработайте и предоставьте SDK (на шаг впереди API), чтобы разработчикам программного обеспечения было проще и быстрее создавать программы, которые работают с моим устройством. SDK могут содержать вспомогательные библиотеки кода, справочные приложения, документацию и т. Д.
API подобен строительным блокам какой-то загадочной игры, в которую играет ребенок, чтобы соединять блоки в разных формах и создавать то, о чем они могут думать.
SDK , с другой стороны, является надлежащей мастерской, где доступны все инструменты разработки, а не предварительно сформированные строительные блоки. В мастерской у вас есть настоящие инструменты, и вы не ограничены блоками, и поэтому можете создавать свои собственные блоки или создавать что-то без каких-либо блоков с самого начала.
программирование без SDK или API - это все равно, что делать все с нуля без семинара - нужно даже создавать свои собственные инструменты
источник
not limited to blocks, or can create something without any blocks to begin with
этого SDK дает вам еще лучшие композиции блоков API для работы. SDK основывается на API.Предположим, что компания C предлагает продукт P, а P каким-то образом включает программное обеспечение. Затем C может предложить библиотеку / набор библиотек разработчикам программного обеспечения, которые управляют программными системами P.
Эта библиотека / библиотеки являются SDK . Это часть систем P. Это набор для разработчиков программного обеспечения, который используется для модификации, настройки, исправления, улучшения и т. Д. Программного обеспечения P.
Если C хочет предложить функциональность P другим компаниям / системам, он делает это с помощью API .
Это интерфейс к P. Способ взаимодействия внешних систем с P.
Если вы думаете с точки зрения реализации, они будут казаться довольно похожими. Особенно сейчас, когда Интернет стал как одна большая распределенная операционная система.
По сути, они на самом деле совершенно разные.
Вы создаете что-то с помощью SDK и используете или используете что-то с помощью API.
источник
Интерфейс прикладного программирования представляет собой набор процедур / структур данных / классов, которые определяют способ взаимодействия с целевой платформой / программным обеспечением, таким как OS X, Android, приложение для управления проектами, программное обеспечение для виртуализации и т. Д.
В то время как Software Development Kit является оберткой вокруг API / s, которая облегчает работу для разработчиков.
Например, Android SDK позволяет разработчикам взаимодействовать с платформой Android в целом, а сама платформа построена из составных программных компонентов, взаимодействующих через API.
Кроме того, иногда SDK создаются для облегчения разработки на определенном языке программирования. Например, веб-драйвер Selenium (встроенный в Java) предоставляет API-интерфейсы для естественного управления любым браузером, а капибара может рассматриваться как SDK, который позволяет разработчикам Ruby использовать веб-драйвер Selenium. Однако веб-драйвер Selenium также сам по себе является SDK, поскольку он объединяет взаимодействие с различными встроенными драйверами браузера в один пакет.
источник
Я не уверен, что есть какое-либо официальное определение этих двух терминов. Я понимаю, что API - это набор документированных программируемых библиотек и вспомогательных источников, таких как заголовки или файлы IDL. SDK обычно содержат API, но часто добавляют компиляторы, инструменты и примеры в смесь.
источник
API - это спецификации того, как что-то сделать, интерфейс, такой как «Железнодорожные пути находятся на расстоянии четырех футов друг от друга, а металлическая полоса имеет ширину 1 дюйм». Теперь, когда у вас есть API, вы можете построить поезд, который будет соответствовать этой железной дороге. треки, если вы хотите пойти куда угодно. API - это просто информация о том, как создать ваш код, он ничего не делает.
SDK - это пакет актуальных инструментов, которые уже обеспокоены спецификациями. «Вот поезд, немного угля и техник. Используйте его, чтобы ездить с места на место» С SDK вы не будете беспокоиться о специфике. SDK - это действительный код, его можно использовать для каких-то действий, но, конечно, поезд не запустится самопроизвольно, вам все равно нужен проводник для управления поездом.
SDK также имеют свои собственные API. «Если вы хотите привести поезд в действие, положите в него уголь», «Потяните синий рычаг, чтобы переместить поезд», «Если поезд начинает вести себя забавно, позвоните специалисту по техническому обслуживанию» и т. Д.
источник
API = словарь доступных слов и их значений (и необходимая грамматика для их объединения)
SDK = система обработки текста ... для 2-летних детей ... которая пишет прямо из идей
Хотя через несколько лет вы МОЖЕТЕ пойти в школу и стать мастером своего языка, использование SDK поможет вам в кратчайшие сроки написать целые осмысленные предложения (Прощая тот факт, что в этом примере, будучи ребенком, вы даже не получили изучить любой другой язык, по крайней мере, научиться использовать SDK.)
источник
Как насчет ... Это как если бы вы хотели установить систему домашнего кинотеатра в вашем доме. Использование API похоже на получение всех проводов, винтов, битов и кусочков. Возможности бесконечны (ограничены только кусками, которые вы получаете), но иногда огромны. SDK - это как получить комплект. Вы все еще должны собрать это вместе, но это больше похоже на получение предварительно вырезанных частей и инструкций для книжной полки IKEA, чем на коробку с винтами.
источник
Вы используете SDK для доступа к функциям библиотеки и API для управления ею.
источник
API = интерфейс прикладного программирования SDK = комплект разработки программного обеспечения
SDK , кажется, полный набор API с , которые позволяют выполнять большинство любых действий , вы должны были бы для создания приложений. Кроме того, SDK может включать в себя другие инструменты для разработки для платформы / элемента, для которого он предназначен.
API с другой стороны , это только ряд связанных методов , которые могут быть хороши для определенной цели.
Например, JDK (Java Development Kit) содержит API, а также компиляторы, среды выполнения и другие разные инструменты. Java API - это просто все библиотеки, которые составляют основной язык, с которым вы можете работать "из коробки".
Примеры API: API Java, Google Maps API, Flash Player API.
Примеры SDK: JDK, GWT, Flex SDK.
источник