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



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



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



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



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




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




  1. убедитесь, что драйверы моих устройств можно установить в самых разных операционных системах

  2. определить и предоставить API для разработчиков программного обеспечения для написания программ (например, для регистрации, проверки), чтобы "говорить" или использовать мой
    устройство

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


728   10  

10 ответов:

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

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

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

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

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

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

кодирование без SDK или API Как делать все с нуля, без мастерской вы должны даже сделать свои собственные инструменты

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

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

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

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

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

по назначению, однако, они на самом деле довольно различны.

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

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

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

пока Комплект Для Разработки Программного Обеспечения это оболочка вокруг API / s, что делает работу легкой для разработчиков.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

примеры API:Java API, Google Maps API, Flash Player API.

примеры SDK:JDK, УГВ, Flex SDK.

Comments

    Ничего не найдено.