Разница между API и SDK

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

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

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

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

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

  • Убедитесь, что мои драйверы устройств установлены в самых разных операционных системах.
  • Определите и предоставите API для разработчиков программного обеспечения для написания программ (например, для регистрации, проверки), чтобы "поговорить" или использовать мои Устройство
  • Разработать и предоставить SDK (один шаг за пределы API), чтобы упростить и ускорить разработку программ, которые работают с моим устройством. SDK могут предоставлять библиотеки вспомогательного кода, ссылку приложений, документации и т.д.

Ответ 1

Кусок торта:

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

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

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

Ответ 2

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

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

кодирование без SDK или API похоже на создание всего с нуля без мастерской - вы должны даже создавать свои собственные инструменты

Ответ 3

Предположим, что компания C предлагает продукт P и P каким-то образом связана с программным обеспечением. Затем C может предоставить библиотеку/набор библиотек разработчикам программного обеспечения, которые управляют программными системами P.

Эта библиотека/библиотеки SDK. Это часть систем P. Это набор для разработчиков программного обеспечения для изменения, настройки, исправления, улучшения и т.д. Программный фрагмент P.

Если C хочет предлагать функции P другим компаниям/системам, он делает это с помощью API.

Это интерфейс для P. Способ взаимодействия внешних систем с P.

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

В целях, однако, они на самом деле довольно разные.

Вы создаете что-то с SDK, и вы используете или потребляете что-то с API.

Ответ 4

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

Ответ 5

Интерфейс прикладного программирования - это набор подпрограмм/структур данных/классов, который определяет способ взаимодействия с целевой платформой/программным обеспечением, таким как OS X, Android, приложение для управления проектами, программное обеспечение для виртуализации и т. /p >

Хотя Software Development Kit - это оболочка API/s, которая упрощает работу для разработчиков.

Например, Android SDK позволяет разработчикам взаимодействовать с платформой Android в целом, в то время как сама платформа построена составными программными компонентами, общающимися через API.

Кроме того, иногда SDK создаются для облегчения разработки на определенном языке программирования. Например, веб-драйвер Selenium (встроенный Java) предоставляет API-интерфейсы для управления любым браузером изначально, а capybara можно рассматривать как SDK, который позволяет разработчикам Ruby использовать веб-драйвер Selenium. Тем не менее, веб-драйвер Selenium также является SDK сам по себе, поскольку он сочетает взаимодействие с различными драйверами родного браузера в один пакет.

Ответ 6

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

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

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

Ответ 7

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

SDK = система обработки Word... для детей 2-х лет, которая пишет прямо из идей

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

Ответ 8

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

Ответ 9

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

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

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

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

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

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

Ответ 10

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