Вопрос

Я пытаюсь объяснить не-разработчику разницу между API и SDK.Мне нужно объяснить, почему коммерческий поставщик программного обеспечения для снятия отпечатков пальцев, скорее всего, не предоставит SDK, хотя они, безусловно, могли им пользоваться.

Как поставщики устройств, так и поставщики программного обеспечения могут и должны предоставлять четко определенный API.Этот API позволяет другим программным программам взаимодействовать (быть написанными для них) с собственными программными компонентами или аппаратными устройствами поставщика.

Если у кого-то есть больше идей, чтобы объяснить это ясно, я был бы очень признателен за предложения.Я хочу подчеркнуть, что цель состоит в том, чтобы объяснить эти концепции непрограммисту, который не знает жаргона разработчиков.

В частности, в контексте датчика отпечатков пальцев в сравнении с программным обеспечением для регистрации / верификации, вот как я попытался это объяснить:

Если я являюсь производителем устройств для снятия отпечатков пальцев / сенсоров и не занимаюсь написанием программного обеспечения, то способы, которыми я мог бы лучше продвигать свой продукт, следующие:

  1. Убедитесь, что драйверы моих устройств можно установить в самые разные операционные системы
  2. Определить и предоставить API для разработчиков программного обеспечения для написания программ (напр., для подачи заявок, проверка), чтобы “говорить” или использовать свой устройство
  3. Разработать и предоставить пакет SDK (один шаг за рамки API), чтобы сделать его проще и быстрее для разработчиков программного обеспечения, чтобы писать программы, которые работают с моим устройством.Пакеты SDK может предоставлять вспомогательные библиотеки кода, ссылка приложения, документы и т. д.
Это было полезно?

Решение

Кусок пирога:

  • API - это интерфейс.Это как спецификация телефонной системы или электропроводки в вашем доме.Им может пользоваться что угодно *, если оно знает, как взаимодействовать.Вы даже можете приобрести готовое программное обеспечение для использования определенного API, точно так же, как вы можете купить готовое телефонное оборудование или устройства, подключаемые к сети переменного тока в вашем доме.
  • SDK - это инструментарий для реализации.Это как комплект, который позволяет вам создать что-то индивидуальное для подключения к телефонной системе или электропроводке.

* API может использовать что угодно.Некоторые API содержат положения о безопасности, требующие лицензионных ключей, аутентификации и т.д.который может запретить полное использование API в определенных случаях, но это только потому, что определенные шаги аутентификации / авторизации завершаются неудачей.Любое программное обеспечение, предоставляющее правильные учетные данные (если требуется), может использовать API.

** Технически, если API хорошо документирован, вам не нужен SDK для создания собственного программного обеспечения для использования API.Но наличие SDK, как правило, значительно упрощает этот процесс.

Другие советы

API похож на строительные блоки какой-то загадочной игры, в которую играет ребенок, чтобы соединить блоки различной формы и создать что-то, о чем они могут подумать.

SDK , с другой стороны, является подходящей мастерской, где доступны все инструменты разработки, а не предварительно сформированные строительные блоки. В мастерской у вас есть настоящие инструменты, и вы не ограничены блоками, и поэтому можете создавать свои собственные блоки или создавать что-то без каких-либо блоков для начала.

кодирование без 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 для естественного управления любым браузером, а capybara можно считать SDK, который помогает разработчикам Ruby использовать веб-драйвер Selenium. Однако веб-драйвер Selenium также является SDK, поскольку он объединяет взаимодействие с различными встроенными драйверами браузера в один пакет.

Я не уверен, что есть какое-либо официальное определение этих двух терминов. Я понимаю, что API - это набор документированных программируемых библиотек и вспомогательных источников, таких как заголовки или файлы IDL. SDK обычно содержат API, но часто добавляют в компиляторы, инструменты и примеры.

API - это спецификации того, как что-то сделать, интерфейс, такой как «Железнодорожные пути находятся на расстоянии четырех футов друг от друга, а металлическая полоса имеет ширину 1 дюйм». Теперь, когда у вас есть API, вы можете построить поезд, который будет подходить к этим железнодорожным путям, если вы хотите куда-нибудь идти. API - это просто информация о том, как создать ваш код, он ничего не делает.

SDK - это пакет актуальных инструментов, которые уже обеспокоены спецификациями. "Вот поезд, немного угля и техник по обслуживанию. Используйте его, чтобы переходить с места на место " С SDK вы не беспокоитесь о специфике. SDK - это реальный код, его можно использовать для каких-то действий, но, конечно, поезд не запустится самопроизвольно, вам все равно нужен проводник для управления поездом.

SDK также имеют свои собственные API. "Если вы хотите привести поезд в движение, положите в него уголь", "Потяните синий рычаг, чтобы переместить поезд.", "Если поезд начинает вести себя забавно, позвоните специалисту по техобслуживанию". и др.

API = Словарь доступных слов и их значений (и необходимая грамматика для их объединения)

SDK = Система обработки текста & # 8230; для двухлетних детей & # 8230; что пишет прямо из идей

Несмотря на то, что вы МОЖЕТЕ пойти в школу и стать мастером своего языка через несколько лет, использование SDK поможет вам написать целые осмысленные предложения в кратчайшие сроки (Принимая во внимание тот факт, что в этом примере, как ребенок, вы не я даже не изучал любой другой язык, чтобы хотя бы научиться использовать SDK.)

Как насчет ... Это как если бы вы хотели установить систему домашнего кинотеатра в вашем доме. Использование API похоже на получение всех проводов, винтов, битов и кусочков. Возможности бесконечны (ограничены только частями, которые вы получаете), но иногда огромны. SDK - это как получить комплект. Вы все еще должны собрать это вместе, но это больше похоже на получение предварительно вырезанных частей и инструкций для книжной полки IKEA, чем на коробку с винтами.

Вы используете SDK для доступа к функциям библиотеки и API для управления ею.

API = интерфейс прикладного программирования SDK = Комплект для разработки программного обеспечения

SDK представляется полным набором API , которые позволяют вам выполнять практически любые действия, которые могут потребоваться для создания приложений. Кроме того, SDK может содержать другие инструменты для разработки для платформы / элемента, для которого он предназначен.

API , с другой стороны, это просто ряд связанных методов, которые могут быть хорошими для конкретной цели.

В качестве примера, JDK (Java Development Kit) содержит API, а также компиляторы, среды выполнения и другие разные инструменты. Java API - это просто все библиотеки, которые составляют базовый язык, с которым вы можете работать "из коробки".

Примеры API: Java API, API Карт Google, Flash Player API.

Примеры SDK: JDK, GWT, Flex SDK.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top