Apps für ChromeOS erstellen

ChromeOS-Geräte wie Chromebooks unterstützen den Google Play Store und Android-Apps. In diesem Artikel wird davon ausgegangen, dass Sie bereits eine Android-App haben, die für Smartphones oder Tablets, die für Chromebooks optimiert werden sollen. Um die Grundlagen zu erlernen zum Erstellen von Android-Apps, siehe Ersten Android-Entwickler App.

Manifestdatei Ihrer App aktualisieren

Aktualisieren Sie zunächst Ihre Manifestdatei, um einige wichtige Hardware und Softwareunterschiede zwischen Chromebooks und anderen Android-Geräten.

Ab ChromeOS-Version M53 werden alle Android-Apps, für die das android.hardware.touchscreen funktionieren auch auf ChromeOS-Geräten, android.hardware.faketouch. Um jedoch sicherzustellen, dass Ihre App auf allen Chromebooks: Aktualisieren Sie Ihre Manifestdatei so, dass das Die Funktion „android.hardware.touchscreen“ ist nicht erforderlich, wie in der folgenden Beispiel.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

Verschiedene Hardwaregeräte sind mit unterschiedlichen Sensoren ausgestattet. Chromebooks haben möglicherweise nicht alle Sensoren von Android-Handheld-Geräten, wie GPS und Beschleunigungsmesser. In einigen Fällen kann die Funktion eines Sensors auf andere Weise bereitgestellt werden. Beispielsweise werden Chromebooks möglicherweise nicht haben GPS-Sensoren, liefern aber Standortdaten über WLAN-Verbindungen. In der Sensorenübersicht erfahren Sie mehr zu den von der Android-Plattform unterstützten Sensoren.

Wenn Sie möchten, dass Ihre App unabhängig von der Sensorverfügbarkeit auf Chromebooks ausgeführt wird, Aktualisieren Sie Ihre Manifestdatei, sodass keine Sensoren erforderlich sind.

Einige Softwarefunktionen werden auf Chromebooks nicht unterstützt. Zum Beispiel Apps, die benutzerdefinierte IMEs, App-Widgets, Live-Hintergründe und App Launcher unterstützt und können nicht auf Chromebooks installiert werden. Eine vollständige Liste aller Softwarefunktionen, die auf Chromebooks nicht unterstützt werden, siehe Inkompatibel Softwarefunktionen.

Ziel-SDK aktualisieren

targetSdkVersion deiner App aktualisieren dem neuesten verfügbaren API-Level zuordnen, um alle Vorteile Verbesserungen der Android-Plattform. Sehen Sie sich die Verbesserungen bei der der verschiedenen Versionen der Plattform.

Netzwerkanforderungen prüfen

Auf Chromebooks wird das gesamte Android-Betriebssystem in einem Container ausgeführt, der einem Docker oder LXC ähnelt. Das bedeutet, dass Android keinen direkten Zugriff auf das LAN des Systems hat. . Stattdessen wird IPv4-Traffic durch eine interne Netzwerkschicht geleitet. Address Translation (NAT) und IPv6-Unicast-Traffic über eine zusätzliche Hop.

Ausgehende Unicast-Verbindungen hauptsächlich von einer Android-App zum Internet wie sie arbeiten. Eingehende Verbindungen werden im Allgemeinen blockiert. Multicast oder Broadcast Pakete von Android werden nicht über die Firewall an das LAN weitergeleitet.

Abgesehen von der Multicast-Einschränkung wird unter ChromeOS ein Dienst ausgeführt, mDNS-Traffic zwischen Android und der LAN-Schnittstelle weiterleitet. Netzwerkdiensterkennungs-APIs werden empfohlen, um andere Geräte im LAN-Segment zu finden. Nachher Wenn nach einem Gerät im LAN gesucht wird, kann eine Android-App Standard-TCP- oder UDP-Unicast verwenden. Sockets für die Kommunikation.

Für IPv4-Verbindungen aus Android wird die IPv4-Adresse des ChromeOS-Hosts verwendet. Die Android-App sieht intern eine private IPv4-Adresse, die dem Netzwerk zugewiesen ist. . IPv6-Verbindungen von Android verwenden eine andere Adresse vom ChromeOS-Host, da der Android-Container über eine dedizierte öffentliche IPv6-Adresse.

Cloud- und lokalen Speicher effektiv nutzen

Mit Chromebooks können Nutzer ganz einfach von einem Gerät zu einem anderen migrieren. Wenn ein Nutzer die App beendet und ein anderes verwendet, müssen sie sich nur anmelden und werden alle ihre Apps angezeigt.

Sichere deshalb die App-Daten in der Cloud, damit sie synchronisiert werden können. geräteübergreifend. Damit deine App diese Funktion nutzen kann, ist jedoch keine Internetverbindung erforderlich. ordnungsgemäß funktionieren. Speichern Sie die Arbeit des Nutzers stattdessen lokal, wenn das Gerät und mit der Cloud synchronisieren, sobald das Gerät wieder online ist.

Chromebooks können auch von einer großen Anzahl von Personen gemeinsam genutzt werden, zum Beispiel Bildungseinrichtungen. Da der lokale Speicher nicht unbegrenzt ist, können ganze Konten zusammengenommen werden. mit dem Speicherplatz. Sie können jederzeit vom Gerät entfernt werden. Für sollten Sie dieses Szenario im Hinterkopf behalten.

NDK-Bibliotheken aktualisieren

Wenn Ihre App die Android-NDK-Bibliotheken verwendet und die Ziel-SDK-Version 23 oder Stellen Sie sicher, dass Textverschiebungen sowohl aus ARM als auch aus x86 entfernt werden. Ihrer NDK-Bibliotheken, da sie unter Android 6.0 (API- Level 23) und höher. Wenn Sie in Ihren NDK-Bibliotheken Textverschiebungen belassen, kann es zu Kompatibilitätsfehlern mit Chromebooks kommen, die auf einem Gerät mit einer x86-Architektur ausgeführt wird.

Neue Testläufe für Ihre App entwickeln

Um Testfälle für Ihre App zu entwickeln, müssen Sie zuerst die richtigen Manifest-Flags. Legen Sie insbesondere screenOrientation fest. an unspecified. Wenn Sie das Querformat verwenden möchten, verwenden Sie sensorLandscape, um die Nutzung auf einem Tablet optimal zu gestalten.

Wenn Sie eine besondere Größe oder Ausrichtung für Desktop-Umgebungen haben, sollten Sie Meta-Tags als Hinweise zur Größe oder Ausrichtung hinzufügen. Um Größe und Ausrichtung anzugeben auf Telefonen, Layout angeben defaultHeight, defaultWidth, oder minHeight -Attributen.

Wenn Sie an bestimmten Eingabegeräten für bestimmte Geräte interessiert sind Kategorien – geben Sie android.hardware.type.pc an, um die Eingabe zu deaktivieren Kompatibilitätsmodus.

Wenn Sie ein Netzwerk verwenden, achten Sie darauf, dass sich die App wieder verbinden kann. mit dem Netzwerk verbunden, nachdem ein Verbindungsproblem behoben wurde oder das Gerät beendet wird. Schlafmodus.

Wir empfehlen Ihnen, sich die Liste der Testfälle für Android-Apps in Chrome anzusehen. Betriebssystem, das Sie in Ihrem Testplan verwenden können. Die Testläufe decken gängige Szenarien ab, auf die Android-Apps vorbereitet sein sollten. ob sie auf ChromeOS-Geräten ausgeführt werden sollen.

Mehrfenstermodus und Ausrichtungsänderungen

Mit dem Mehrfenstermodus von ChromeOS sind Zustandspersistenz und Abrufbarkeit möglich Probleme noch offensichtlicher. ViewModel verwenden um Ihren Status zu speichern und wiederherzustellen.

Um die Zustandspersistenz zu testen, minimieren Sie Ihre App für eine Weile und starten Sie eine neue ressourcenintensiven Prozess und stellen Sie die App wieder her, um zu bestätigen, dass sie wieder in welchem Zustand sie sich befinden.

Testen Sie die Größenanpassung des Fensters, indem Sie die Vollbildtaste (F4) drücken, die Fenstergröße maximieren und Wiederherstellen. Um die kostenlose Größenanpassung zu testen, aktivieren Sie sie zuerst in den Entwickleroptionen und und prüfen Sie, ob die Größe Ihrer App nahtlos angepasst wird, ohne dass sie abstürzt.

Wenn dein ChromeOS-Gerät dies unterstützt, wechsle vom Laptop- in den Tabletmodus, um dies zu prüfen ob alles wie erwartet funktioniert. Drehen Sie das Gerät einmal im Tablet-Modus, um Teste die Ausrichtung und wechsle dann zurück in den Laptopmodus. Diesen Schritt wiederholen mehrere Male.

Achte darauf, dass die obere Leiste deine App nicht zerstört, indem du UI-Elemente versetzt. oder die standortbasierte Eingabe per Berührung. Achten Sie bei ChromeOS-Geräten darauf, dass Ihre App werden keine wichtigen Informationen im Bereich der Statusleiste platziert.

Wenn Sie die Kamera oder eine andere Hardwarefunktion, z. B. den Eingabestift verwenden, müssen Sie Prüfen, ob das Fenster bei der Durchführung der Fenster- und Geräteänderungen ordnungsgemäß funktioniert wie zuvor beschrieben.