Was ist ein SDK?

Veröffentlicht: 2022-11-13

Das SDK ist eines der am häufigsten verwendeten Tools in der Werbetechnologie (AdTech). Obwohl die meisten Publisher und Werbetreibenden routinemäßig SDKs zum Schalten von Anzeigen verwenden, fragen Sie sich vielleicht nach den Details: was es ist, wie es funktioniert und was es enthält. Zu verstehen, was SDKs sind und wie Entwickler sie verwenden, ist entscheidend, um zu verstehen, was eines für Ihre Anforderungen geeignet macht.

Definition & Bedeutung eines SDK

SDK steht für Software Development Kit . Alternative Begriffe sind „ devkit “ oder „ dev-kit“.

SDKs sind Softwarepakete , die mehrere Programme und Tools zum Erstellen von Computeranwendungen enthalten. Das SDK kann als das Rechenäquivalent eines Toolkits betrachtet werden.

Art und Beschaffenheit der Tools eines SDKs variieren je nach Verwendungszweck. Sie können Dokumentation, Compiler, Codebibliotheken, Codebeispiele, Entwicklungsumgebungen, Editoren, Debugger, Test- und Analysetools und vieles mehr umfassen.

SDKs sind in der Regel zum Erstellen einer Anwendung auf einem bestimmten Betriebssystem oder einer bestimmten Plattform mit einer oder mehreren Programmiersprachen konzipiert. Beispielsweise erfordert die Entwicklung einer Android-Anwendung normalerweise ein Android-spezifisches SDK.

In SDKs enthaltene Ressourcen und Toolsets

Obwohl jedes SDK einzigartig ist, enthalten die meisten die gleichen Arten von Tools . Nachfolgend sind einige der gängigsten Arten von SDK-Tools und -Software aufgeführt.

Compiler

Der Compiler ist eines der kritischsten Elemente eines SDK . Compiler sind spezialisierte Software, die in der Lage ist, den menschenlesbaren Quellcode eines Programms in maschinenlesbaren, ausführbaren Code zu übersetzen.

Entwickler benötigen Compiler, um Anwendungen und Programme aus Code zu erstellen, der in einer bestimmten Programmiersprache für ein bestimmtes Betriebssystem oder eine bestimmte Umgebung geschrieben wurde .

Beispielsweise benötigt ein Entwickler, der eine Anwendung unter Verwendung der C++-Programmiersprache für ein Windows-System erstellt, einen Compiler, der C++-Code lesen und interpretieren und ihn in ein Format kompilieren kann, das durch das Windows-Betriebssystem ausführbar ist (z. B. eine .exe-Datei).

Die meisten Compiler arbeiten nach einem 5-Schritte-Prozess:

  1. Lexikalische und Syntaxanalyse: Der Compiler zerlegt den Quellcode in lexikalische Token, die als das Programmieräquivalent von Sätzen angesehen werden können. Es liest dann jeden Satz und prüft auf Syntaxfehler . Wenn er keine findet, fährt der Compiler mit dem nächsten Schritt fort
  2. Semantische Analyse: Der Compiler analysiert den Code ein zweites Mal, um seine Genauigkeit zu überprüfen und auf logische Fehler zu prüfen.
  3. Zwischendarstellung: Nachdem überprüft wurde, dass der Quellcode keine semantischen Fehler aufweist, übersetzt der Compiler ihn in ein Format, das als Zwischendarstellung (IR) bekannt ist . IR-Code ist eine Darstellung des Quellcodes in einem Format, das dem eines maschinenlesbaren ausführbaren Codes näher kommt, aber noch nicht zur Ausführung bereit ist.
  4. Optimierung: Compiler optimieren den IR-Code , um sicherzustellen, dass er schneller und effizienter läuft (verbraucht weniger Rechenressourcen). Die Optimierung kann bestimmte Teile des IR-Codes trimmen, optimieren oder umschreiben , um ihn schlanker zu machen, aber sie kann die Funktionalität oder Bedeutung des Codes nicht ändern.
  5. Ausgabe: Der Compiler erzeugt aus dem optimierten Code ein maschinenlesbares ausführbares Programm .

Debugger

Debugger, auch bekannt als Debugging-Tools , sind eine weitere Kategorie wichtiger Tools, die in SDKs zu finden sind. Debugger sind spezialisierte Software, die in der Lage ist, andere Programme zu lesen und auf Softwarefehler zu prüfen, ein weiter Begriff, der eine Reihe von Programmierfehlern, Fehlern, unbeabsichtigtem Verhalten und anderen Fehlern umfasst.

Obwohl Debugger nicht jeden Fehler in einem Programm erkennen und entfernen können, sind sie für den Entwicklungsprozess von entscheidender Bedeutung, da sie Entwicklern helfen können, so viele Fehler und Probleme wie möglich aus der Software oder Anwendung vor der Veröffentlichung zu entfernen.

Entwickler verwenden Debugging-Tools hauptsächlich während der Testphase eines typischen Softwareentwicklungszyklus, der kurz vor der Bereitstellung und Freigabe und nach dem Design und der Entwicklung stattfindet.

Das Debuggen erfolgt relativ spät während des Entwicklungszyklus eines Programms, da es für die Test- und Qualitätskontrollphasen eines Programms wesentlich ist. Es kann nur effizient durchgeführt werden, nachdem der Code keine grundlegenden Änderungen mehr benötigt, da das Hinzufügen von neuem Code nach dem Debuggen das Risiko birgt, neue, unentdeckte Fehler einzuführen.

APIs

API steht für Application Program Interface. Obwohl SDKs oft mit APIs verwechselt werden, sind sie nicht dasselbe und führen unterschiedliche Aufgaben aus.

Eine API ist eine Reihe von Funktionen , die entwickelt wurden, um die Kommunikation zwischen zwei verschiedenen Programmen , Anwendungen oder Computerplattformen zu ermöglichen. SDKs enthalten normalerweise mehrere APIs, die entwickelt wurden, um die Entwicklung zu erleichtern. Obwohl der Zweck eines SDK darin besteht, Anwendungen zu entwickeln, kann ein Entwickler die Tools in einem SDK auch verwenden, um seine eigenen APIs zu erstellen.

Dokumentation

SDKs enthalten in der Regel eine Dokumentation, in der beschrieben wird, wie die einzelnen Tools und Elemente, die sie enthalten, verwendet werden . Die SDK-Dokumentation kann entweder offline und in Form von lesbaren Dateien im SDK enthalten sein oder online auf einer Website gehostet werden. Neben Textdateidokumenten kann die Dokumentation eines SDKs auch Beispielbilder, illustrative Grafiken, häufig gestellte Fragen und sogar Tutorials enthalten.

Codebeispiele

Codebeispiele sind Ausschnitte aus vorgefertigtem Code . In SDKs enthalten Codebeispiele funktionale Beispiele dafür, was ein Entwickler mit dem SDK tun kann, und helfen ihnen, die Fähigkeiten des SDKs in einen Kontext zu setzen.

Während die meisten Codebeispiele als Beispiele dienen können, von denen Sie sich inspirieren lassen können, wissen Entwickler, dass die in einem SDK enthaltenen Codebeispiele bereits funktionsfähig und möglicherweise für die Entwicklung einer Anwendung verwendbar sind . Folglich können sich viele Entwickler auch dafür entscheiden, Codebeispiele (oder Teile davon) direkt in den Quellcode einer neuen Anwendung zu integrieren.

Programmierbibliotheken

Eine Programmierbibliothek (oder Codebibliothek) ist eine gepackte Sammlung von vorgefertigtem Code , der dazu bestimmt ist, bestimmte Aufgaben auszuführen, die nach Funktion angeordnet und organisiert sind. Entwickler verlassen sich auf Bibliotheken, um allgemeine Aufgaben und Probleme schneller zu lösen, die Gesamtentwicklungszeit zu verkürzen und die Zuverlässigkeit des Quellcodes zu verbessern.

Da Codebibliotheken vorgefertigten Quellcode enthalten müssen, ist jede Bibliothek spezifisch für eine Programmiersprache . Beispielsweise kann ein Entwickler, der eine Anwendung mit der Sprache Python schreibt, nur Bibliotheken verwenden, die Python-Code enthalten, wie z. B. NumPy oder TensorFlow.

Rahmen

Auf den ersten Blick mag ein Framework einer Programmierbibliothek ähneln: Beide enthalten Codeschnipsel, die bestimmte Aufgaben lösen und Zeit sparen sollen . Viele SDKs enthalten jedoch sowohl Codebibliotheken als auch Frameworks, und die spezifische Art und Weise, wie sie einem Entwickler helfen, ist grundlegend unterschiedlich.

Der beste Weg, den Unterschied zwischen einer Programmierbibliothek und einem Framework zu verstehen, ist die Aufrufanalogie. Bei einer Codebibliothek ruft der Quellcode des Entwicklers die Funktionen in der Bibliothek auf, um eine bestimmte Aufgabe zu erfüllen. Mit anderen Worten, der Entwickler verwendet Bibliotheken, um den Ablauf der Anwendung zu steuern .

Wenn ein Entwickler dagegen ein Framework verwendet, um eine Anwendung zu erstellen, dient das Framework als Grundlage , die den Quellcode des Entwicklers aufruft. Der Entwickler kann keine neue Funktionalität integrieren, wenn sie nicht mit diesem Framework kompatibel ist. Mit anderen Worten, das Framework steuert den Ablauf der Anwendung.

API-Test- und Analysetools

Viele SDKs enthalten neben APIs zusätzliche Tools , z. B. API-Tests und API-Analysesoftware . Der Zweck dieser Supportprogramme besteht darin, die Leistung einer API zu testen und zu überprüfen, ob sie wie erwartet funktioniert und dabei alle relevanten Sicherheits- und Zuverlässigkeitsstandards erfüllt.

Entwickler, die sich zum Erstellen einer Anwendung auf eine oder mehrere APIs verlassen, können diese Test- und Analysetools während der Testphase des Entwicklungszyklus häufig verwenden.

Was macht ein SDK?

Jedes SDK ist anders , was bedeutet, dass es keine Schritt-für-Schritt-Anleitung gibt, die verwendet werden kann, um alle SDKs zu verwenden. Für die meisten SDKs gelten jedoch bestimmte allgemeine Prinzipien : wie sie erstellt und vertrieben werden, welche Art von Geschäftsbedingungen für ihre Verwendung gelten, wie Entwickler die Tools in einem SDK verwenden könnten und wie sich SDKs auf die Veröffentlichung einer fertigen Anwendung auswirken.

Wie SDKs erstellt werden

Bevor Entwickler ein SDK zum Erstellen von Apps verwenden können, muss ein anderes Entwicklerteam es entwerfen und erstellen . Die meisten erfolgreichen SDKs stammen von großen Firmen, die ihre eigenen Betriebssysteme, Plattformen oder Anwendungen entwickelt haben.

In diesen Fällen ist das SDK in der Regel für Entwickler gedacht, die Apps erstellen möchten, die mit einer Plattform kompatibel sind , die von den Autoren des SDK entwickelt oder verwaltet wird . Beispielsweise wurde das Android Native Development Kit von Google entwickelt, um Entwicklern die Verwendung von C- und C++-Code für die Entwicklung von Android-Anwendungen zu ermöglichen.

Die SDK-Entwicklung ist jedoch nicht nur auf große Unternehmen beschränkt. Abhängig von den beabsichtigten Zwecken und Anwendungen des SDK können erfahrene Entwickler unabhängig voneinander ihre eigenen SDKs entwickeln , vorausgesetzt, sie sind mit den Zielprogrammiersprachen, Betriebssystemen und APIs bestens vertraut.

SDK-Entwickler müssen auch über die Ressourcen verfügen, um die gesamte erforderliche Dokumentation zu erstellen, 100 % funktionsfähige und fehlerfreie Codebeispiele zu entwickeln und bei Bedarf benutzerdefinierte Tools (z. B. Compiler, Debugger usw.) zu entwerfen .

Wer kann ein SDK verwenden?

Die Vertriebskanäle, die verwendet werden, um SDKs Entwicklern zur Verfügung zu stellen, variieren je nachdem, wer das SDK erstellt hat und für welche Arten von Anwendungen es entwickelt wurde.

Obwohl die meisten SDKs kostenlos sind, werden viele mit Lizenzvereinbarungen geliefert, in denen die Bedingungen für die Entwickler festgelegt sind. Beispielsweise kann ein frei verfügbares SDK Lizenzbedingungen enthalten, die es Entwicklern ermöglichen, Anwendungen zu erstellen, aber keine Weiterverteilung des SDK oder die kommerzielle Nutzung von Anwendungen, die unter Verwendung dieses SDK erstellt wurden, gestatten.

Folglich muss ein Entwickler die Lizenzbedingungen des SDK sorgfältig lesen und verstehen , da sie die Entwicklungs- und Veröffentlichungsprozesse ihrer Anwendung erheblich beeinflussen können.

Einige SDKs sind nicht frei verfügbar und nur unter bestimmten Bedingungen für Entwickler zugänglich. Einige Plattformen verlangen beispielsweise von Entwicklern, dass sie das SDK direkt kaufen oder zahlen, um Mitglied der SDK-Autorenplattform zu werden, als Bedingung für den Zugriff auf das SDK.

In selteneren Fällen können bestimmte SDKs für ein bestimmtes Unternehmen oder Geschäft privat sein und nur für den internen Gebrauch bestimmt sein . Beispielsweise kann ein Entwicklungsunternehmen für Videospiele ein SDK nur zu dem Zweck entwickeln, Entwicklermitarbeitern beim Erstellen neuer Spiele zu helfen. Solche SDKs sind nicht für die öffentliche Nutzung bestimmt und enthalten in der Regel viele proprietäre Tools und Software .

Wie Entwickler SDKs für die Softwareerstellung verwenden

Nachdem ein Entwickler das SDK erworben hat, mit dem er eine Anwendung in der von ihm gewählten Kombination aus Programmiersprachen und Zielplattformen entwickeln kann, sind die allgemeinen Nutzungsschritte im Allgemeinen relativ einfach:

  1. Installieren Sie das SDK
  2. Starten Sie die Entwicklung über die Schnittstelle des SDK
  3. Verwenden Sie die vom SDK bereitgestellten Tools , um bestimmte Aspekte der Entwicklung zu beschleunigen oder zu erleichtern
  4. Kompilieren Sie den Quellcode in eine funktionsfähige Anwendung

Obwohl SDKs als das Programmieräquivalent eines Toolkits beschrieben werden, was bedeutet, dass Entwickler den Inhalt eines SDKs als Werkzeuge zum Erstellen neuer Anwendungen verwenden, verwendet die Branche häufig den Begriff „Integration“ , um sich auf Elemente zu beziehen, die für die direkte Verwendung und Einfügung in den Quellcode vorgesehen sind einer neuen Bewerbung.

„Integrieren eines SDK“ bedeutet beispielsweise nicht, dass der Entwickler das gesamte SDK in den Code der Anwendung integriert. Stattdessen ist es eine Abkürzung für die Elemente eines SDK, die ein Entwickler direkt integrieren kann , z. B. Codebeispiele, aus einer Bibliothek gezogener Code, APIs und Frameworks.

Eine gute Möglichkeit, den Unterschied zu verstehen, besteht darin, die Toolkit-Analogie zu verwenden und SDK-Tools mit Ersatzschrauben und Schraubendrehern zu vergleichen: Einige SDKs enthalten Tools , die mit Schraubendrehern vergleichbar sind (z. B. Compiler, Debugger), und Elemente, die eher wie Schrauben bestimmter Arten und Größen sind (z Bibliothekscode, APIs). Das fertige Produkt kann letzteres enthalten, aber Sie würden nicht erwarten, dass es ersteres enthält.

CodeFuel kann Ihnen helfen, die besten SDKs zu finden

Bei CodeFuel können wir Softwareentwicklern und -herausgebern helfen, die besten und umfassendsten SDKs zu finden, um Anwendungen so effizient wie möglich zu erstellen und zu monetarisieren. Unser Team kann Ihnen auch helfen, andere Wege zu finden, um Ihre digitalen Eigenschaften zu monetarisieren und das Beste aus Ihren verfügbaren Assets zu machen. Kontaktieren Sie uns noch heute für weitere Informationen.