Start Magazin Tipp: Was ist ein SDK? Was ist ein API?

Tipp: Was ist ein SDK? Was ist ein API?

463
0
sdk | Android-User.de
(Bildquelle: Navielektro)

In dieser Woche wurde ja das Fuchsia SDK für Entwickler zum Download bereitgestellt. Während das Android SDK speziell für Android entwickelt wurde, stehen das Fuchsia SDK und auch das Flutter SDK für die geräteübergreifende Entwicklung von Apps. Doch was ist eigentlich ein SDK? In unserem heutigen Tipp-Artikel erfährst du es.

Was ist ein SDK?

Die Abkürzung SDK steht für Software Development Kit und bedeutet Software Entwicklungs Kit. Ein Paket also, in dem Entwickler hilfreiche Ressourcen für die Erstellung einer Software finden. Im Paket befinden sich verschiedene Tools, Bibliotheken und auch Beispiele.

Bevor Firmware oder Smartphone Apps für bestimmte Plattformen entwickelt werden können, muss man einige Dinge wissen: Zum Beispiel, welche Schnittstellen der Hersteller zur Verfügung stellt und wie mit ihnen gearbeitet werden kann.

Und genau dafür veröffentlichen die Hersteller umfangreiche Software Development Kits (SDKs). Die Kits enthalten alle benötigten Ressourcen und sollen den Entwicklern die Arbeit erleichtern. Der genaue Inhalt eines Kits ändert sich von Fall zu Fall, je nachdem, was entwickelt werden soll. Es befinden sich jedoch meist die benötigten APIs für ein System darin. Sie geben dem Entwickler Auskunft über die verfügbaren Schnittstellen und den Aufbau.

Was ist ein API?

API bedeutet Application Programming Interface und ist eine Schnittstelle. Es verbindet Soft- und Hardwarekomponenten, beziehungsweise sie übersetzen die Software in Maschinensprache und machen sie so für andere Komponenten lesbar. Beim Programmieren vereinheitlichen APIs die Datenübergabe zwischen Modulen und Programmen. Ohne APIs kommen die heutigen Programme nicht mehr aus. Einzelne Programmteile/Module werden vom eigentlichen Code abgekapselt. Die Module kommunizieren dann ausschließlich über die Schnittstelle (API) und sind somit auch leichter zu warten. Eine API testet dank der übergebenen Daten, ob das Modul funktioniert. Somit lassen sich Fehler leichter aufspüren und beheben.

Mithilfe der Informationen aus dem SDK weiß der Entwickler genau, ob und wie sein Programm in das bestehende System integriert werden kann. Weiterhin können in einem SDK auch Beispiele oder Testprogramme enthalten sein, welche dann auf einem Emulator ausprobiert werden können. Auch sind bestimmte Bibliotheken notwendig, damit die neue Software mit bestehenden Systemen zusammenarbeiten kann oder spezielle Zusatzfunktionen verfügbar werden. Für andere Szenarien sind besonderer Tools notwendig oder spezielle Treiber. Alles, um die neue Software für die Komponenten des Herstellers zu entwickeln.

Die meisten Hersteller stellen die SDKs für Hard- und Software kostenlos zur Verfügung. So auch im Android Open Source Project (kurz AOSP). Es macht den interessierten Entwicklern das Programmieren von Apps für Android möglichst einfach. Für alle gängigen Smartphone-Plattformen stehen SDKs zur Verfügung, denn ohne die Apps von Drittanbietern sähe es ganz schön langweilig aus auf unseren Smartphones.

Entwickeln von Apps für Android mit Android Studio

Wer Apps für Android-Smartphones entwickeln möchte, kann hierfür zum Beispiel Android Studio verwenden. Android Studio ist seit 2014 die offizielle Entwicklungsumgebung für Android (auch Android Wear/Wear OS und Android TV). Es bindet das Android SDK in die Umgebung ein und eignet sich dank Theme- und Layout-Editor auch für Einsteiger. Mittels Editor können Benutzeroberflächen per Drag and Drop gestaltet und mit unterschiedlichen Auflösungen getestet werden. Google Dienste lassen sich dann in der IDE konfigurieren und so für die App bereitstellen.

  • Die Software basiert auf JetBrains IntelliJ IDEA mit Java als Programmiersprache.
  • Das Build-Management-Tool basiert auf Gradle
  • Android Studio unterstützt ProGuard, um Quellcodes obfuscaten zu können. Hierbei wird der Quellcode verschleiert und man kann ihn nicht so einfach „klauen“.
  • Einbindung von Lint für statistische Code-Analysen

    IDE – Integrierte Entwicklungsumgebung

    Zu einem SDK gehört gelegentlich auch eine Integrated Development Environment, eine Integrierte Entwicklungsumgebung – kurz IDE. Diese stellt Programmierern eine Sammlung der wichtigsten Werkzeuge zur Softwareentwicklung unter einer Oberfläche zur Verfügung. Das Erstellen von Programmen wird somit vereinfacht. Auch Android Studio ist eine IDE, welche auf IntelliJ basiert; ebenso wie Eclipse und Netbeans.

    Eine IDE kann beispielsweise einen Editor mit Quelltextformatierung und Syntaxhervorhebung, Debugger, Werkzeuge zur Erstellung von grafischen Oberflächen und viele mehr enthalten. Alle Tools können untereinander Informationen austauschen und beschleunigen damit die Arbeitsvorgänge. Fehler bei der Programmausführung können direkt im Quelltext markiert und dadurch schnell behoben werden. Ohne ein IDE müssten die verschiedenen Programmen getrennt voneinander ausgeführt und manuell synchronisiert werden.

    Man kann jedoch als Alternative das Android SDK separat nutzen, um mit einer anderen IDE (zum Beispiel Eclipse) Apps für Android zu entwickeln. Dafür verzichtet man dann jedoch auf jeglichen Komfort durch IDE. Weiterhin wird Eclipse für die Android App-Entwicklung nicht mehr weiter supported.

    Fazit

    Ein SDK ist also nichts anders als ein Paket, dessen Inhalt aus verschiedenen Werkzeugen besteht, mit denen der Entwickler Programme für die unterschiedlichsten Plattformen entwicklen kann.