MIT App Inventor (Programmierung von Anwendungen für Android)
MIT App Inventor ist eine ursprünglich vom US-amerikanischen Unternehmen Google Inc. entwickelte Entwicklungsumgebung, um Anwendungen für Android zu programmieren. Die verwendete grafische Schnittstelle ermöglicht es Anwendern, per Drag and Drop grafische Blöcke (grafische Programmiersprache) zu einer Anwendung für Mobiltelefone mit dem Android-System zu erstellen.
Mit diesem Programm lassen sich im Blocksystem mittels drag and drop, (ähnlich wie bei Scratch) Apps programmieren und selbst erstellen. Die erstellten Apps können auf das Smartphone geladen, ausprobiert und geteilt werden. Dauer
variabel Aufwand
mittel Autor
Massachusetts Institute of Technology
Materialien
Ausstattungsempfehlungen Tablets, Smartphones
Diese Programmiersprachen kann/sollte man für die Entwicklung von Android-Apps nutzen.
Aktuell bietet sich eine große Bandbreite an Programmiersprachen, die sowohl für die Erstellung von Android-Apps gedacht sind als auch vom Hersteller Google unterstützt werden. Die bekannteste und am häufigsten verwendete Sprache ist definitiv Java. Die vollständige Integration in die Entwicklungsumgebung von Google und die Möglichkeit, ebenso die bekannte IDE Eclipse zu verwenden, machen Java zusammen mit der einfachen Syntax und dem umfassenden Framework so populär. Aber es gibt Alternativen.
Java ist der Platzhirsch
Ähnlich wie die Java Virtual Machine auf Desktop-Geräten wandelt die Dalvik Virtual Machine auf Android-Geräten Java Code in Bytecode um, welcher dann vom jeweiligen Prozessor interpretiert wird. Ab Version 5.0 Lollipop wurde die DVM durch eine Android Runtime ersetzt. Im Gegensatz zu der Just-in-time Kompilierung der virtuellen Maschine wird nun direkt auf den Befehlssatz des jeweiligen Prozessors kompiliert. Vorteile sind neben der geringeren Prozessorlast auch der schnellere Start von Apps, da nur einmal der Binärcode erzeugt wird und nicht, wie bei einem JIT-Compiler, bei jedem Aufruf.
Kotlin ist in Android Studio integriert
Google präsentierte auf seiner letzte Entwicklerkonferenz I/O die vollständige Integration von Kotlin in Android Studio und dessen Framework. Kotlin ist kompatibel mit Java, das bedeutet, dass Java Code problemlos in Kotlin-Projekte eingebunden und verwendet werden kann. Trotz der jungen Vergangenheit erfreut sich Kotlin wachsender Beliebtheit. Allerdings sind Beispielcode und Referenzen deutlich spärlicher gesät, als das bei Java der Fall ist. Die offizielle Dokumentation hilft dir, einen Überblick über die Sprache zu erhalten und kleinere Probleme zu lösen.
C und C++ sind mit Anpassungen möglich
Für Personen, die deutlich näher an die Hardware und weitestgehend auf vorgefertigte Funktionen von Google verzichten wollen, eignet sich C++. Auch diese Sprache wird von Android Studio unterstützt, erfordert allerdings das Einbinden von externen Komponenten. Das Android Native Development Kit zusammen mit dem externen Build-Tool CMake und dem Debugger für nativen Code, LLDB, ermöglichen erst das Arbeiten mit C bzw. C++.
C# über Xamarin
Das Framework Xamarin schafft die Voraussetzungen, C# zusammen mit Visual Studio für die App-Entwicklung zu verwenden. Aufgrund der nötigen Einbindung diverser Xamarin-Libraries fühlt sich das Programmieren doch sehr nach Java an, da diese die Schnittstellen des Android-Frameworks nachbilden. Der Aufbau einer App-Oberfläche über XML-Dateien ist identisch, ebenso wie das nötige Überschreiben von Activity-Methoden und fremden Klassen.
Vorstellung der Sprachen und ihre Vor- und Nachteile
Java spielt auch im Android-Umfeld seine Stärken aus. Die Kombination aus einfacher Syntax und umfassendem Framework ermöglichen Dir einen schnellen Einstieg. Allerdings unterstützt das Android-Framework noch nicht alle neuen, mit Java 8 hinzugekommenen, Features. Für Event-Handler von UI-Elementen und dem Erweitern von Klassen ist teilweise relativ umfangreicher Boilerplate-Code nötig.
Dieser Aufwand wird mit der neuen Sprache Kotlin, vom bekannten IDE-Hersteller JetBrains, stellenweise deutlich reduziert. Auch wurde die Syntax noch weiter vereinfacht. Bekannte Codekonstrukte wie Switch-Statements werden mit Lambda-Ausdrücken kombiniert, allgemein verwendet Kotlin viele Java 8 Neuerungen standardmäßig. Lästige NullPointer-Exceptions aus Java sind nun Geschichte. Automatische Assertions sichern nämlich zu, dass ein Objekt nicht null sein darf während zusätzliche Syntax-Konstrukte verhindern, dass Methoden eines null-Objekts aufgerufen werden. Alles in Allem viele Verbesserungen, die zu kompakterem Code führen.
In Zeiten der DVM (Dalvik Virtual Machine) war C++ eine echte Alternative zu Java für möglichst effiziente Apps, da dessen Programme zu Binärcode kompiliert werden. Besonders bei rechenintensiven und zeitkritischen Anwendungen ist das von Vorteil, teilweise waren vergleichbare Programme in Java bis zu 100 mal langsamer. Durch die Einführung der Android Runtime hat sich dieser Unterschied drastisch reduziert, in den meisten Fällen liegen heutzutage beide Kandidaten gleich auf. Der Entwicklungsaufwand in C++ ist weiterhin deutlich aufwändiger und komplexer, da das Arbeiten mit Pointern und Referenzen unerlässlich ist und viele Teile des Android-Frameworks nicht benutzt werden können. Dessen Schnittstellen sind nämlich nur mit Java und Kotlin kompatibel.
Mit C# verhält es sich ähnlich wie mit Java. Aufgrund des nicht-offiziellen Xamarin-Frameworks müssen Funktionen allerdings aus den neuesten Android-Versionen erst nachgebaut werden. Daraus ergibt sich eine zeitliche Verzögerung. Da meistens nicht nur für die aktuellste sondern auch für Ältere Versionen entwickelt wird, spielt das jedoch keine große Rolle. Wer sich an die Entwicklung mit Visual Studio und C# gewöhnt hat, wird hier einen schnellen Einstieg finden.
Anwendungsgebiete
Die genannten Hochsprachen Java, Kotlin und C#, sind für effektive Android-Entwicklung geeignet. Für Personen, die sich auf das offizielle Framework stützen und Updates so schnell wie möglich erhalten möchten, sind Java und Kotlin zu empfehlen. C++ wird meist nur noch in einem spezifischen Teil einer App, über den größtmögliche Kontrolle wichtig ist, verwendet. Die gesamte Entwicklung in C++ zu erledigen wäre schlicht zu aufwändig und bringt wenig bis keine Vorteile mit sich.
Empfehlung an Dich
Für einen einfachen Einstieg empfehle ich Dir Kotlin, auch wenn Du bereits Erfahrung in Java hast. Kürzerer und verständlicherer Code, aufgrund einiger Syntax-Neuerungen, zusammen mit der Interoperabilität mit Java und der guten Integration in Android Studio macht Kotlin zur für mich favorisierten Sprache.
Inhaltsverzeichnis
Erste Schritte mit systemeigener Android-Entwicklung auf Windows
Artikel
09/27/2022
8 Minuten Lesedauer
3 Mitwirkende Feedback
In diesem Artikel
In diesem Leitfaden können Sie mit Windows beginnen, um systemeigene Android-Anwendungen zu erstellen. Wenn Sie eine plattformübergreifende Lösung bevorzugen, finden Sie in der Übersicht über die Android-Entwicklung auf Windows eine kurze Zusammenfassung einiger Optionen.
Die geradeste Möglichkeit zum Erstellen einer nativen Android-App ist die Verwendung von Android Studio mit Java oder Kotlin, obwohl es auch möglich ist, C oder C++ für die Android-Entwicklung zu verwenden , wenn Sie einen bestimmten Zweck haben. Die Android Studio SDK-Tools kompilieren Ihren Code, Ihre Daten und Ressourcendateien in ein Archiv-Android-Paket, .apk-Datei. Eine APK-Datei enthält alle Inhalte einer Android-App und ist die Datei, die android-unterstützte Geräte zum Installieren der App verwenden.
Installieren von Android Studio
Android Studio ist die offizielle integrierte Entwicklungsumgebung für das Android-Betriebssystem von Google. Laden Sie die neueste Version von Android Studio für Windows herunter.
Wenn Sie eine Datei heruntergeladen haben (empfohlen), doppelklicken Sie, um sie zu starten.
Wenn Sie eine .zip Datei heruntergeladen haben, entpacken Sie die ZIP-Datei, kopieren Sie den Ordner "Android-Studio", kopieren Sie den Ordner "Programme", und öffnen Sie dann den Ordner "Android-Studio-Bin > ", und starten Sie (für 64-Bit-Computer) oder (für 32-Bit-Computer).
Folgen Sie dem Setup-Assistenten in Android Studio, und installieren Sie alle SDK-Pakete, die sie empfiehlt. Wenn neue Tools und andere APIs verfügbar sind, benachrichtigt Android Studio Sie mit einem Popup oder suchen Sie nach Updates, indem Sie "HelpCheck>for Update" auswählen.
Erstellen eines neuen Projekts
Wählen Sie "FileNewNewNew>>" Project aus.
Im Fenster "Projekt auswählen " können Sie zwischen diesen Vorlagen wählen:
Grundlegende Aktivität : Erstellt eine einfache App mit einer App-Leiste, einer unverankerten Aktionsschaltfläche und zwei Layoutdateien: eine für die Aktivität und eine zum Trennen von Textinhalten.
Leere Aktivität : Erstellt eine leere Aktivität und eine einzelne Layoutdatei mit Beispieltextinhalt.
Untere Navigationsaktivität: Erstellt eine standardmäßige untere Navigationsleiste für eine Aktivität. Weitere Informationen hierzu finden Sie im Abschnitt "Untere Navigationskomponente" der Richtlinien für materialdesign von Google.
Vorlagen werden häufig zum Hinzufügen von Aktivitäten zu neuen und vorhandenen App-Modulen verwendet. Wenn Sie beispielsweise einen Anmeldebildschirm für die Benutzer Ihrer App erstellen möchten, fügen Sie eine Aktivität mit der Vorlage "Anmeldeaktivität" hinzu. Weitere Informationen zum Auswählen einer Aktivität und zum Hinzufügen von Code aus einer Vorlage finden Sie im Android-Entwicklerhandbuch von Google.
Hinweis Das Android-Betriebssystem basiert auf der Idee von Komponenten und verwendet die Begriffe Aktivität und Absicht zum Definieren von Interaktionen. Eine Aktivität stellt eine einzelne, fokussierte Aufgabe dar, die ein Benutzer ausführen kann. Eine Aktivität bietet ein Fenster zum Erstellen der Benutzeroberfläche mithilfe von Klassen basierend auf der View-Klasse . Es gibt einen Lebenszyklus für Aktivitäten im Android-Betriebssystem, definiert durch sechs Rückrufe: onCreate() , , onStart() , onResume() onPause() , onStop() , und onDestroy() . Die Aktivitätskomponenten interagieren mit anderen mithilfe von Absichtsobjekten. Die Absicht definiert entweder die Aktivität, die gestartet werden soll, oder beschreibt die Art der auszuführenden Aktion (und das System wählt die entsprechende Aktivität für Sie aus, die sogar aus einer anderen Anwendung stammen kann). Erfahren Sie mehr über Aktivitäten, den Aktivitätslebenszyklus und Die Absichten im Android-Entwicklerhandbuch von Google.
Java oder Kotlin
Java wurde 1991 zu einer Sprache, die von dem entwickelt wurde, was dann Sun Microsystems war, aber das jetzt von Oracle gehört. Es wurde zu einer der beliebtesten und leistungsstarken Programmiersprachen mit einer der größten Supportgemeinschaften der Welt. Java ist klassenbasiert und objektorientiert, das so wenig Implementierungsabhängigkeiten wie möglich hat. Die Syntax ähnelt C und C++, hat jedoch weniger Einrichtungen auf niedriger Ebene als eine der beiden.
Kotlin wurde 2011 als neue Open-Source-Sprache von JetBrains angekündigt und ist seit 2017 als Alternative zu Java in Android Studio enthalten. Im Mai 2019 kündigte Google Kotlin als bevorzugte Sprache für Android-App-Entwickler an. Obwohl es eine neuere Sprache ist, hat es auch eine starke Support-Community und wurde als eine der am schnellsten wachsenden Programmiersprachen identifiziert. Kotlin ist plattformübergreifend, statisch typisiert und wurde entwickelt, um vollständig mit Java zu arbeiten.
Java wird häufiger für eine breitere Palette von Anwendungen verwendet und bietet einige Features, die Kotlin nicht unterstützt, z. B. überprüfte Ausnahmen, Grundtypen, die keine Klassen, statische Member, nicht private Felder, Wildcardtypen und ternäre Operatoren sind. Kotlin wurde speziell für Android entwickelt und empfohlen. Es bietet auch einige Features, die Java nicht, z. B. null-Verweise, die vom Typsystem gesteuert werden, keine unformatierten Typen, invariante Arrays, richtige Funktionstypen (im Gegensatz zu SAM-Konvertierungen von Java), Use-Site-Varianz ohne Wildcards, intelligente Umwandlungen und vieles mehr. Hier finden Sie einen ausführlicheren Blick auf den Vergleich zu Java in der Kotlin-Dokumentation.
Mindest-API-Ebene
Sie müssen die mindeste API-Ebene für Ihre Anwendung festlegen. Dadurch wird bestimmt, welche Android-Version Ihre Anwendung unterstützt. Niedrigere API-Ebenen sind älter und unterstützen daher im Allgemeinen mehr Geräte, aber höhere API-Ebenen sind neuer und bieten mehr Features.
Wählen Sie den Link " Hilfe" aus, um ein Vergleichsdiagramm zu öffnen, in dem die Geräteunterstützungsverteilung und die wichtigsten Features angezeigt werden, die der Version der Plattformversion zugeordnet sind.
Sofortige App-Unterstützung und Androidx-Artefakte
Möglicherweise bemerken Sie ein Kontrollkästchen zum Unterstützen von Sofort-Apps und einer anderen, um Androidx-Artefakte in Ihren Projekterstellungsoptionen zu verwenden. Die Unterstützung von Sofort-Apps ist nicht aktiviert, und das Androidx-Element wird als empfohlener Standardwert überprüft.
Google Play Instant-Apps bieten benutzern eine Möglichkeit, eine App oder ein Spiel zu testen, ohne sie zuerst zu installieren. Diese Sofort-Apps können über die Play Store, Google Search, soziale Netzwerke und überall, an der Sie einen Link teilen, angezeigt werden. Indem Sie das Feld "Sofort-Apps unterstützen " aktivieren, bitten Sie Android Studio, das Google Play Instant Development SDK in Ihr Projekt einzuschließen. Erfahren Sie mehr über Google Play Instant-Apps im Android-Entwicklerhandbuch.
AndroidX-Artefakte stellen die neue Version der Android-Supportbibliothek dar und bietet Abwärtskompatibilität in android-Versionen. AndroidX bietet einen konsistenten Namespace ab der Zeichenfolge androidx für alle verfügbaren Pakete.
Hinweis AndroidX ist jetzt die Standardbibliothek. Um dieses Kontrollkästchen zu deaktivieren und die vorherige Supportbibliothek zu verwenden, muss das letzte Android Q SDK entfernt werden. Weitere Informationen finden Sie unter "Deaktivieren der Verwendung von Androidx-Artefakten " auf StackOverflow, beachten Sie jedoch zunächst, dass die früheren Supportbibliothekspakete in entsprechende Androidx.* -Pakete zugeordnet wurden. Eine vollständige Zuordnung aller alten Klassen und Buildartefakte zu den neuen klassen finden Sie unter Migrieren zu AndroidX.
Projektdateien
Das Windows Studio-fenster Project enthält die folgenden Dateien (stellen Sie sicher, dass die Android-Ansicht im Dropdownmenü ausgewählt ist):
app > java > > MainActivity
Die Hauptaktivität und der Einstiegspunkt für Ihre App. Wenn Sie Ihre App erstellen und ausführen, startet das System eine Instanz dieser Aktivität und lädt das Layout.
Layout > activity_main.xml> der App >
Die XML-Datei, die das Layout für die Benutzeroberfläche der Aktivität definiert. Es enthält ein TextView-Element mit dem Text "Hallo Welt"
App-Manifeste >> AndroidManifest.xml
Die Manifestdatei, die die grundlegenden Merkmale der App und jeder seiner Komponenten beschreibt.
Gradle Scripts > build.gradle
Es gibt zwei Dateien mit diesem Namen: "Project: Meine erste App", für das gesamte Projekt und "Modul: app", für jedes App-Modul. Ein neues Projekt verfügt zunächst nur über ein Modul. Verwenden Sie die des Moduls, um zu steuern, wie das Gradle-Plug-In Ihre App erstellt. Erfahren Sie mehr darüber, wie Sie Ihren Build im Android-Entwicklerhandbuch konfigurieren.
Verwenden von C oder C++ für die Entwicklung von Android-Spielen
Das Android-Betriebssystem wurde entwickelt, um Anwendungen zu unterstützen, die in Java oder Kotlin geschrieben wurden, und profitieren von tools, die in die Architektur des Systems eingebettet sind. Viele Systemfeatures, z. B. die Handhabung von Android-Ui und -Absichten, werden nur über Java-Schnittstellen verfügbar gemacht. Es gibt einige Instanzen, in denen Sie C- oder C++-Code über das Android Native Development Kit (NDK) verwenden möchten, trotz einiger der zugehörigen Herausforderungen. Die Spieleentwicklung ist ein Beispiel, da Spiele in der Regel benutzerdefinierte Renderinglogik verwenden, die in OpenGL oder Vulkan geschrieben wurde, und profitieren von einer Fülle von C-Bibliotheken, die sich auf die Spieleentwicklung konzentrierten. Die Verwendung von C oder C++ kann Ihnen auch helfen, zusätzliche Leistung aus einem Gerät herauszudrücken, um eine geringe Latenz zu erzielen oder rechenintensive Anwendungen auszuführen, z. B. Physiksimulationen. Das NDK eignet sich jedoch nicht für die meisten Anfänger von Android-Programmierern . Es sei denn, Sie haben einen bestimmten Zweck für die Verwendung des NDK, wir empfehlen, mit Java, Kotlin oder einem der plattformübergreifenden Frameworks zu bleiben.
So erstellen Sie ein neues Projekt mit C/C++-Unterstützung:
Wählen Sie im Abschnitt "Projekt auswählen " des Android Studio-Assistenten den projekteigenen C++*-Projekttyp aus. Wählen Sie "Weiter " aus, führen Sie die verbleibenden Felder aus, und wählen Sie dann erneut "Weiter" aus.
Im Abschnitt "C++-Support anpassen " des Assistenten können Sie Ihr Projekt mit dem C++-Standardfeld anpassen. Verwenden Sie die Dropdownliste, um auszuwählen, welche Standardisierung von C++ Sie verwenden möchten. Wenn Sie die Standardeinstellung "Toolchain " auswählen, wird die Standardeinstellung "CMake" verwendet. Wählen Sie Fertig stellen aus.
Sobald Android Studio Ihr neues Projekt erstellt hat, finden Sie einen CPP-Ordner im bereich Project, der die nativen Quelldateien, Header, Buildskripts für CMake oder ndk-Build enthält, und vordefinierte Bibliotheken, die Teil Ihres Projekts sind. Sie finden auch eine C++-Beispielquelldatei im Ordner, die src/main/cpp/ eine einfache stringFromJNI() Funktion bereitstellt, die die Zeichenfolge "Hello from C++" zurückgibt. Darüber hinaus sollte ein CMake-Buildskript im Stammverzeichnis Ihres Moduls angezeigt werden, das zum Erstellen Ihrer nativen Bibliothek erforderlich ist.
Weitere Informationen zum Hinzufügen von C- und C++-Code zu Ihrem Projekt finden Sie im Android-Entwicklerhandbuch. Informationen zum Suchen von Android NDK-Beispielen mit der C++-Integration finden Sie in den Android NDK-Beispiel-Repositorys für GitHub. Verwenden Sie die Google Play Game Services-API, um ein C++-Spiel auf Android zu kompilieren und auszuführen.
Entwurfsrichtlinien
Gerätebenutzer erwarten, dass Anwendungen auf bestimmte Weise aussehen und verhalten... Ob Wischen oder Tippen oder Verwenden von Sprachsteuerelementen, Benutzer halten bestimmte Erwartungen für das Aussehen Ihrer Anwendung und deren Verwendung. Diese Erwartungen sollten konsistent bleiben, um Verwirrung und Frustration zu reduzieren. Android bietet einen Leitfaden für diese Plattform- und Geräteerwartungen, die die Google Material Design Foundation für visuelle und Navigationsmuster kombiniert, sowie Qualitätsrichtlinien für Kompatibilität, Leistung und Sicherheit.
Weitere Informationen finden Sie in der Android-Entwurfsdokumentation.
Fluent Design System für Android
Microsoft bietet außerdem Designleitfaden mit dem Ziel, eine nahtlose Erfahrung im gesamten Portfolio der mobilen Microsoft-Apps bereitzustellen.
Fluent Design System für Android-Design und Erstellen benutzerdefinierter Apps, die systemeigene Android sind, während sie weiterhin eindeutig Fluent.
Zusätzliche Ressourcen
Leave a Comment