[JAVA] Mit ToolKit konnte ich innerhalb von 10 Minuten eine GMS-App in G + H-Unterstützung konvertieren

Überblick

Im vorherigen Artikel habe ich Ihnen einen Überblick über die Konvertierung einer vorhandenen Android-App in HMS-Unterstützung gegeben. In diesem Artikel möchte ich vorstellen, wie eine GMS-Anwendung mit dem von Huawei bereitgestellten Tool zur automatischen Codekonvertierung (ToolKit) in eine Anwendung konvertiert wird, die sowohl auf GMS- als auch auf HMS-Terminals betrieben werden kann.

Einführung in ToolKit

Zunächst möchte ich kurz die Gliederung und das Prinzip von ToolKit vorstellen.

Was ist ToolKit?

ToolKit ist ein Android Studio-Plug-In-Tool mit Funktionen wie Codierungsassistent, Cloud-Debugging, Cloud-Tests und automatischer Codekonvertierung während der HMS-Entwicklung.

ToolKit-Tool zur automatischen Codekonvertierung (GitHub-Link) ) Ist ein Tool, das die in der ursprünglichen App verwendete GMS-API erkennt und automatisch in G + H-kompatibel konvertiert und sowohl mit Kotlin als auch mit Java kompatibel ist. Dieses Mal habe ich ein Tool zur automatischen Codekonvertierung (Convertor) verwendet, um eine vorhandene GMS-Anwendung in G + H-kompatibel zu konvertieren. Daher möchte ich Ihnen mitteilen, wie das geht.

Die Kosten für die Konvertierung sind niedriger als erwartet und die Konvertierung dauerte weniger als 10 Minuten, ohne Vorarbeiten. Wenn Sie also interessiert sind, können Sie es selbst versuchen.

Konverter Übersicht über das Konvertierungsprinzip

Die offizielle Website von Huawei beschreibt das Prinzip des Konverters wie folgt.

· HMS-API hinzufügen: Fügt den xmsAdapter hinzu, ein Adaptercodemodul, das auf dem ursprünglichen Code zum Aufrufen von APIs von Drittanbietern basiert. Der Adaptercode kann APIs von Drittanbietern oder HMS-APIs basierend auf der Planungsrichtlinie aufrufen. Die Planungsrichtlinie wird festgelegt von dir. · Zur HMS-API: Ersetzt den API-Code eines Drittanbieters im App-Code durch den als HMS-API bezeichneten Code. Der konvertierte Code ruft direkt die HMS-APIs auf.

Darüber hinaus enthält diese Seite detailliertere Grundsätze.

Ich habe die Konvertierungslogik auf meine eigene Weise verstanden und ein Bilddiagramm erstellt. Das Zentrum ist die ursprüngliche App, links die App nach der G + H-Konvertierung und rechts die App nach der G2H-Konvertierung. Ich habe G + H und G2H im vorherigen Artikel eingeführt. Wenn Sie sich nicht sicher sind, lesen Sie bitte diesen Artikel.

xmsconvertorlogic.png

Bei der G2H-Konvertierung ist dies relativ einfach, und Converter ersetzt alle GMS-APIs und -Pakete in der App durch das entsprechende HMS (in der obigen Abbildung „App nach G2H-Konvertierung“).

Im Fall von G + H ("App nach G + H-Konvertierung") ist dies etwas kompliziert, und bei der Konvertierung mit Converter wird ein neues Modul (xmsadaptor) gemäß der von Converter in der ursprünglichen Anwendung verwendeten GMS-API hinzugefügt. ) Wird erzeugt (grüner Teil in der obigen Abbildung). Alle im Originalcode verwendeten GMS-APIs werden in XMS-APIs konvertiert.

Wenn eine bestimmte API aufgerufen wird, beurteilt dieser xmsadaptor die Verfügbarkeit von GMS / HMS des Terminals, und die API des SDK des entsprechenden GMS / HMS wird gemäß dem Beurteilungsergebnis verwendet.

Beschreibung der Demo-App zur Konvertierung

Um die Konvertierung auszuprobieren, habe ich mit GMS eine einfache Demo-App erstellt. Die Demo-App verwendet Google Maps und das Standort-SDK, um beim Start der App eine Karte des aktuellen Standorts des Benutzers anzuzeigen. onlyg.jpg

Wenn Sie die App vor der Konvertierung auf Ihrem HMS-Gerät installieren, wird ein Dialogfeld wie dieses angezeigt, in dem Google Play Developer Services nicht verwendet werden kann. onlyh.jpg

Ich habe GitHub vorerst die App vor der Konvertierung gegeben. Wenn Sie interessiert sind, verwenden Sie dies bitte direkt zum Konvertieren. (Sie benötigen einen API-Schlüssel für die Google Maps-API, die von Ihrer eigenen Google Cloud-Plattform ausgestellt wurde.) GitHub: https://github.com/vptsama/GHDemo_BeforeConversion

Vorbereitung

Bevor Sie die eigentliche Konvertierung durchführen, müssen Sie sich zunächst auf die Verwendung des Map SDK & Location SDK und des ToolKit von HMS vorbereiten.

Vorbereitung Nr. 1: Einstellungen für die Verwendung des HMS Map and Location SDK

Schritt 1: Holen Sie sich ein Huawei-Entwicklerkonto (kostenlos)

Um das HMS SDK verwenden zu können, benötigen Sie ein Huawei-Entwicklerkonto. Es gibt zwei Hauptschritte, um ein Konto zu beantragen:

  1. Erhalten einer Huawei ID
  2. Entwicklerzertifizierung

Bei der 2-Entwickler-Zertifizierung gibt es zwei Optionen: die persönliche Entwicklerzertifizierung und die Unternehmensentwicklerzertifizierung. Ich habe mich jedoch mit einem persönlichen Konto authentifiziert und die Prüfung wurde in ungefähr einem Tag abgeschlossen. Ich bin auch dankbar, dass Sie sich kostenlos bewerben können.

Eine ausführliche Anleitung finden Sie auf der folgenden Website (Englisch). Anwendungshandbuch für Huawei ID: https://developer.huawei.com/consumer/en/doc/10104 Entwicklerzertifizierung (für Einzelpersonen): https://developer.huawei.com/consumer/en/doc/10122

Schritt 2: Erstellen Sie ein App-Projekt und legen Sie Informationen in Appgallery Connect fest

AppGallery Connect (https://developer.huawei.com/consumer/en/console) ist die Entwicklerkonsole von Huawei. コンソール内

Wie bei Google müssen Sie zur Verwendung des HMS SDK zunächst verschiedene Einstellungen an der Konsole vornehmen.

Der allgemeine Fluss ist wie folgt.

1. Erstellen eines App-Projekts
Sie können es erstellen, indem Sie in der obigen Abbildung "Meine Apps" eingeben und oben rechts im nächsten Bildschirm auf "Neue App" klicken. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674503/2b5e36a1-dec1-b89e-cbf0-366772506075.png)
2. Registrieren Sie die Signaturinformationen auf der Seite mit den detaillierten Projekteinstellungen "Meine Apps" wird oben links auf der Seite
angezeigt. Wählen Sie dort "Meine Projekte" aus, um die detaillierte Informationseingabeseite des Projekts aufzurufen. Sie können die Signaturinformationen der App unter "App-Informationen" auf der Seite "Allgemeine Informationen" registrieren.
3. Aktivieren Sie die API, die Sie verwenden möchten
Wählen Sie als Nächstes oben auf der Seite "APIs verwalten" aus und aktivieren Sie die API, die Sie verwenden möchten. ![API verwalten](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674503/5d2cbfdf-84e2-5b56-1577-88c42d628869.png)
4. Fügen Sie Ihrem Projekt die Datei agconnect-services.json hinzu
Nachdem alle oben genannten Einstellungen vorgenommen wurden, muss die Konfigurationsdatei (agconnect-services.json) endgültig im Projekt installiert werden. Auf der Seite Allgemeine Informationen unter "App-Informationen" befindet sich eine Schaltfläche, über die Sie agconnect-services.json herunterladen können, auf die Sie zum Herunterladen klicken können. Kopieren Sie die zuletzt heruntergeladene Datei in das App-Stammverzeichnis, um die Einrichtung abzuschließen.

Eine ausführliche Anleitung finden Sie auf der folgenden Website (Englisch). Handbuch zur Einstellung von App-Informationen: https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-configuringinagc

Vorbereitung Nr. 2: Installieren von ToolKit

ToolKit kann direkt in Android Studio installiert werden. Wenn Sie unter Datei> Einstellungen> Plugins> Marktplatz nach HMS suchen, wird es angezeigt und Sie können es einfach installieren. image.png

Eine ausführliche Anleitung finden Sie auf der folgenden Website (Englisch). ToolKit-Installationshandbuch: https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/installation-0000001050145206

Conversion-Flow

Von hier aus starten wir die eigentliche Konvertierung.

Konvertierung starten

Öffnen Sie zunächst das Projekt, das Sie in Android Studio konvertieren möchten, und starten Sie die Konvertierung, indem Sie in der Symbolleiste Konverter → Neue Konvertierung von "HMS" auswählen. Klicken Sie auf Neue Konvertierung. Der folgende Bildschirm wird angezeigt. image.png

Wählen Sie nun das Sicherungsverzeichnis aus und klicken Sie auf Weiter.

Scanergebnisse und Auswahl der Konvertierungslösung

Klicken Sie auf Weiter, um den Scan zu starten. Nach einer Weile werden die Ergebnisse angezeigt. image.png

Wenn Sie sich die Scanergebnisse ansehen, können Sie sehen, wie viel GMS-API in der aktuellen Datei verwendet wird und wie viele APIs automatisch konvertiert werden können. In diesem Fall kann die 100% GMS-API automatisch in HMS konvertiert werden (Auto Rate: 100%).

Wählen Sie abschließend die Konvertierungslösung (HMS hinzufügen oder Zu HMS hinzufügen) und klicken Sie auf Analysieren, um die Analyse zu starten. Dieses Mal habe ich Add HMS API (GMS API First) gewählt. Wenn Sie dies auswählen, wird es konvertiert, um vorzugsweise zu bestimmen, ob GMS verwendet werden kann, GMS zu verwenden, wenn GMS verwendet werden kann, und HMS zu verwenden, wenn GMS nicht verwendet werden kann.

Konvertierungsvorgang

Nach Abschluss der Analyse wird zuerst die Datei "README.md" angezeigt, in der die Operationsmethode beschrieben wird. Das Ergebnis der Analyse wird unten angezeigt. image.png

Wenn Sie sich die Analyseergebnisse ansehen, können Sie sehen, dass alle GMS im Projekt angefordert werden.

Gradle-Datei reparieren

Bevor Sie den Code konvertieren, müssen Sie zuerst die Gradle-Datei konvertieren. Geben Sie build.gradle im Dateifilter an, aktivieren Sie das Leerzeichen am rechten Ende des Elements und klicken Sie auf "Konvertieren", um die HMS-Repositorys und Abhängigkeiten automatisch hinzuzufügen.

image.png

Wählen Sie als Nächstes app / build.gradle aus und fügen Sie Abhängigkeiten usw. mit dem gleichen Gefühl hinzu. image.png

Die Teile in Rot können nicht automatisch konvertiert werden. Sie müssen sie daher manuell gemäß den Anweisungen in der Beschreibung korrigieren.

Stellen Sie den Filter schließlich auf settings.gradle ein und führen Sie eine automatische Konvertierung durch. image.png

Synchronisieren Sie das Projekt nach Abschluss der Konvertierung der Gradle-Datei einmal.

Code-Konvertierung

Führen Sie nach der Synchronisierung die Codekonvertierung durch. Setzen Sie den Dateifilter auf Alle, überprüfen Sie alle Zeilen außer gradle und führen Sie die Konvertierung aus.

image.png

Damit sind alle Projektkonvertierungen abgeschlossen.

Eine ausführliche Anleitung finden Sie auf der folgenden Website (Englisch). Konverterhandbuch: https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/convertor-0000001050147221

Überprüfen Sie den Betrieb der konvertierten App

Ich habe die konvertierte App sowohl auf HMS- als auch auf GMS-Terminals installiert. Wenn Sie es auf einem GMS-Terminal öffnen, wird Google Map wie in der ursprünglichen App angezeigt. gmsmap.jpg

Huawei Map wird jetzt korrekt angezeigt, wenn es auf einem HMS-Terminal geöffnet wird. hmsmap.jpg

Auf diese Weise macht es der ToolKit Converter überraschend einfach, vorhandene Android-Apps in HMS-Unterstützung zu konvertieren.

Auch die Größe der APK vor und nach der Konvertierung, die Sie interessiert, Vor der Konvertierung: 2,4 MB Nach der Konvertierung: 3,9 MB Wird sein. Da die Zunahme nur etwa 1,5 MB beträgt, was den beiden SDKs (Karte, Standort) entspricht, denke ich, dass die Zunahme der Größe aufgrund der G + H-Unterstützung ebenfalls im zulässigen Bereich liegt.

Die konvertierte App wird auch auf GitHub veröffentlicht. Wenn Sie also den konvertierten Code sehen möchten, beziehen Sie sich bitte direkt darauf. (Um die Huawei Map anzuzeigen, müssen Sie die in "Vorbereitung 1" beschriebene Arbeit selbst ausführen.) GitHub: https://github.com/vptsama/GHDemo_AfterConversion

abschließend

Huawei ist der weltweit zweitgrößte Hersteller von Smartphones mit einem Marktanteil von etwa 20% in Europa und etwa 50%, insbesondere in China. Wenn Sie also daran denken, Ihre App in Übersee zu erweitern, befinden wir uns in einer Zeit, in der es unvermeidlich ist, Ihre App mit HMS kompatibel zu machen und in der App-Galerie zu registrieren. Mit diesem ToolKit kann die eigentliche Konvertierung in sehr kurzer Zeit abgeschlossen werden. Sie können also auch die aktuelle App HMS-kompatibel machen und in der App Gallery freigeben, die Anzahl der Benutzer erhöhen und sich selbst zu einem globalen Huawei-Benutzer machen. Möchten Sie die App verteilen?

Recommended Posts

Mit ToolKit konnte ich innerhalb von 10 Minuten eine GMS-App in G + H-Unterstützung konvertieren
Ich konnte die Docker + Laravel + MySQL App für Heroku bereitstellen!
Ich wurde von der Dunkelheit Romajis verschluckt, als ich versuchte, meinen Namen in Romaji umzuwandeln
Ich war süchtig nach RXTX mit Sierra
Bei der Erstellung einer persönlichen App habe ich mich gefragt, ob ich sie mit haml erstellen soll