Sauter au contenu principal

Comment utiliser les fichiers AAR dans les plugins Capacitor

Apprenez à intégrer les fichiers AAR dans les plugins Capacitor pour améliorer vos applications web avec des fonctionnalités Android natives à travers une guide étape par étape clair.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Comment utiliser les fichiers AAR dans les plugins Capacitor

Vous souhaitez intégrer des fonctionnalités Android dans votre Capacitor application ? Ce guide explique comment utiliser les fichiers AAR (archive Android) dans les plugins __CAPGO_KEEP_0__ Capacitor plugins Martin Donadieu

Résultats clés :

  • Qu'est-ce que les fichiers AAR ? Les bibliothèques Android pré-construites contenant code, des ressources et des fichiers natifs.
  • Pourquoi les utiliser ? Les fichiers AAR permettent le réemploi de code, simplifient la maintenance et protègent les fonctionnalités propriétaires.
  • Qu'est-ce qui est requis ? Des outils comme Android Studio, Gradle, et Node.js, ainsi qu'une configuration de projet appropriée.
  • How intégrer ? Placez les fichiers AAR dans libs, configurez Gradle et connectez-les aux plugins Capacitor.

Étapes rapides :

  1. Configurez votre environnement : Installez les outils requis et configurez Android Studio.
  2. Organisez votre projet : Créez une structure claire pour votre Capacitor plugin.
  3. Ajoutez les fichiers AAR : Placez-les dans android/libs et mettez à jour les dépendances Gradle.
  4. Ecrire le plugin code: Lié la fonctionnalité AAR à JavaScript avec Capacitor’s API.
  5. Tester soigneusement : Utilisez le débogueur de Android Studio pour vous assurer d'une intégration fluide.

En suivant ce guide, vous pouvez intégrer de manière fluide les fichiers AAR dans vos plugins Capacitor, débloquant ainsi les capacités Android natives pour vos applications web.

Comment intégrer une bibliothèque Android (fichier AAR) dans un capacitor plugin

capacitor

Exigences de configuration de l'environnement de développement

Avant de travailler avec les fichiers AAR, assurez-vous que votre environnement de développement est correctement configuré pour éviter tout problème.

Logiciels requis

Voici les logiciels dont vous aurez besoin pour travailler avec les fichiers AAR dans les plugins Capacitor :

Logiciels Version minimale Objectif
Android Studio 2022.1.1 ou supérieur L'IDE principal pour le développement Android
Kit de développement Java 11 ou supérieur Requis pour le développement Android
Node.js 14.0 ou supérieur Pour gérer les packages Capacitor et npm
Gradle 7.3 ou supérieur Outil de construction d'Android
Git 2.30 ou supérieur Pour le contrôle de version et la gestion de packages

En outre, assurez-vous que les composants suivants sont inclus dans votre SDK Manager :

  • Plateforme Android SDK 33 (Android 13.0)
  • Outils de construction Android SDK 33.0.0
  • Outils de ligne de commande Android SDK
  • Émulateur Android
  • Outils de plateforme Android SDK

Étapes de configuration du projet

1. Initialisez votre environnement de développement

Commencez par créer un nouveau répertoire avec cette structure :

my-plugin/
├── android/
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json

2. Configurez les paramètres de Android Studio

Lancez Android Studio et ajustez les paramètres suivants :

  • Définissez la version JDK de Gradle à 11 ou supérieure.
  • Activez la fonctionnalité de téléchargement automatique pour les composants Android SDK.
  • Mettriez à jour les variables d'environnement système avec le chemin correct d'Android SDK.

3. Préparez la structure de votre plugin

Mettre à jour le android/build.gradle fichier avec ces paramètres pour inclure le support des fichiers AAR :

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. Configurer le Contrôle de Version

Initialiser Git dans votre répertoire de projet et créer un .gitignore fichier pour exclure les fichiers inutiles. Voici un exemple de .gitignore:

android/build/
node_modules/
dist/
*.iml
.idea/
.gradle/
local.properties

Une fois ces étapes complétées, vous serez prêt à passer à l'ajout de vos fichiers AAR.

Ajouter des Fichiers AAR à votre Plugin

Obtenir des Fichiers AAR

Les fichiers AAR peuvent provenir de SDK tiers, de bibliothèques personnalisées ou de dépendances Maven. Il est une bonne idée de documenter leur source, leur version et leur but dans un README fichier situé dans le libs répertoire.

Type de Source Description Meilleure pratique
Tiers SDKs Bibliothèques précompilées des fournisseurs Documentez les détails de la version du fournisseur dans un fichier README
Bibliothèques Android personnalisées Modules Android auto-développés Documentez le processus de construction
Dépendances Maven Converti à partir de dépôts distants Cachez localement pour des builds hors ligne

Une fois que vos fichiers AAR sont prêts et documentés, vous pouvez configurer votre plugin pour les inclure.

Configuration des fichiers du plugin

Organisez vos fichiers de plugin pour garantir une intégration fluide des dépendances AAR. Voici un exemple de la structure de votre plugin qui pourrait ressembler à ceci :

my-plugin/
├── android/
│   ├── libs/        # AAR files with README
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json
{
    "files": [
        "android/libs/*.aar",
        "android/src/**/*",
        "src/**/*"
    ]
}

Emplacement du fichier AAR

Pour activer la fonctionnalité AAR, placez les fichiers dans le android/libs répertoire de votre plugin en suivant ces étapes :

  • Utilisez un format de nommage clair et cohérent, comme libraryname-version.aar.
  • Gérez les versions dans un versions.properties fichier. Par exemple :
library1=1.2.3
library2=2.0.0
  • Créez un dependencies.gradle fichier pour les autres dépendances :
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • Organisez les fichiers spécifiques au fournisseur dans des sous-répertoires pour une meilleure gestion :
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

Conserver les fichiers de configuration dans des sous-répertoires spécifiques au fournisseur aide à maintenir l'organisation et évite les conflits de construction lors du travail avec plusieurs dépendances AAR.

Gradle Étapes de configuration

Interface de l'outil de construction Gradle

Mise à jour de build.gradle

Pour intégrer les fichiers AAR dans votre plugin Capacitor, vous devez configurer Gradle de manière appropriée. Commencez par ajouter ces paramètres de référentiel à android/build.gradle:

repositories {
    google()
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

Ensuite, incluez les dépendances AAR dans le dependencies block :

dependencies {
    implementation files('libs/your-library.aar')
    implementation fileTree(dir: 'libs', include: ['**/*.aar'])
    implementation "com.getcapacitor:core:${capacitorVersion}"
    implementation "androidx.appcompat:appcompat:1.6.1"
}

Pour une gestion de version plus efficace, créez un gradle.properties fichier dans le répertoire racine de votre projet et définissez les versions de vos bibliothèques :

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

Si le fichier AAR est accompagné de dépendances supplémentaires, déclarez-les dans android/build.gradle comme suit :

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
    }
}

Une fois que vous avez apporté ces modifications, synchronisez votre projet pour les appliquer.

Exécution de la synchronisation Gradle

Ouvrez votre projet dans Android Studio et attendez que Gradle se synchronise automatiquement. Si cela ne démarre pas, cliquez sur le bouton « Synchroniser le projet avec les fichiers Gradle » dans la barre d'outils.

Après synchronisation, vérifiez les éléments suivants :

Vérification du point de contrôle Résultat attendu Problèmes courants
Sortie de construction Aucun erreur liée aux AAR Dépendances manquantes
Résolution de bibliothèque Fichiers AAR correctement liés Références de chemins incorrectes
Conflits de version Aucun problème de version de dépendance Versions incompatibles

Si la synchronisation échoue, vérifiez à nouveau votre configuration. Par exemple, assurez-vous que ces paramètres sont en place :

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }
}

Pour les fichiers AAR volumineux, vous devrez peut-être augmenter la allocation de mémoire de Gradle dans gradle.properties:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

Une fois la synchronisation terminée avec succès, vos fichiers AAR devraient être intégrés pleinement et prêts à la mise en ligne.

Brancher les fonctionnalités AAR à Capacitor

Écrire la classe du plugin

Une fois vos fichiers Gradle synchronisés, il est temps de connecter votre fonctionnalité AAR en étendant la Plugin classe. Cette étape relie JavaScript à l'Android natif code.

@NativePlugin(
    permissions = {
        Manifest.permission.REQUIRED_PERMISSION
    }
)
public class YourPlugin extends Plugin {
    private YourAARLibrary libraryInstance;

    @Override
    public void load() {
        super.load();
        libraryInstance = new YourAARLibrary(getContext());
    }
}

Voici ce dont vous avez besoin pour initialiser la bibliothèque AAR :

Composant Objectif Note d'implémentation
Contexte Contexte d'application Android Utilisation getContext() à partir de la classe Plugin
Configuration Paramètres de la bibliothèque Transmettre des options à partir du plugin
Gestion de l'état du plugin Gestion de l'état du plugin Surcharger load() et handleOnDestroy()

Créer des méthodes de plugin

Ensuite, définissez des méthodes dans votre plugin en utilisant l'annotation. Ces méthodes gèrent l'échange de données entre JavaScript et Java. @PluginMethod Pour les tâches qui nécessitent d'être exécutées de manière asynchrone :

@PluginMethod
public void performAction(PluginCall call) {
    try {
        // Get data from JavaScript
        String inputData = call.getString("inputKey");

        // Call AAR library method
        YourLibraryResult result = libraryInstance.processData(inputData);

        // Return result to JavaScript
        JSObject ret = new JSObject();
        ret.put("value", result.getValue());
        call.resolve(ret);
    } catch (Exception e) {
        call.reject("Error processing data", e);
    }
}

Ici, voici comment les types courants sont convertis entre JavaScript et Java :

@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
public void startContinuousOperation(PluginCall call) {
    call.setKeepAlive(true);

    libraryInstance.setCallback(new LibraryCallback() {
        @Override
        public void onUpdate(String data) {
            JSObject ret = new JSObject();
            ret.put("data", data);
            call.resolve(ret);
        }
    });
}

Type JavaScript

Type Java Méthode de conversion Objet
JSObject JSObject call.getObject()
Array Tableau d'objets call.getArray()
String Chaîne de caractères call.getString()
Number Entier/Décimal call.getInt()/call.getDouble()
Boolean Booléen call.getBoolean()

Pour la suppression des ressources, surchargez la méthode: handleOnDestroy méthode:

@Override
protected void handleOnDestroy() {
    if (libraryInstance != null) {
        libraryInstance.cleanup();
        libraryInstance = null;
    }
    super.handleOnDestroy();
}

Une fois ces méthodes en place, votre pont natif est prêt. Testez votre implémentation dans l'environnement de débogage d'Android Studio pour vous assurer que tout fonctionne comme prévu.

Test et correction des problèmes

Débogage dans Android Studio

Android Studio

Pour déboguer votre intégration AAR dans Android Studio, commencez par activer le mode débogage dans votre projet’s build.gradle __CAPGO_KEEP_0__

android {
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
        }
    }
}

Ajoutez des points d'arrêt dans vos méthodes de plugin pour suivre le flux de données et identifier les problèmes potentiels :

@PluginMethod
public void yourMethod(PluginCall call) {
    // Set a breakpoint here to inspect input data
    String inputValue = call.getString("key");
    // Another breakpoint here to check method calls to the AAR
    libraryInstance.someMethod(inputValue);
}

Utilisez le panneau Débogage dans Android Studio pour surveiller les zones clés :

Zone de Débogage Ce que Vérifier Problèmes courants
Logcat Messages d'initialisation AAR Permissions manquantes ou contexte incorrect
Variables Conversions de types de données Valeurs nulles ou incompatibilités de types
Trace d'erreur Flux d'exécution de méthode Appels de méthode invalides ou problèmes de multithéâtre
Mémoire Utilisation des ressources Fuites de mémoire

Si la débogage ne résout pas le problème, suivez les étapes de dépannage de la section suivante.

Étapes de dépannage

When la débogage seul ne suffit pas, utilisez ces étapes pour résoudre les problèmes courants :

1. Conflits de dépendances

Vérifiez les conflits de versions dans votre build.gradle fichier. Vous pouvez forcer des versions spécifiques pour résoudre les conflits :

configurations.all {
    resolutionStrategy {
        force 'com.google.android:android:4.1.1.4'
        // Add other forced versions as needed
    }
}

2. Bibliothèques natives manquantes

Assurez-vous que le AAR inclut les fichiers requis .so dans les répertoires appropriés, tels que :

  • jniLibs/armeabi-v7a/
  • jniLibs/arm64-v8a/
  • jniLibs/x86/
  • jniLibs/x86_64/

3. Problèmes de fusion de manifestes

Si vous rencontrez des conflits de manifestes, incluez les éléments suivants dans votre AndroidManifest.xml fichier pour contourner les bibliothèques problématiques :

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your.plugin.package">
    <uses-sdk tools:overrideLibrary="conflicting.library.package"/>
</manifest>

4. Crashes de runtime et gestion de la mémoire

Utilisez l'onglet Performance dans Android Studio pour surveiller la stabilité de runtime. Pour les problèmes d'initialisation, gérez les exceptions avec soin :

try {
    libraryInstance = new YourAARLibrary(getContext());
} catch (Exception e) {
    Log.e("PluginError", "Failed to initialize library: " + e.getMessage());
    return;
}

To éviter les fuites de mémoire, assurez-vous que les ressources soient libérées correctement. Utilisez le Profil de mémoire dans Android Studio pour suivre l'utilisation de la pile et identifier toute fuite.

Résumé

Pour intégrer les fichiers AAR dans les plugins Capacitor, vous devrez configurer l'environnement Android, placer les fichiers AAR correctement, configurer Gradle avec précision et tester soigneusement.

Phases d'implémentation clés

Phase Exigences Indicateurs de réussite
Configuration de développement Android Studio 4.0+, Gradle 7.0+ La construction se termine sans erreurs
Intégration des fichiers AAR Placement des fichiers corrects, dépendances correctes Aucun conflit de manifeste
Développement de plugins Structure de plugin claire, cartographie des méthodes précise Les méthodes s'exécutent comme prévu
Tests Mode débogage actif, prise en charge des erreurs efficace Aucun crash en temps de cours

Une fois que vous avez maîtrisé ces bases, vous pouvez explorer des techniques plus avancées.

Étapes suivantes

Pour améliorer votre plugin, concentrez-vous sur ces domaines :

  • Optimisation de la performance
    Utilisez le profilateur d'Android Studio pour surveiller l'utilisation de la mémoire et vous assurer que les ressources sont correctement supprimées.

  • Distribution Préparation
    Documentez toutes les configurations AAR, générer la API documentation et tester la compatibilité avec les niveaux Android API 29–34.

  • Stratégie de Maintenance
    Automatiser les tests, gérer les versions AAR avec le contrôle de version, maintenir un journal des modifications et configurer la notification d'erreur pour résoudre les problèmes de production.

Si vous prévoyez de partager votre plugin publiquement, assurez-vous de fournir une documentation détaillée sur les configurations AAR spécifiques et toute limitation de plateforme. Cela facilitera l'adoption et l'utilisation de votre plugin par d'autres développeurs.

Continuez de la section Comment utiliser les fichiers AAR dans les Capacitor plugins

Si vous utilisez Comment utiliser les fichiers AAR dans les Capacitor plugins pour planifier le travail de plugin natif, connectez-le avec Répertoire des plugins Capgo pour le flux de travail du produit dans le Répertoire des plugins Capgo Plugins Capacitor par Capgo pour les détails d'implémentation dans les Capacitor Plugins par Capgo, Ajouter ou Mettre à Jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins, Alternatives de Plugins d'Entreprise Ionic pour le flux de travail du produit dans Alternatives de Plugins d'Entreprise Ionic, et Capgo Builds Natives pour le flux de travail du produit dans Capgo Builds Natives.

Mises à jour en temps réel pour les applications Capacitor

Lorsqu'un bug de la couche web est en ligne, expédiez la correction par le biais de Capgo au lieu d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natifs restent dans la voie de revue normale.

Commencez maintenant

Dernières actualités de notre Blog

Capgo vous offre les meilleures informations dont vous avez besoin pour créer une application mobile véritablement professionnelle.