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.
Tout d'abord, je voudrais présenter brièvement les grandes lignes et le principe de 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.
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.
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.
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.
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.
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
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.
Pour utiliser le SDK HMS, vous devez disposer d'un compte développeur Huawei. Il y a deux étapes principales pour demander un compte:
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
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.
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
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.
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
De là, nous commencerons la conversion réelle.
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.
Sélectionnez maintenant le répertoire de sauvegarde et cliquez sur Suivant.
Cliquez sur Suivant pour démarrer l'analyse et après un certain temps, vous verrez les résultats.
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é.
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.
Si vous regardez les résultats de l'analyse, vous pouvez voir que tous les GMS du projet sont demandés.
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.
Ensuite, sélectionnez app / build.gradle et ajoutez des dépendances, etc. avec le même sentiment.
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.
Une fois la conversion du fichier gradle terminée, synchronisez le projet une fois.
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.
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
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.
Huawei Map s'affiche désormais correctement lorsqu'elle est ouverte sur un terminal HMS.
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
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