Vai alla sezione principale

How to Use AAR Files in Capacitor Plugins

Learn how to integrate AAR files into Capacitor plugins for enhancing your web apps with native Android features through a clear, step-by-step guide.

How to Use AAR Files in Capacitor Plugins

Content Marketer Come utilizzare i file AAR nei plugin di Capacitor Plugins app? Questa guida spiega come utilizzare i file AAR (Archivio Android) nei plugin Capacitor per combinare la funzionalità nativa Android con le app web cross-platform.

Presempi chiave:

  • Cos'è un file AAR? Biblioteche Android preconfezionate contenenti code, risorse e file nativi.
  • Perché usarli? I file AAR consentono il riutilizzo di code, semplificano la manutenzione e proteggono le funzionalità proprietarie.
  • Cosa è richiesto? Strumenti come Android Studio, Gradle, e Node.js, più una configurazione del progetto corretta.
  • Come integrare? Colloca i file AAR in libs, configura Gradle e collega i plugin Capacitor.

Passaggi veloci:

  1. Configura il tuo ambiente: Installa gli strumenti richiesti e configura Android Studio.
  2. Organizza il tuo progetto: Creare una struttura chiara per il tuo Capacitor plugin.
  3. Aggiungi file AAR: Collocali in android/libs e aggiorna le dipendenze Gradle.
  4. Scrivi il plugin code: Collega la funzionalità AAR al JavaScript con Capacitor’s API.
  5. Testa accuratamente: Utilizza il debugger di Android Studio per assicurarti di un'integrazione liscia.

Seguendo questa guida, puoi incorporare facilmente i file AAR nei tuoi plugin Capacitor, sbloccando le capacità native Android per le tue app web.

Come incorporare una libreria Android (file AAR) in un capacitor plugin

capacitor

Requisiti di configurazione per lo setup di sviluppo

Prima di lavorare con i file AAR, assicurati che il tuo ambiente di sviluppo sia configurato correttamente per evitare qualsiasi problema.

Software richiesto

Ecco lo software di cui avrai bisogno per lavorare con i file AAR nei plugin Capacitor:

Software Versione minima Scopo
Area: Sito web di marketing di Capgo. Ruolo: Etichetta UI breve o elemento di navigazione. Chiave di messaggio `subprocessors_table_purpose` (Scopo della tabella dei sottoprocessori). Android Studio (IDE per Android) o Android Studio (IDE per Android) con Android SDK installato (per Android SDK versione 2022.1.1 o successiva) L'IDE principale per lo sviluppo Android
Kit di sviluppo Java 11 o superiore Richiesto per lo sviluppo Android
Node.js 14.0 o superiore Per gestire i pacchetti Capacitor e npm
Gradle 7.3 o superiore Strumento di costruzione Android
Git 2.30 o superiore For il controllo delle versioni e la gestione dei pacchetti

Inoltre, assicurati che i seguenti componenti siano inclusi nel tuo SDK Manager:

  • L'SDK Platform Android 33 (Android 13.0)
  • L'SDK Build-Tools Android 33.0.0
  • L'SDK Command-line Tools Android
  • L'Emulatore Android
  • L'SDK Platform-Tools Android

I Passaggi di Configurazione del Progetto

1. I Passaggi di Avvio del Sviluppatore

Inizia creando un nuovo directory con questa struttura:

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

2. Configura le Impostazioni di Android Studio

Lancia Android Studio e regola le seguenti impostazioni:

  • Imposta il JDK di Gradle alla versione 11 o superiore.
  • Abilita la funzione di download automatico per i componenti Android SDK.
  • Aggiorna le variabili di ambiente del sistema con il percorso Android SDK corretto.

3. Prepara la struttura del tuo plugin.

Aggiorna il file con queste impostazioni per includere il supporto ai file AAR: android/build.gradle Configura il controllo delle versioni.

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. Inizia Git nel tuo directory di progetto e crea un file per escludere file non necessari. Ecco un esempio:

Una volta completati questi passaggi, sarai pronto a passare all'aggiunta dei tuoi file AAR. .gitignore Aggiungere file AAR al tuo plugin. .gitignore:

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

Ottenere file AAR

Aggiornamento del file

Configurazione del controllo delle versioni

AAR i file possono provenire da SDK di terze parti, librerie personalizzate o dipendenze Maven. È una buona idea documentare la loro origine, versione e scopo in un README file ubicato nella libs directory.

Tipo di origine Descrizione Pratica consigliata
SDK di terze parti Librerie Android precompilate da fornitori Documentare i dettagli della versione del fornitore in un README
Librerie Android personalizzate Moduli Android sviluppati in proprio Documentare il processo di build
Dipendenze Maven Convertite dalle repository remote Caching localmente per costruzioni offline

Una volta che i file AAR sono pronti e documentati, puoi configurare il tuo plugin per includerli.

Configurazione dei File del Plugin

Organizza i file del tuo plugin per garantire un'integrazione liscia delle dipendenze AAR. Ecco un esempio di come la struttura del tuo plugin potrebbe essere:

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

Posizionamento dei File AAR

Per abilitare la funzionalità AAR, posiziona i file nella android/libs directory del tuo plugin seguendo questi passaggi:

  • Utilizza un formato di denominazione chiaro e coerente, come libraryname-version.aar.
  • Gestisci le versioni in un versions.properties file. Ad esempio:
library1=1.2.3
library2=2.0.0
  • Aggiungi un dependencies.gradle file per altre dipendenze:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • Organizza i file specifici del fornitore in sottodirectory per una gestione migliore:
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

Mantenere i file di configurazione nelle sottodirectory specifiche del fornitore aiuta a mantenere l'organizzazione e evita i conflitti di costruzione quando si lavora con più dipendenze AAR.

Gradle Passaggi di configurazione

Interfaccia del Gradle per l'interfaccia di costruzione

Aggiornamento di build.gradle

Per integrare i file AAR nel tuo plugin Capacitor, è necessario configurare Gradle in modo appropriato. Inizia aggiungendo questi impostazioni di repository a android/build.gradle:

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

Quindi, includi le dipendenze AAR nel dependencies blocco:

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"
}

Per una gestione delle versioni migliore, crea una gradle.properties file nel root del tuo progetto e definisci le versioni della tua libreria:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

Se il file AAR viene fornito con dipendenze aggiuntive, dichiarale in android/build.gradle come segue:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

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

Una volta apportate queste modifiche, sincronizza il tuo progetto per applicarle.

Eseguire il Sync di Gradle

Apre il tuo progetto in Android Studio e attendi che Gradle sincronizzi automaticamente. Se non inizia, clicca sul pulsante "Sincronizza progetto con file Gradle" nella barra degli strumenti.

Dopo aver sincronizzato, verifica i seguenti punti:

Punto di controllo Risultato previsto Issue comuni
Output di compilazione Assenza di errori correlati al file AAR Componenti mancanti
Risoluzione della libreria I file AAR collegati correttamente Riferimenti di percorso della libreria errati
Conflitti di versione Assenza di problemi di versione di dipendenza Versioni incompatibili

Se il sincronizzazione fallisce, verificare nuovamente la tua configurazione. Ad esempio, assicurati che questi impostazioni siano in vigore:

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

    lintOptions {
        abortOnError false
    }
}

Per grandi file AAR, potresti dover aumentare l'allocazione di memoria di Gradle in gradle.properties:

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

Una volta completata con successo la sincronizzazione, i tuoi file AAR dovrebbero essere completamente integrati e pronti per le prove.

Collegamento delle funzionalità AAR a Capacitor

Scrivere la classe del plugin

Una volta sincronizzati i file Gradle, è il momento di collegare la tua funzionalità AAR estendendo la classe Plugin class. This step links JavaScript to the native Android 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());
    }
}

Questo passaggio collega JavaScript alla __CAPGO_KEEP_0__ Android nativa.

Ecco cosa ti serve per inizializzare la libreria AAR: Componente Funzione
contexto: Pagina/Area: Sito web di marketing Capgo. Ruolo: Etichetta UI breve o elemento di navigazione. Chiave messaggio `subprocessors_table_purpose` (Funzione della tabella dei sottoprocessori). Nota di implementazione Contesto getContext() Contesto Android dell'app
Usa da classe Plugin Impostazioni della libreria Passa opzioni dal plugin
Ciclo di vita Gestione dello stato del plugin Sovrascrivi load() e handleOnDestroy()

Crea metodi del plugin

Successivamente, definisci metodi nel tuo plugin utilizzando l'annotazione. Questi metodi gestiscono l'interscambio di dati tra JavaScript e Java. @PluginMethod Per compiti che richiedono l'esecuzione in modo asincrono:

@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);
    }
}

Ecco come sono convertiti i tipi comuni tra JavaScript e 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);
        }
    });
}

Tipo di JavaScript

Ecco come sono convertiti i tipi comuni tra JavaScript e Java: JavaScript Type Tipo Java Metodo di conversione
Oggetto JSObject call.getObject()
Array JSArray call.getArray()
Stringa Stringa call.getString()
Numero Intero/Doppio call.getInt()/call.getDouble()
Booleano Booleano call.getBoolean()

For la pulizia delle risorse, sovrascrivi il handleOnDestroy metodo:

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

Con questi metodi in atto, il tuo ponte nativo è pronto. Testa la tua implementazione nel ambiente di debug di Android Studio per assicurarti che tutto funzioni come previsto.

Test e Risoluzione dei Problemi

Debugging in Studio di Android

Studio di Android

Per debuggare l'integrazione AAR nel tuo Studio di Android, inizia abilitando il debug nel file del tuo progetto: build.gradle Aggiungi breakpoint nei metodi del tuo plugin per tracciare il flusso dei dati e identificare potenziali problemi:

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

Utilizza il pannello Debug nel tuo Studio di Android per monitorare le aree chiave:

@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);
}

Area di Debugging

Debugging Area Cosa controllare Problemi comuni
Logcat Messaggi di inizializzazione AAR Permesso mancante o contesto errato
Variabili Conversioni di tipo dati Valori nulli o incongruenze di tipo
Traccia di stack Flusso di esecuzione del metodo Chiamate di metodo non valide o problemi di threading
Memoria Utilizzo delle risorse Memorie non rilasciate

Se la debuggazione non risolve il problema, segui i passaggi di risoluzione dei problemi nella sezione successiva.

Pasaggi di Risoluzione dei Problemi

Quando la debuggazione da sola non è sufficiente, utilizza questi passaggi per risolvere i problemi comuni:

1. Conflitti di Dipendenza

Controlla i conflitti di versione nei tuoi build.gradle file. Puoi forzare versioni specifiche per risolvere i conflitti:

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

2. Librerie native mancanti

Assicurati che l'AAR includa i file richiesti nei directory appropriati, come ad esempio: .so 3. Problemi di fusione del manifesto

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

3. Problemi di fusione del manifesto

If si incontrano conflitti di manifesto, includere i seguenti nel tuo AndroidManifest.xml file per sovrascrivere le librerie problematiche:

<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. Crisi di esecuzione e gestione della memoria

Utilizza la scheda Prestazioni in Android Studio per monitorare la stabilità di esecuzione. Per gli issue di inizializzazione, gestisci le eccezioni con cura:

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

Per prevenire le perdite di memoria, assicurati che le risorse vengano rilasciate correttamente. Utilizza il Profilo della Memoria in Android Studio per tracciare l'uso della pila e identificare eventuali perdite.

Riepilogo

Per integrare i file AAR nei plugin Capacitor, avrai bisogno di configurare l'ambiente Android, posizionare i file AAR correttamente, configurare Gradle con precisione e testare accuratamente.

Fasi di Implementazione Chiave

Fase Requisiti Indicativi di Successo
Configurazione dello Sviluppo Android Studio 4.0+, Gradle 7.0+ La compilazione si completa senza errori
AAR Integration Posizione dei file corretta, dipendenze corrette Nessun conflitto di manifesto
Sviluppo di Plugin Struttura del plugin chiara, mapping dei metodi preciso I metodi eseguiscono come previsto
Test Modalità di debug attiva, gestione degli errori efficace Nessun crash al runtime

Una volta padroneggiati questi concetti base, potrai esplorare tecniche più avanzate.

Esegui i Passaggi Successivi

Per migliorare il tuo plugin, concentrati su queste aree:

  • Optimizzazione delle Prestazioni
    Utilizza il profiler di Android Studio per monitorare l'uso della memoria e assicurati che le risorse vengano pulite correttamente.

  • Preparazione della Distribuzione
    Documenta tutte le configurazioni AAR, genera API documentazione e testa la compatibilità con i livelli Android API 29-34.

  • Strategia di Manutenzione
    Automatizza i test, gestisci le versioni AAR con il controllo delle versioni, mantiene un changelog e attiva il reporting degli errori per affrontare le questioni di produzione.

Se hai l'intenzione di condividere il tuo plugin pubblicamente, assicurati di fornire una documentazione dettagliata sulle impostazioni AAR specifiche e su eventuali limitazioni del sistema. Ciò renderà più facile per gli altri sviluppatori adottare e utilizzare il tuo plugin in modo efficace.

Continua da Come utilizzare i file AAR nei plugin Capacitor

Se stai utilizzando Come utilizzare i file AAR nei plugin Capacitor per pianificare il lavoro dei plugin nativi, connettilo con Capgo Directory dei Plugin per il flusso di lavoro del prodotto nel Capgo Directory dei Plugin Capacitor Plugin da Capgo per i dettagli di implementazione in Capacitor Plugin da Capgo Aggiungere o Aggiornare i Plugin per i dettagli di implementazione in Aggiungere o Aggiornare i Plugin Sostituti dei Plugin Enterprise di Ionic per il flusso di lavoro del prodotto in Sostituti dei Plugin Enterprise di Ionic, e Capgo Costruzioni Native per il flusso di lavoro del prodotto in Capgo Costruzioni Native.

Aggiornamenti in tempo reale per le Capacitor app

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di aspettare giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Supporto umano da Martin

Inizia subito

Ultimi articoli dal nostro Blog

Capgo vi dà le migliori informazioni che avete bisogno per creare un'app mobile veramente professionale.