[JAVA] J'ai pu convertir une application GMS en support G + H en 10 minutes à l'aide de ToolKit

Aperçu

Dans l'article précédent, je vous ai expliqué comment convertir une application Android existante en support HMS. Dans cet article, je voudrais vous présenter comment convertir une application GMS en une application qui peut être exploitée à la fois sur les terminaux GMS et HMS à l'aide de l'outil de conversion automatique de code (ToolKit) fourni par Huawei.

Présentation de ToolKit

Tout d'abord, je voudrais présenter brièvement les grandes lignes et le principe de ToolKit.

Qu'est-ce que ToolKit

ToolKit est un plug-in Android Studio avec des fonctionnalités telles que l'assistant de codage, le débogage cloud, les tests cloud et la conversion automatique de code pendant le développement HMS.

Outil de conversion automatique de code ToolKit (lien GitHub) ) Est un outil qui détecte l'API GMS utilisée dans l'application d'origine et la convertit automatiquement en compatible G + H, et est compatible avec Kotlin et Java. Cette fois, j'ai utilisé un outil de conversion de code automatique (Convertor) pour convertir une application GMS existante en compatible G + H, je voudrais donc partager comment le faire.

Le coût de la conversion était inférieur à ce à quoi je m'attendais et la conversion a pris moins de 10 minutes, hors travaux préparatoires, donc si vous êtes intéressé, vous pouvez l'essayer vous-même.

Convertisseur Vue d'ensemble du principe de conversion

Le site officiel de Huawei décrit le principe du convertisseur comme celui-ci.

· Ajouter une API HMS: ajoute xmsAdapter, un module de code d'adaptateur, basé sur le code d'origine pour appeler des API tierces. Le code de l'adaptateur peut appeler des API tierces ou des API HMS en fonction de la politique de planification. La politique de planification est déterminée par toi. · Vers l'API HMS: remplace le code API tiers dans le code de l'application par le code API HMS à appeler. Le code converti appelle directement les API HMS.

De plus, cette page a des principes plus détaillés.

J'ai compris la logique de conversion à ma manière et j'ai réalisé un diagramme d'image. Le centre est l'application d'origine, la gauche est l'application après la conversion G + H et la droite est l'application après la conversion G2H. J'ai présenté G + H et G2H dans l'article précédent, donc si vous n'êtes pas sûr, veuillez vous référer à cet article.

xmsconvertorlogic.png

Dans le cas de la conversion G2H, c'est relativement simple, et Converter remplace toutes les API et packages GMS de l'application par le HMS correspondant («App après conversion G2H» dans la figure ci-dessus).

Dans le cas de G + H ("App après conversion G + H"), c'est un peu compliqué, et lors de la conversion à l'aide de Converter, un nouveau module (xmsadaptor) est ajouté selon l'API GMS utilisée par Converter dans l'application d'origine. ) Est généré (partie verte dans la figure ci-dessus). Et toutes les API GMS utilisées dans le code d'origine sont converties en API XMS.

Lorsqu'une certaine API est appelée, ce xmsadaptor juge la disponibilité du GMS / HMS du terminal, et l'API du SDK du GMS / HMS correspondant est utilisée en fonction du résultat du jugement.

Description de l'application de démonstration pour la conversion

Pour essayer la conversion, j'ai créé une application de démonstration simple à l'aide de GMS. L'application de démonstration utilise Google Maps et le SDK de localisation pour afficher une carte de la position actuelle de l'utilisateur lorsque l'application est lancée. onlyg.jpg

Lorsque vous installez l'application de pré-conversion sur votre appareil HMS, vous verrez une boîte de dialogue comme celle-ci indiquant que les services de développement Google Play ne peuvent pas être utilisés. onlyh.jpg

J'ai donné l'application de pré-conversion à GitHub pour le moment. Si vous êtes intéressé, veuillez l'utiliser directement pour convertir. (Vous avez besoin d'une clé API pour l'API Google Maps émise par votre propre plate-forme Google Cloud) GitHub: https://github.com/vptsama/GHDemo_BeforeConversion

Préparation

Avant de procéder à la conversion proprement dite, vous devez d'abord vous préparer à utiliser le SDK Map & Location SDK et ToolKit de HMS.

Préparation n ° 1: Paramètres d'utilisation du SDK HMS Map and Location

Étape 1: Obtenez un compte développeur Huawei (gratuit)

Pour utiliser le SDK HMS, vous devez disposer d'un compte développeur Huawei. Il y a deux étapes principales pour demander un compte:

  1. Obtention d'un identifiant Huawei
  2. Certification de développeur

Dans 2 certification de développeur, il existe deux options, la certification de développeur individuel et la certification de développeur d'entreprise, mais je me suis authentifié avec un compte personnel et l'examen a été terminé en une journée environ. De plus, je vous remercie de pouvoir postuler gratuitement.

Pour un guide détaillé, veuillez consulter le site suivant (en anglais). Guide d'application Huawei ID: https://developer.huawei.com/consumer/en/doc/10104 Certification de développeur (pour les particuliers): https://developer.huawei.com/consumer/en/doc/10122

Étape 2: Créez un projet d'application et définissez les informations dans Appgallery Connect

AppGallery Connect (https://developer.huawei.com/consumer/en/console) est la console développeur de Huawei. コンソール内

Comme Google, pour utiliser le SDK HMS, vous devez d'abord définir divers paramètres sur la console.

Le flux général est le suivant.

1. Création d'un projet d'application
Vous pouvez le créer en saisissant «Mes applications» dans la figure ci-dessus et en cliquant sur «Nouvelle application» en haut à droite de l'écran suivant. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674503/2b5e36a1-dec1-b89e-cbf0-366772506075.png)
2. Enregistrez les informations de signature sur la page des paramètres détaillés du projet «Mes applications» s'affiche dans le coin supérieur gauche de la page
, et sélectionnez «Mes projets» à partir de là pour accéder à la page de saisie des informations détaillées du projet. Vous pouvez enregistrer les informations de signature de l'application sous «Informations sur l'application» sur la page Informations générales.
3. Activez l'API que vous souhaitez utiliser
Ensuite, sélectionnez "Gérer les API" en haut de la page et activez l'API que vous souhaitez utiliser. ![Gérer l'API](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674503/5d2cbfdf-84e2-5b56-1577-88c42d628869.png)
4. Ajoutez le fichier agconnect-services.json à votre projet
Une fois que tous les paramètres ci-dessus sont terminés, il est nécessaire d'installer enfin le fichier de configuration (agconnect-services.json) dans le projet. Il y a un bouton sur la page Informations générales sous «Informations sur l'application» où vous pouvez télécharger agconnect-services.json, que vous pouvez cliquer pour télécharger. Copiez le dernier fichier téléchargé dans le répertoire racine de l'application pour terminer la configuration.

Pour un guide détaillé, veuillez consulter le site suivant (en anglais). Guide de configuration des informations sur l'application: https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-configuringinagc

Préparation n ° 2: Installation de ToolKit

ToolKit peut être installé directement dans Android Studio. Si vous recherchez HMS dans Fichier> Paramètres> Plugins> Marketplace, il apparaîtra et vous pourrez facilement l'installer. image.png

Pour un guide détaillé, veuillez consulter le site suivant (en anglais). Guide d'installation de ToolKit: https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/installation-0000001050145206

Flux de conversion

De là, nous commencerons la conversion réelle.

Lancer la conversion

Tout d'abord, ouvrez le projet que vous souhaitez convertir dans Android Studio et démarrez la conversion en sélectionnant Convertisseur → Nouvelle conversion à partir de "HMS" dans la barre d'outils. Cliquez sur Nouvelle conversion et l'écran suivant s'affiche. image.png

Sélectionnez maintenant le répertoire de sauvegarde et cliquez sur Suivant.

Résultats de l'analyse et sélection de la solution de conversion

Cliquez sur Suivant pour démarrer l'analyse et après un certain temps, vous verrez les résultats. image.png

En regardant les résultats de l'analyse, vous pouvez voir combien d'API GMS sont utilisées dans le fichier actuel et le nombre d'API qui peuvent être converties automatiquement. Dans ce cas, l'API 100% GMS peut être automatiquement convertie en HMS (Taux automatique: 100%).

Enfin, sélectionnez la solution de conversion (Ajouter HMS ou To HMS) et cliquez sur Analyser pour démarrer l'analyse. Cette fois, j'ai choisi Add HMS API (GMS API First). Si vous sélectionnez cette option, il déterminera de préférence si GMS peut être utilisé, et si GMS peut être utilisé, GMS sera utilisé, et si GMS ne peut pas être utilisé, HMS sera utilisé.

Opération de conversion

Lorsque l'analyse est terminée, le fichier "README.md" qui décrit la méthode d'opération s'affiche en premier. Et le résultat de l'analyse est affiché en bas. image.png

Si vous regardez les résultats de l'analyse, vous pouvez voir que tous les GMS du projet sont demandés.

Réparer le fichier gradle

Avant de convertir le code, vous devez d'abord convertir le fichier gradle. Spécifiez build.gradle dans le filtre de fichier, cochez le blanc à l'extrémité droite de l'élément et cliquez sur «Convertir» pour ajouter automatiquement les référentiels et les dépendances HMS.

image.png

Ensuite, sélectionnez app / build.gradle et ajoutez des dépendances, etc. avec le même sentiment. image.png

Les pièces en rouge ne peuvent pas être converties automatiquement, vous devez donc les corriger manuellement selon les instructions écrites dans la Description.

Enfin, définissez le filtre sur setting.gradle et effectuez une conversion automatique. image.png

Une fois la conversion du fichier gradle terminée, synchronisez le projet une fois.

Conversion de code

Après la synchronisation, effectuez la conversion du code. Définissez le filtre de fichier sur Tout, vérifiez toutes les lignes sauf gradle et exécutez la conversion.

image.png

Ceci termine toutes les conversions de projet.

Pour un guide détaillé, veuillez consulter le site suivant (en anglais). Guide du convertisseur: https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/convertor-0000001050147221

Vérifiez le fonctionnement de l'application convertie

J'ai installé l'application convertie sur les terminaux HMS et GMS. Si vous l'ouvrez sur un terminal GMS, Google Map s'affichera comme dans l'application d'origine. gmsmap.jpg

Huawei Map s'affiche désormais correctement lorsqu'elle est ouverte sur un terminal HMS. hmsmap.jpg

De cette façon, le convertisseur de ToolKit rend étonnamment facile la conversion des applications Android existantes en support HMS.

En outre, la taille de l'APK avant et après la conversion qui vous intéresse, Avant la conversion: 2,4 Mo Après la conversion: 3,9 Mo Sera. Étant donné que l'augmentation n'est que d'environ 1,5 Mo correspondant aux deux SDK (carte, emplacement), je pense que l'augmentation de la taille due au support G + H est également dans la plage autorisée.

L'application convertie est également publiée sur GitHub, donc si vous souhaitez voir le code converti, veuillez vous y référer directement. (Pour afficher la carte Huawei, vous devez effectuer vous-même le travail décrit dans «Préparation 1») GitHub: https://github.com/vptsama/GHDemo_AfterConversion

en conclusion

Huawei est le deuxième fabricant mondial de smartphones, avec une part de marché d'environ 20% en Europe et d'environ 50%, notamment en Chine. Par conséquent, si vous envisagez d'étendre votre application à l'étranger, je pense que nous sommes à une époque où il est inévitable de rendre votre application compatible avec HMS et de l'enregistrer dans la galerie d'applications. La conversion réelle peut être effectuée en un temps considérablement court en utilisant cette boîte à outils, vous pouvez donc également rendre l'application actuelle compatible HMS et la publier dans App Gallery, augmenter le nombre d'utilisateurs et devenir un utilisateur Huawei dans le monde entier. Souhaitez-vous distribuer l'application?

Recommended Posts

J'ai pu convertir une application GMS en support G + H en 10 minutes à l'aide de ToolKit
J'ai pu déployer l'application Docker + laravel + MySQL sur Heroku!
J'ai été englouti par l'obscurité de Romaji essayant de convertir mon nom en Romaji
J'étais accro à l'utilisation de RXTX avec Sierra
Lors de la création d'une application personnelle, je me demandais si je devais la faire en utilisant haml