Die Navigation bezieht sich auf die Interaktionen, mit denen Nutzer zwischen den verschiedenen Inhalten in Ihrer App wechseln und diese verlassen können.
Die Navigationskomponente von Android Jetpack umfasst die Navigationsbibliothek, das Safe Args Gradle-Plug-in und Tools zur Implementierung der App-Navigation. Die Navigationskomponente unterstützt verschiedene Navigationsfälle, von einfachen Schaltflächenklicks bis hin zu komplexeren Mustern wie App-Leisten und Navigationsleisten.
Schlüsselkonzepte
In der folgenden Tabelle finden Sie einen Überblick über die wichtigsten Navigationskonzepte und die wichtigsten Typen, mit denen Sie sie implementieren.
Vorgabe |
Zweck |
Eingeben |
---|---|---|
Host |
Ein UI-Element, das das aktuelle Navigationsziel enthält. Wenn ein Nutzer also durch eine App navigiert, wechselt die App im Wesentlichen Ziele in den Navigationshost und wieder heraus. |
|
Grafik |
Eine Datenstruktur, die alle Navigationsziele innerhalb der App und ihre Verknüpfung definiert. |
|
Kontrolle |
Der zentrale Koordinator für die Navigation zwischen Zielen. Der Controller bietet unter anderem Methoden zum Wechseln zwischen Zielen, zum Umgang mit Deeplinks und zum Verwalten des Backstacks. |
|
Ziel |
Ein Knoten im Navigationsgraphen. Wenn der Nutzer diesen Knoten aufruft, zeigt der Host den Inhalt an. |
Wird in der Regel beim Erstellen des Navigationsgraphen erstellt. |
Route |
Identifiziert ein Ziel und alle dafür erforderlichen Daten eindeutig. Sie können sich anhand von Routen orientieren. Routen führen Sie zu Zielen. |
Jeder serialisierbare Datentyp. |
Vorteile und Funktionen
Die Navigationskomponente bietet eine Reihe weiterer Vorteile und Funktionen, darunter:
- Animationen und Übergänge:Hier finden Sie standardisierte Ressourcen für Animationen und Übergänge.
- Deeplinks:Implementiert und verarbeitet Deeplinks, über die Nutzer direkt zu einem Ziel weitergeleitet werden.
- UI-Muster:Unterstützt Muster wie Navigationsleisten und Bottom-Navigation mit minimalem zusätzlichen Aufwand.
- Typsicherheit:Unterstützung für die Weitergabe von Daten zwischen Zielen mit Typsicherheit.
- ViewModel-Unterstützung:Damit kann eine
ViewModel
auf einen Navigationsgraphen angewendet werden, um UI-bezogene Daten zwischen den Zielen des Graphen zu teilen. - Fragment-Transaktionen:Fragment-Transaktionen werden vollständig unterstützt und verarbeitet.
- Zurück und hoch:Die Aktionen „Zurück“ und „Hoch“ werden standardmäßig korrekt verarbeitet.
Umgebung einrichten
Wenn Sie die Navigationsunterstützung in Ihr Projekt einbinden möchten, fügen Sie der Datei build.gradle
Ihrer App die folgenden Abhängigkeiten hinzu:
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21' } dependencies { def nav_version = "2.8.9" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // JSON serialization library, works with the Kotlin serialization plugin. implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3" }
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments kotlin("plugin.serialization") version "2.0.21" } dependencies { val nav_version = "2.8.9" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // JSON serialization library, works with the Kotlin serialization plugin implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") }
Informationen zum Hinzufügen anderer Architekturkomponenten zu Ihrem Projekt finden Sie unter Projekten Komponenten hinzufügen.
Nächste Schritte
Weitere Dokumentation und Ressourcen zur Navigationskomponente finden Sie in den folgenden Ressourcen.
Detaillierte Anleitungen
Weitere Informationen zur Implementierung eines Navigationshosts und von NavController
sowie zur Interaktion mit Compose und anderen UI-Frameworks finden Sie in den folgenden Anleitungen:
- Navigationscontroller erstellen: Hier erfahren Sie, wie Sie einen
NavController
erstellen. - Navigationsgraph erstellen: Hier erfahren Sie, wie Sie einen Navigationshost und einen Navigationsgraphen erstellen.
- Zu einem Ziel navigieren: Hier wird gezeigt, wie Sie mithilfe eines
NavController
zwischen den Zielen in Ihrem Diagramm wechseln.
Codelabs
- Weitere Informationen zu Jetpack Navigation
- Fragmente und die Navigationskomponente
- Adaptive App mit dynamischer Navigation erstellen
Videos
- Navigation steuern
- 10 Best Practices für die Umstellung auf eine einzelne Aktivität
- Einzelne Aktivität: Warum, wann und wie (Android Dev Summit '18)
- Android Jetpack: UI-Navigation mit Navigationscontroller verwalten (Google I/O '18)
Produktproben
Netmarble, ein führender Entwickler von Mobile-Games, hat Game of Thrones: Kingsroad (demnächst für Android) entwickelt, ein Action-Adventure-Rollenspiel, das auf der Emmy®- und Golden Globe®-prämierten Serie „Game of Thrones“ basiert. Beim Ausführen Mir 2: Return of the King ist ein hochwertiges Legend IP-Mobilspiel, das von Actoz Soft autorisiert und von HK ZHILI YAOAN LIMITED mit der Unity-Game-Engine entwickelt wurde. Dieses Spiel fängt nicht nur das Gefühl von Mir 2 ein, einem Wuthering Waves ist ein High-Fidelity-Action-RPG von Kuro Games.
Die Optimierung des Energieverbrauchs ist sehr wichtig, um bei langen Gaming-Sessions nachhaltig eine erstklassige Nutzererfahrung zu bieten. In Android Studio wurde der Power Profiler Godot Engine ist eine beliebte plattformübergreifende Open-Source-Game-Engine mit umfassender Unterstützung für Android. Mit Godot können Spiele nahezu jedes Genres erstellt werden. Es unterstützt sowohl 2D- als auch 3D-Grafiken. In Godot Version 4 Das Android Dynamic Performance Framework (ADPF) ist ein leistungsstarkes Tool von Google für Entwickler, die die Leistung ihrer Apps optimieren möchten. Über seine thermischen APIs bietet ADPF Echtzeitinformationen zum thermischen Zustand des NCSoft Lineage W ist ein Massively Multiplayer Online Role-Playing Game (MMORPG), das von NCSoft entwickelt wurde. Dieses Spiel baut auf dem Originalspiel Lineage W auf und bietet eine Umgebung, in der Spieler aus der ganzen Welt über globale Server Die Verbesserung der Leistung und der Temperaturverwaltung ist für die Entwicklung erfolgreicher Spiele auf Android unerlässlich. Bisher mussten Entwickler diese Probleme durch eine geringere Spieltreue oder eine weitere Optimierung des Renderers Call of Duty: Warzone Mobile ist ein Ego-Shooter aus der beliebten Call of Duty -Reihe. Bei der mobilen Version des äußerst beliebten Konsolen- und PC-Spiels werden mobile Low-Level-APIs genutzt, um eine hervorragende Nutzererfahrung zu bieten. Aus Summoners War: Chronicles ist ein mobiles MMORPG des südkoreanischen Spieleentwicklers Com2uS, das im März 2023 weltweit veröffentlicht wurde. Bis heute hat Summoners War mit über 180 Millionen Downloads weltweit über 2, 7 Milliarden $eingenommen. In Summoners War: Chronicles US(WW) und KR von Com2uS wird ausschließlich Vulkan für das Rendering auf Android verwendet. Dadurch konnte die Leistung um bis zu 30 % gesteigert werden. Vulkan ist eine moderne, plattformübergreifende 3D-Grafik-API, die Ares: Rise of Guardians ist ein Sci-Fi-MMORPG für Mobilgeräte und PC, das von Second Dive entwickelt wurde, einem Spielestudio mit Sitz in Korea, das für seine Expertise in der Entwicklung von Action-RPG-Serien bekannt ist. Das Spiel wird von Kakao Cat Daddy Games ist ein zu 100 % im Besitz von 2K befindliches Studio mit Sitz in Kirkland, Washington, und der Entwickler von NBA 2K Mobile.
Das Team wollte die allgemeine Qualität und Stabilität seiner Spiele verbessern, insbesondere durch die Devsisters ist ein globaler Entwickler und Publisher von Spielen für Mobilgeräte, der Casual-Games auf der Grundlage der Cookie Run-IP entwickelt. Zu den beliebtesten Spielen von Devsisters gehören Cookie Run: OvenBreak (Lauf-Arcade) und Cookie Run: NEW STATE Mobile ist ein Battle Royale-Spiel von Krafton, das im November 2021 weltweit veröffentlicht wurde und im ersten Monat nach der Veröffentlichung mehr als 45 Millionen Downloads verzeichnete. KRAFTON, Inc. ist ein Zusammenschluss Spokko ist ein in Polen ansässiges Team von ehrgeizigen Entwicklern, die mit einer sehr anspruchsvollen IP arbeiten. Spokko ist zwar Teil der CD PROJEKT-Familie, aber ein unabhängiges Unternehmen, das die großartige Welt von The Witcher: Monster Cat Daddy Games ist ein zu 100 % im Besitz von 2K befindliches Studio in Kirkland, Washington. Die Teams hinter den Serien „NBA 2K Mobile“, „NBA SuperCard“ und „WWE SuperCard“ suchten nach einer Lösung, um die Gesamtqualität ihrer Spiele für Nutzer Electronic Arts (EA) ist ein Spieleunternehmen mit Sitz in Kalifornien, USA. Das Unternehmen entwickelt eine Vielzahl von Spielen aus verschiedenen Genres wie Sport, Action, Rennspiele und Simulationen. Das Entwicklungsstudio von EA, Firemonkeys, ist Die Unreal Engine ist eine von Epic Games entwickelte Game-Engine, die Creatorn aus verschiedenen Branchen die Freiheit und Kontrolle bietet, innovative Unterhaltung, überzeugende Visualisierungen und immersive virtuelle Welten zu schaffen. Einige Der in Warschau ansässige Spieleentwickler CD Projekt RED (CDPR) hat sein Minispiel aus „The Witcher 3“, GWENT: The Witcher Card Game, neu konzipiert und im März 2020 als eigenständigen Free-to-Play-Titel bei Google Play veröffentlicht.
Aufgrund der Der US-amerikanische Entwickler RV AppStudios hat mit seinem Portfolio an Casual-Games, Lern-Apps für Kinder und Dienstprogramm-Apps bisher über 200 Millionen Downloads erzielt. Als einer der ersten Tester der Play Asset Delivery mit der App Puzzle Seit über 20 Jahren entwickelt Gameloft innovative Spiele für digitale Plattformen – von mobilen Spielen bis hin zu plattformübergreifenden PC- und Konsolentiteln. Neben seinen eigenen etablierten Franchises entwickelt Gameloft Spiele für beliebte 2000 wurde Gameloft gegründet, um Spieler auf der ganzen Welt mit spannenden Spielen zu begeistern. Das Unternehmen war einer der ersten Entwickler von Spielen für Mobilgeräte und hat mittlerweile ein Portfolio von über 190 Spielen. Viele der mobilen Pixonic ein Team von Videospielentwicklern mit Hauptsitz in Moskau, stolz auf
Er nutzte jede Gelegenheit, seine mobilen Apps zu aktualisieren,
von Gamern. Eines der bekanntesten Titel des Unternehmens ist War Robots Ein PvP-Spiel für 12 Personen, in Gameloft möchte Nutzern auch unterwegs fesselnde Spielerlebnisse bieten. Genau darum entschied sich der Entwickler für ChromeOS als Plattform für Asphalt 8: Airborne, seine neue Autorennen-App für Mobilgeräte. Gameloft hatte zwar umfassende ErfahrungNetmarble Games: Leistung mit ADPF optimieren
Mir 2 verbessert die Renderingleistung durch die Frame-Pacing-Bibliothek
Kuro Games reduziert den Energieverbrauch um 9,68% mit dem Android Studio Power Profiler und ODPM für Wuthering Waves
Vulkan-Optimierung der Godot Engine für Android
Erste Schritte mit dem Android Dynamic Performance Framework (ADPF) in der Unreal Engine
NCSoft Lineage W verbessert die dauerhafte Leistung und verhindert durch Nutzung von ADPF die Drosselung der Überhitzung
MediaTek verbessert die dynamische Leistung von Android-SoCs
Call of Duty Warzone Mobile nutzt Vulkan für eine bessere Grafik
Com2uS – Google Play Spiele für PC
Com2uS nutzt Vulkan für bessere Grafiken
Kakao Games erhöht die FPS-Stabilität mit Android Adaptability auf 96 %
2K reduziert die ANR-Rate mit dem Android Game Development Kit um 35 %
Cookie Run: OvenBreak spart mit Play Asset Delivery mehr als 200.000 $CDN-Kosten
NEW STATE Mobile reduziert die GPU-Nutzung mit dem Android GPU-Prüfer um 22 %
„The Witcher: Monster Slayer“ erhöht die Reichweite dank dem Android Performance Tuner
2K liefert höhere Grafikqualität dank Play Asset Delivery
Firemonkeys reduziert Entwicklungs- und Debuggingzeit mit AGDE
„AGDE ist verdammt cool!“ für die Android-Entwicklung mit der Unreal Engine
CD Projekt RED reduziert Updategröße um 90 % und erhöht Updateraten um 10 % dank Play Asset Delivery
RV AppStudios verbessert die Nutzerbindung mit Google Play Asset Delivery
Gameloft reduziert den Geräteenergieverbrauch um 70 % und ermöglicht so eine um 35% längere Spielzeit mit der Game Mode API
Gameloft gewinnt mit Google Play Asset Delivery 10% mehr neue Nutzer
Pixonic steigerte durch Optimierung für große Bildschirme die Interaktion auf ChromeOS um 25 %
Gameloft erzielt neunmal höheren Umsatz durch Optimierung seines Spiels für ChromeOS