Frage

Ich versuche, einem Nicht-Entwickler den Unterschied zwischen einer API und einem SDK zu erklären.Ich muss erklären, warum ein kommerzieller Anbieter von Fingerabdrucksoftware wahrscheinlich kein SDK bereitstellt, obwohl er sicherlich eines verwendet hat.

Sowohl Gerätehersteller als auch Softwareanbieter können und sollten eine klar definierte API bereitstellen.Diese API ermöglicht es anderen Softwareprogrammen, mit den eigenen Softwarekomponenten oder Hardwaregeräten des Anbieters zusammenzuarbeiten (zu schreiben).

Wenn jemand weitere Ideen hat, um dies klar zu erklären, würde ich mich über Vorschläge sehr freuen.Das möchte ich betonen Ziel ist es, die Konzepte einem Nicht-Programmierer zu erklären, der sich mit der Fachsprache der Entwickler nicht auskennt.

Konkret habe ich versucht, es im Zusammenhang mit einem Fingerabdrucksensor im Vergleich zu Software zur Registrierung/Verifizierung wie folgt zu erklären:

Wenn ich ein Fingerabdruck -Gerät/Sensorhersteller bin und nicht im Schreiben von Software, kann ich mein Produkt besser vermarkten:

  1. Stellen Sie sicher, dass meine Gerätetreiber auf einer Vielzahl von Betriebssystemen installierbar sind
  2. Definieren und geben Sie eine API für Softwareentwickler, um Programme (z. B. für die Einschreibung, Überprüfung) zu schreiben, um mein Gerät zu „sprechen“ oder zu verwenden
  3. Entwickeln und geben Sie einen SDK (einen Schritt über eine API hinaus), um Softwareentwicklern das Schreiben von Programmen, die mit meinem Gerät funktionieren, einfacher und schneller zu machen.SDKs können Helfer -Code -Bibliotheken, Referenzanwendungen, Dokumentation usw. bereitstellen usw.
War es hilfreich?

Lösung

Stück des Kuchens:

  • eine API ist eine Schnittstelle . Es ist wie die Angabe der Telefonanlage oder die elektrischen Leitungen in Ihrem Hause. Alles * kann es verwenden, solange sie weiß, wie man Schnittstelle. Sie können sogar off-the-shelf Software kaufen eine bestimmte API zu verwenden, so wie Sie das Regal Telefongeräte oder Geräte kaufen können, die in die AC-Verkabelung in Ihrem Haus stecken.
  • ein SDK ist Implementierung Werkzeuge . Es ist wie ein Kit, das erlaubt ** Sie etwas Brauch anschließen an die Telefonanlage oder elektrische Verdrahtung.
  • bauen

* Alles kann eine API verwenden. Einige APIs haben Sicherheitsbestimmungen Lizenzschlüssel benötigen, Authentifizierung, etc., die vollständige Nutzung der API in besonderen Fällen verbieten kann, aber das ist nur, weil bestimmte Authentifizierung / Autorisierung Schritte fehlschlagen. Jede Software, die die richtigen Anmeldeinformationen präsentiert (falls erforderlich) kann die API verwenden.

** Technisch wenn eine API gut dokumentiert ist, müssen Sie nicht einen SDK benötigen, um Ihre eigene Software zu bauen, die API zu verwenden. Aber mit in der Regel ein SDK den Prozess sehr viel einfacher macht.

Andere Tipps

API ist wie die Bausteine ​​eines Puzzlespiels, mit dem ein Kind spielt, um Blöcke in verschiedenen Formen zusammenzufügen und etwas zu bauen, das ihm einfällt.

SDK, hingegen ist eine richtige Werkstatt, in der alle Entwicklungswerkzeuge zur Verfügung stehen und nicht vorgefertigte Bausteine.In einer Werkstatt verfügt man über die eigentlichen Werkzeuge und ist nicht auf Blöcke beschränkt. Daher kann man eigene Blöcke herstellen oder etwas von Anfang an ohne Blöcke erstellen.

Codierung ohne SDK oder API ist, als würde man alles von Grund auf ohne Werkstatt herstellen – man muss sogar seine eigenen Werkzeuge herstellen

Angenommen, Firma C bietet Produkt P und P beinhaltet Software in irgendeiner Weise. Dann kann C eine Bibliothek / Satz von Bibliotheken an Software-Entwickler bieten, die P Softwaresysteme treiben.

Das Bibliothek / Bibliotheken sind ein SDK . Es ist ein Teil der Systeme von P. Es ist ein Kit für Software-Entwickler zu verwenden, um zu ändern, konfigurieren, beheben, zu verbessern, usw. die Software Stück P.

Wenn C will P Funktionalität an anderen Unternehmen / Systeme bieten, tut sie dies mit einem API .

Dies ist eine Schnittstelle zu P. Ein Weg für externe Systeme mit P zu interagieren.

Wenn Sie in Bezug auf die Umsetzung denken, werden sie sehr ähnlich zu sein scheinen. Vor allem jetzt, dass das Internet wie ein großes verteiltes Betriebssystem worden ist.

Zweck, aber sie sind eigentlich ganz verschieden sind.

Sie haben etwas mit einem SDK bauen und Sie verwenden oder konsumieren etwas mit einer API.

Application Programming Interface ist ein Satz von Routinen / Datenstrukturen / Klassen, die einen Weg gibt an, mit der Zielplattform / Software wie OS X, Android, Projektmanagement-Anwendung, Virtualisierungs-Software usw. zu interagieren

Während Software Development Kit ist ein Wrapper um API / s, die der Job einfach für Entwickler macht.

Zum Beispiel Android SDK Entwickler erleichtert mit der Android-Plattform als Ganze zu interagieren, während die Plattform selbst durch Verbundsoftwarekomponenten aufgebaut wird über APIs in Verbindung stehen.

Auch werden manchmal SDKs gebaut Entwicklung in einer bestimmten Programmiersprache zu erleichtern. Zum Beispiel Selen Web-Treiber (gebaut in Java) bietet APIs jeden Browser nativ zu fahren, während capybara kann ein ein SDK in Betracht gezogen werden, dass Selen Web-Treiber verwenden Ruby-Entwickler erleichtert. Selen Web-Treiber ist jedoch auch ein SDK für sich allein, wie es die Interaktion mit verschiedenen nativen Browser-Treiber in einem Paket vereint.

Ich bin mir nicht sicher, dass es keine offizielle Definition dieser beiden Begriffe. Ich verstehe, eine API eine Reihe von dokumentierten programmierbaren Bibliotheken und unterstützt Quelle zu sein, wie Kopf- oder IDL-Dateien. SDKs in der Regel APIs enthalten aber oft oft hinzufügen Compiler, Werkzeuge und Proben in den Mix.

API-Spezifikationen, wie etwas, eine Schnittstelle, wie zum Beispiel „Die Eisenbahnschienen sind vier Meter voneinander entfernt, und die Metallstange ist 1 Zoll breit“ tun Nun, da Sie die API haben, können Sie jetzt einen Zug bauen, die passen auf diesen Eisenbahnschienen, wenn Sie wollen, überall gehen. API ist nur Informationen darüber, wie Sie den Code zu bauen, es tut nichts.

SDK ist einige Paket von tatsächlichen Tools, die bereits besorgt über die Spezifikationen. „Hier ist ein Zug, einige Kohle, und ein Wartungs Mann. Verwenden Sie es von Ort zu gehen, zu platzieren“ Mit dem SDK Sie keine Sorge über Besonderheiten. Ein SDK eigentlicher Code ist, kann es von selbst etwas zu tun, verwendet werden, aber natürlich wird der Zug nicht spontan starten, haben Sie immer einen Leiter bekommen haben, um den Zug zu steuern.

SDKs auch ihre eigenen APIs haben. „Wenn Sie den Zug setzen Kohle darin anzutreiben wollen“, „Ziehen Sie den blauen Hebel, um den Zug zu bewegen.“, „Wenn der Zug beginnt, die lustig, rufen Sie die Wartung Mann“ etc.

API = Wörterbuch der verfügbaren Wörter und ihre Bedeutung (und die erforderliche Grammatik, sie zu kombinieren)

SDK = ein Textverarbeitungssystem ... für 2 Jahre alte Babys ..., die direkt von Ideen

schreibt

Auch wenn Sie zur Schule gehen und einen Master in Ihrer Sprache nach ein paar Jahren werden, das SDK werden Sie schreiben ganz sinnvolle Sätze in kürzester Zeit helfen (Versöhnlich die Tatsache, dass in diesem Beispiel, wie ein Baby Sie haven‘ t sogar bekam eine andere Sprache zu lernen, für zumindest das SDK zu lernen, zu verwenden.)

Wie wäre es ... Es ist wie wenn man will ein Heimkino-System in Ihrem Hause installieren. eine API verwendet, ist wie alle Drähte immer, Schrauben, Bits und Stücke. Die Möglichkeiten sind endlos (begrenzt nur durch die Stücke, die Sie erhalten), aber manchmal überwältigend. Ein SDK ist wie ein Kit bekommen. Sie müssen es immer noch zusammen, aber es ist eher wie vorgeschnittene Stücke und Anweisungen für ein IKEA Bücherregal als eine Schachtel mit Schrauben zu bekommen.

Sie verwenden ein SDK Funktionalität einer Bibliothek zuzugreifen, und eine API, es zu kontrollieren.

API = Application Programming Interface SDK = Software Development Kit

Ein SDK scheint ein vollständiger Satz von API s zu sein, die es Ihnen ermöglichen, die meisten jede Aktion auszuführen Sie für die Erstellung von Anwendungen benötigen würde. Zusätzlich ein SDK können weitere Tools beinhalten für die Plattform / Stück zu entwickeln, dass es da ist.

Ein API auf der anderen Seite ist nur eine Reihe von verwandten Methoden, die gut sein können für einen bestimmten Zweck.

Als Beispiel enthält das JDK (Java Development Kit), um die API sowie die Compiler, Laufzeiten und verschiedene andere Werkzeuge. Die Java-API ist einfach alle Bibliotheken, die den Kern Sprache bilden, die Sie mit aus dem Kasten heraus arbeiten.

Beispiele von APIs: Java API, Google Maps API, Flash Player-API.

Beispiele für SDKs: JDK, GWT, Flex SDK.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top