Android-Softwareentwicklung - Android software development

Der Android-Stack
Das Nexus 4 , Teil der Google Nexus- Serie, einer Reihe "entwicklerfreundlicher" Geräte

Android-Softwareentwicklung ist der Prozess, bei dem Anwendungen für Geräte erstellt werden, auf denen das Android-Betriebssystem ausgeführt wird . Google gibt an, dass "Android-Apps mit Kotlin- , Java- und C++- Sprachen geschrieben werden können" unter Verwendung des Android Software Development Kit (SDK), während die Verwendung anderer Sprachen auch möglich ist. Alle Nicht - Java Virtual Machine (JVM) Sprachen, wie Go , JavaScript , C , C ++ oder Montag , brauchen die Hilfe von JVM Sprachcode, die von Tool geliefert werden kann, wahrscheinlich mit eingeschränkter API - Unterstützung. Einige Programmiersprachen und Tools ermöglichen eine plattformübergreifende App-Unterstützung (dh sowohl für Android als auch für iOS ). Tools, Entwicklungsumgebungen und Sprachunterstützung von Drittanbietern wurden seit der Veröffentlichung des ersten SDK im Jahr 2008 ebenfalls weiterentwickelt und erweitert. Der offizielle Mechanismus zur Verteilung von Android-Apps an Endbenutzer ist Google Play ; Es ermöglicht auch eine schrittweise Veröffentlichung von Apps sowie die Verteilung von App-Vorabversionen an Tester.

Offizielle Entwicklungstools

Das Android Software Development Kit (SDK) enthält ein umfassendes Set an Entwicklungstools. Die Android SDK-Plattformtools sind eine separat herunterladbare Teilmenge des vollständigen SDK, bestehend aus Befehlszeilentools wie adbund fastboot. Die Android Debug Bridge (ADB) ist ein Tool zum Ausführen von Befehlen auf einem verbundenen Android-Gerät. Fastboot ist ein Protokoll zum Flashen von Dateisystemen. In C / C++ geschriebener Code kann mit dem Android Native Development Kit (NDK) in ARM- oder x86- nativen Code (oder deren 64-Bit-Varianten) kompiliert werden .

Android Open Accessory Development Kit

Die Android 3.1-Plattform (ebenfalls auf Android 2.3.4 zurückportiert) führt Android Open Accessory-Unterstützung ein, die es externer USB-Hardware (ein Android-USB-Zubehör) ermöglicht, mit einem Android-betriebenen Gerät in einem speziellen "Zubehör"-Modus zu interagieren. Wenn sich ein Android-betriebenes Gerät im Zubehörmodus befindet, fungiert das angeschlossene Zubehör als USB-Host (versorgt den Bus und zählt Geräte auf) und das Android-betriebene Gerät fungiert als USB-Gerät. Android USB-Zubehör wurde speziell für den Anschluss an Android-betriebene Geräte entwickelt und hält sich an ein einfaches Protokoll (Android-Zubehörprotokoll), das es ihnen ermöglicht, Android-betriebene Geräte zu erkennen, die den Zubehörmodus unterstützen.

Externe Hardwareentwicklung

Zu den Entwicklungstools, die einem Android-Gerät bei der Interaktion mit externer Elektronik helfen sollen , gehören IOIO , Android Open Accessory Development Kit , Microbridge, Triggertrap usw.

Android-Entwicklerherausforderung

Die Android Developer Challenge war ein Wettbewerb, um die innovativste Anwendung für Android zu finden. Google bot Preise in Höhe von insgesamt 10 Millionen US-Dollar an , die zwischen ADC I und ADC II verteilt wurden. ADC I nahm vom 2. Januar bis 14. April 2008 Einreichungen an. Die 50 vielversprechendsten Beiträge, die am 12. Mai 2008 bekannt gegeben wurden, erhielten jeweils einen Preis in Höhe von 25.000 US-Dollar für die Weiterentwicklung. Es endete Anfang September mit der Ankündigung von zehn Teams, die jeweils 275.000 US-Dollar erhielten, und zehn Teams, die jeweils 100.000 US-Dollar erhielten.

ADC II wurde am 27. Mai 2009 bekannt gegeben. Die erste Runde des ADC II endete am 6. Oktober 2009. Die Gewinner der ersten Runde des ADC II, bestehend aus den 200 besten Bewerbungen, wurden am 5. November 2009 bekannt gegeben. Abstimmung für die zweite Runde wurde ebenfalls am selben Tag eröffnet und endete am 25. November. Google gab am 30. November mit SweetDreams, What the Doodle!? die Top-Gewinner von ADC II bekannt. und WaveSecure wurde als Gesamtsieger der Challenge nominiert.

Community-basierte Verteilungen

Es gibt eine Gemeinschaft von Open-Source- Enthusiasten, die Android-basierte Distributionen (zB Firmware ) mit einer Reihe von Anpassungen und zusätzlichen Funktionen erstellen und teilen , wie zum Beispiel verlustfreie FLAC- Audiounterstützung und die Möglichkeit, heruntergeladene Anwendungen auf der microSD- Karte zu speichern . Dies beinhaltet normalerweise das Rooten des Geräts. Rooting ermöglicht Benutzern den Root-Zugriff auf das Betriebssystem und ermöglicht so die volle Kontrolle über das Telefon. Das Rooten hat auch mehrere Nachteile, darunter erhöhtes Hacking-Risiko, hohe Wahrscheinlichkeit von Bricking , Garantieverlust, erhöhte Virenangriffsrisiken usw. Es ist auch möglich, benutzerdefinierte Firmware zu installieren, obwohl der Bootloader des Geräts ebenfalls entsperrt werden muss. Benutzerdefinierte Firmware ermöglicht Benutzern älterer Telefone die Verwendung von Anwendungen, die nur auf neueren Versionen verfügbar sind.

Diese Firmware-Pakete werden häufig aktualisiert, enthalten Elemente der Android-Funktionalität, die noch nicht offiziell in einer vom Mobilfunkanbieter genehmigten Firmware veröffentlicht wurden, und weisen in der Regel weniger Einschränkungen auf. CyanogenMod und OMFGB sind Beispiele für solche Firmware.

Am 24. September 2009 veröffentlichte Google eine Unterlassungserklärung an den Modder Cyanogen, in der es um Probleme mit der Weiterverteilung von Googles Closed-Source-Anwendungen innerhalb der benutzerdefinierten Firmware ging. Obwohl die meisten Android-Betriebssysteme Open Source sind, werden Telefone mit geschlossenen Google-Anwendungen für Funktionen wie Google Play und GPS-Navigation geliefert. Google hat behauptet, dass diese Anwendungen nur über genehmigte Vertriebskanäle von lizenzierten Distributoren bereitgestellt werden können. Cyanogen hielt sich an die Lizenz von Google und vertrieb seine Mod weiterhin ohne die proprietäre Software. Es stellte eine Methode bereit, um lizenzierte Google-Anwendungen während des Installationsprozesses des Mods zu sichern und sie nach Abschluss des Prozesses wiederherzustellen.

Java-Standards

Zu den Entwicklungshindernissen gehört die Tatsache, dass Android keine etablierten Java-Standards, also Java SE und ME, verwendet . Dies verhindert die Kompatibilität zwischen Java-Anwendungen, die für diese Plattformen geschrieben wurden, und solchen, die für die Android-Plattform geschrieben wurden. Android verwendet die Java-Sprachsyntax und -Semantik wieder, stellt jedoch nicht die vollständigen Klassenbibliotheken und APIs bereit, die mit Java SE oder ME gebündelt sind. Es gibt jedoch mehrere Tools auf dem Markt von Unternehmen wie Myriad Group und UpOnTek, die Konvertierungsdienste von Java ME zu Android anbieten.

Android stellt eigene GUI-Klassen bereit und stellt kein Java AWT, Swing oder JavaFX bereit. Es unterstützt nicht die vollständige Java Beans API.

Geschichte und Marktanteil

Android wurde von der Open Handset Alliance entwickelt , die von Google geleitet wird. Das frühe Feedback zur Entwicklung von Anwendungen für die Android-Plattform war gemischt. Zu den genannten Problemen gehören Fehler, fehlende Dokumentation, unzureichende QS-Infrastruktur und kein öffentliches Problemverfolgungssystem. (Google kündigte am 18. Januar 2008 einen Issue Tracker an.) Im Dezember 2007 erklärte Adam MacBeth, Gründer des mobilen MergeLab-Startups: "Funktionalität ist nicht vorhanden, schlecht dokumentiert oder funktioniert einfach nicht ... Es ist eindeutig nicht bereit für die Hauptsendezeit ." Trotzdem erschienen in der Woche nach der Ankündigung der Plattform auf Android ausgerichtete Anwendungen. Die erste öffentlich verfügbare Anwendung war das Snake-Spiel .

Eine Vorschauversion des Android SDK wurde am 12. November 2007 veröffentlicht. Am 15. Juli 2008 schickte das Android Developer Challenge-Team versehentlich eine E-Mail an alle Teilnehmer der Android Developer Challenge, in der angekündigt wurde, dass eine neue Version des SDK in a Downloadbereich "privat". Die E-Mail war für die Gewinner der ersten Runde der Android Developer Challenge bestimmt. Die Enthüllung, dass Google einigen Entwicklern neue SDK-Versionen zur Verfügung stellte und anderen nicht (und diese Vereinbarung privat hielt), führte zu dieser Zeit in der Android-Entwicklergemeinschaft zu weit verbreiteter Frustration.

Am 18. August 2008 wurde die Betaversion des Android 0.9 SDK veröffentlicht. Diese Version bietet eine aktualisierte und erweiterte API, verbesserte Entwicklungstools und ein aktualisiertes Design für den Startbildschirm. Detaillierte Anweisungen zum Upgrade sind für diejenigen verfügbar, die bereits mit einer früheren Version arbeiten. Am 23. September 2008 wurde das Android 1.0 SDK (Release 1) veröffentlicht. Laut den Versionshinweisen enthielt es "hauptsächlich Fehlerbehebungen, obwohl einige kleinere Funktionen hinzugefügt wurden". Es enthielt auch mehrere API-Änderungen gegenüber der Version 0.9. Seit seiner Entwicklung wurden mehrere Versionen veröffentlicht.

Am 5. Dezember 2008 kündigte Google das erste Android Dev Phone an , ein Gerät mit SIM- und Hardware-Entsperrung, das für fortgeschrittene Entwickler entwickelt wurde. Es war eine modifizierte Version von HTCs Dream-Telefon. Während Entwickler normale Verbrauchergeräte verwenden können, um ihre Anwendungen zu testen und zu verwenden, wählen einige Entwickler möglicherweise ein dediziertes entsperrtes oder vertragsfreies Gerät.

Bis Juli 2013 wurden mehr als eine Million Anwendungen für Android mit über 25 Milliarden Downloads entwickelt. Eine Studie vom Juni 2011 ergab, dass zum Zeitpunkt der Veröffentlichung über 67 % der mobilen Entwickler die Plattform nutzten. Die Auslieferungen von Android-Smartphones werden im Jahr 2018 voraussichtlich 1,2 Milliarden Einheiten mit einem Marktanteil von 85 % überschreiten.

Siehe auch

Verweise

Literaturverzeichnis