Zum Hauptinhalt springen

How Capacitor Plugins AAR Dateien zu verwenden

Erhalten Sie eine klare, schrittweise Anleitung, um AAR-Dateien in Capacitor-Plugins zu integrieren und Ihre Web-Anwendungen mit nativen Android-Funktionen zu erweitern.

Martin Donadieu

Martin Donadieu

Content Marketer

How Capacitor Plugins AAR Dateien zu verwenden

Möchten Sie Android-Funktionen in Ihrem Capacitor Anwendungsprogramm integrieren? Dieses Leitfaden erklärt, wie AAR-Dateien (Android Archive) in Capacitor-Plugins verwendet werden können, um native Android-Funktionen mit cross-plattformigen Web-Anwendungen zu kombinieren. Want to integrate Android features into your __CAPGO_KEEP_0__ app? This guide explains how to use AAR (Android Archive) files in __CAPGO_KEEP_0__ plugins to combine native Android functionality with cross-platform web apps.

Hauptpunkte:

  • Was sind AAR-Dateien? Vorkompilierte Android-Bibliotheken, die code, Ressourcen und native Dateien enthalten.
  • Worin liegt der Vorteil? AAR-Dateien ermöglichen die code-Wiederverwendung, vereinfachen die Wartung und schützen geheime Funktionen.
  • Welche Voraussetzungen müssen erfüllt sein? Werkzeuge wie Android Studio, Gradle, und Node.js, plus eine ordnungsgemäße Projektierung.
  • Wie integriere ich? Platzieren Sie AAR-Dateien in libskonfigurieren Sie Gradle und verbinden Sie sie mit Capacitor-Plugins.

Schnelle Schritte:

  1. Einrichten Sie Ihre Umgebung: Installieren Sie erforderliche Tools und konfigurieren Sie Android Studio.
  2. Organisieren Sie Ihr Projekt: Erstellen Sie eine klare Struktur für Ihr Capacitor-Plugin.
  3. Fügen Sie AAR-Dateien hinzu: Platzieren Sie sie in android/libs und aktualisieren Sie die Gradle-Abhängigkeiten.
  4. Erstellen Sie einen Plugin code Linken Sie die AAR-Funktionalität mit JavaScript mit Capacitor’s API.
  5. Sorgfältig testen: Verwenden Sie den Debugger von Android Studio, um eine glatte Integration sicherzustellen.

Durch das Befolgen dieser Anleitung können Sie AAR-Dateien problemlos in Ihren Capacitor-Plugins integrieren und so native Android-Funktionen für Ihre Web-Anwendungen freischalten.

Wie Sie eine Android-Bibliothek (AAR-Datei) in ein capacitor Plugin

capacitor

Entwicklungs-Setup-Anforderungen

Bevor Sie mit AAR-Dateien arbeiten, stellen Sie sicher, dass Ihr Entwicklungsumfeld ordnungsgemäß konfiguriert ist, um eventuelle Probleme zu vermeiden.

Erforderliche Software

Hier sind die erforderlichen Software, um mit AAR-Dateien in Capacitor-Plugins zu arbeiten:

Software Mindestversion Zweck
Android Studio 2022.1.1 oder höher Haupt-IDE für Android-Entwicklung
Java Development Kit 11 oder höher Erforderlich für Android-Entwicklung
Node.js 14.0 oder höher Für die Verwaltung von Capacitor und npm Paketen
Gradle 7.3 oder höher Androids Build-Tool
Git 2.30 oder höher Für Versionskontrolle und Paketverwaltung

Zusätzlich sollten folgende Komponenten in Ihrem SDK Manager enthalten sein:

  • Android SDK Plattform 33 (Android 13.0)
  • Android SDK Build-Tools 33.0.0
  • Android SDK Befehlszeilenwerkzeuge
  • Android-Emulator
  • Android SDK Plattform-Tools

Schritte zur Projekt-Einrichtung

1. Initialisiere deine Entwicklungsumgebung

Beginne damit, einen neuen Verzeichnis mit dieser Struktur zu erstellen:

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

2. Konfiguriere die Einstellungen von Android Studio

Starte Android Studio und passe die folgenden Einstellungen an:

  • Setze die Gradle JDK-Version auf 11 oder höher.
  • Aktiviere die automatische Herunterladen-Funktion für Android SDK-Komponenten.
  • Aktualisiere deine System-Umgebungsvariablen mit dem korrekten Pfad zu Android SDK.

3. Vorbereite die Struktur deiner Plugin

Aktualisieren Sie das android/build.gradle Datei mit diesen Einstellungen, um die Unterstützung für AAR-Dateien zu aktivieren:

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. Einrichten von Versionskontrolle

Initialisieren Sie Git in Ihrem Projektverzeichnis und erstellen Sie eine .gitignore Datei, um unnötige Dateien auszuschließen. Hier ist ein Beispiel: .gitignore:

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

Sobald diese Schritte abgeschlossen sind, sind Sie bereit, sich auf die Hinzufügung Ihrer AAR-Dateien zu konzentrieren.

Hinzufügen von AAR-Dateien zu Ihrem Plugin

AAR-Dateien

AAR-Dateien können aus drittpartei-SDKs, benutzerdefinierten Bibliotheken oder Maven-Abhängigkeiten stammen. Es ist eine gute Idee, ihre Quelle, Version und Zweck in einer README Datei in der libs Ordner zu dokumentieren.

Quelltyp Beschreibung Gute Praxis
Drittanbieter-SDKs Vorkompilierte Bibliotheken von Anbietern Dokumentieren Sie die Versionsdetails des Anbieters in einer README
Benutzerdefinierte Android-Bibliotheken Selbstentwickelte Android-Module Dokumentieren Sie den Build-Prozess
Maven-Abhängigkeiten Umgewandelt aus Remote-Repositories Speichern Sie lokal für Offline-Builds

Sobald Ihre AAR-Dateien bereit und dokumentiert sind, können Sie Ihre Plugin konfigurieren, um sie einzuschließen.

Einstellungen für Plugin-Dateien

Ordnen Sie Ihre Plugin-Dateien, um eine glatte Integration von AAR-Abhängigkeiten sicherzustellen. Hier ist ein Beispiel dafür, wie Ihre Plugin-Struktur aussehen könnte:

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

AAR-Datei-Platzierung

Um AAR-Funktionen zu aktivieren, legen Sie die Dateien in das android/libs Verzeichnis Ihres Plugins an, indem Sie diese Schritte befolgen:

  • Verwenden Sie ein klares und konsistentes Namensformat, wie z.B. libraryname-version.aar.
  • Verwalten Sie Versionen in einem versions.properties Datei. Zum Beispiel:
library1=1.2.3
library2=2.0.0
  • Fügen Sie eine dependencies.gradle Datei für andere Abhängigkeiten hinzu:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • Ordnen Sie vendor-spezifische Dateien in Unterordner für eine bessere Verwaltung an:
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

Halten Sie Konfigurationsdateien in vendor-spezifischen Unterordnern auf, um die Organisation aufrechtzuerhalten und Konflikte bei der Verarbeitung von mehreren AAR-Abhängigkeiten zu vermeiden.

Gradle Konfigurations-Schritte

Gradle-Build-Tool-Schnittstelle

build.gradle aktualisieren

Um AAR-Dateien in Ihr Capacitor-Plugin zu integrieren, müssen Sie Gradle entsprechend konfigurieren. Beginnen Sie damit, diese Repository-Einstellungen in android/build.gradle:

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

Dann fügen Sie die AAR-Abhängigkeiten in der dependencies Block ein:

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

Für eine bessere Versionsverwaltung erstellen Sie ein gradle.properties Datei in Ihrem Projektroot und definieren Sie Ihre Bibliotheksversionen:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

Wenn die AAR-Datei zusätzliche Abhängigkeiten enthält, deklarieren Sie sie in android/build.gradle wie folgt:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

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

Nachdem Sie diese Änderungen vorgenommen haben, synchronisieren Sie Ihr Projekt, um sie anzuwenden.

Gradle Sync ausführen

Öffnen Sie Ihr Projekt in Android Studio und warten Sie, bis Gradle automatisch synchronisiert. Wenn es nicht startet, klicken Sie auf den Button "Projekt mit Gradle-Dateien synchronisieren" in der Werkzeugleiste.

Nachdem Sie gesynchronisiert haben, überprüfen Sie Folgendes:

Check-Punkt Erwartetes Ergebnis Häufige Probleme
Build-Ausgabe Keine AAR-bezogenen Fehler Fehlende Abhängigkeiten
Bibliotheksaufschlüsselung AAR-Dateien werden korrekt verlinkt Falsche Pfadbezeichnungen
Version Konflikte Keine Versionsprobleme für Abhängigkeiten Inkompatible Versionen

Überprüfen Sie Ihre Konfiguration, wenn der Synchronisierungsversuch fehlschlägt. Zum Beispiel müssen diese Einstellungen vorliegen:

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

    lintOptions {
        abortOnError false
    }
}

Für große AAR-Dateien müssen Sie möglicherweise die Gradle-Memory-Allokation erhöhen in gradle.properties:

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

Nachdem der Synchronisierungsprozess erfolgreich abgeschlossen wurde, sollten Ihre AAR-Dateien vollständig integriert und für die Testphase bereit sein.

AAR-Funktionen mit Capacitor verbinden

Plugin-Klasse schreiben

Nachdem Ihre Gradle-Dateien synchronisiert wurden, ist es Zeit, Ihre AAR-Funktionalität zu verbinden, indem Sie die Plugin Klasse erweitern. Dieser Schritt verbindet JavaScript mit der 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());
    }
}

Initialisierung der AAR-Bibliothek

Komponente Zweck Implementierungsanmerkung
Kontext Android-Anwendungs-Kontext Verwendung getContext() aus der Plugin-Klasse
Konfiguration Bibliotheks-Einstellungen Optionen von der Plugin übergeben
Lebenszyklus Verwaltung des Plugin-Zustands Überschreiben load() und handleOnDestroy()

Erstellung von Plugin-Methode

Als Nächstes definieren Sie Methoden in Ihrem Plugin mithilfe der @PluginMethod Diese Methoden verwalten den Datenaustausch zwischen JavaScript und Java.

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

Für Aufgaben, die asynchron ausgeführt werden müssen:

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

Hier sind die häufigsten Typen, die zwischen JavaScript und Java umgewandelt werden:

JavaScript-Typ Java-Typ Umwandlungsmethode
Objekt JSObject call.getObject()
Array JS-Array call.getArray()
String String call.getString()
Number Integer/Doppeltes call.getInt()/call.getDouble()
Boolean Boolean call.getBoolean()

Für die Ressourcenaufteilung überschreiben Sie den handleOnDestroy Methode:

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

Mit diesen Methoden ist Ihr Native-Bridge bereit. Testen Sie Ihre Implementierung im Android Studio-Debugumgebung, um sicherzustellen, dass alles wie erwartet funktioniert.

Testen und Beheben von Problemen

Fehlernachverfolgung in Android Studio

Android Studio

Um Ihre AAR-Integration in Android Studio zu debuggen, aktivieren Sie zunächst den Debug-Modus in Ihrem Projekts build.gradle file:

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

Setzen Sie in Ihren Pluginmethoden Breakpoints, um den Datenfluss zu überwachen und potenzielle Probleme zu identifizieren:

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

Verwenden Sie das Debug-Panel in Android Studio, um wichtige Bereiche zu überwachen:

Fehlernachverfolgungs-Bereich Was zu überprüfen ist Häufige Probleme
Logcat AAR-Initialisierungs-Nachrichten Fehlende Berechtigungen oder falscher Kontext
Variablen Datentypen konvertieren Nulleingaben oder Typmismatches
Stack-Spuren Aufrufablauf der Methode Ungültige Methodeaufrufe oder Probleme mit Threads
Speicher Ressourcenverbrauch Speicherdurchlässe

Wenn die Fehlersuche nicht die Lösung bringt, folgen Sie den Schritten zur Fehlerbehebung in der nächsten Abschnitt.

Schritte zur Fehlerbehebung

When Sie alleine nicht ausreicht, verwenden Sie diese Schritte, um häufige Probleme anzugehen:

1. Abhängigkeitskonflikte

Überprüfen Sie nach Versionenkonflikten in Ihrem build.gradle Datei. Sie können spezifische Versionen zwingen, um Konflikte zu lösen:

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

2. Fehlende Native-Bibliotheken

Stellen Sie sicher, dass die AAR die erforderlichen .so Dateien in den entsprechenden Verzeichnissen enthält, wie z.B.:

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

3. Manifest-Merger-Probleme

Wenn Sie Manifest-Konflikte auftreten, fügen Sie die folgenden in Ihre AndroidManifest.xml Datei ein, um problematische Bibliotheken zu überschreiben:

<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. Laufzeitcrashes und Speichermanagement

Verwenden Sie die Leistungsoberfläche in Android Studio, um die Laufzeitstabilität zu überwachen. Für Initialisierungsprobleme handeln Sie Ausnahmen sorgfältig:

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

Um Speicherlecks zu vermeiden, stellen Sie sicher, dass Ressourcen ordnungsgemäß freigegeben werden. Verwenden Sie den Memory Profiler in Android Studio, um den Heap-Verbrauch zu überwachen und mögliche Lecks zu identifizieren.

Zusammenfassung

Um AAR-Dateien in Capacitor-Plugins zu integrieren, müssen Sie die Android-Umgebung einrichten, AAR-Dateien korrekt platzieren, Gradle genau konfigurieren und gründlich testen.

Schlüsselimplementierungsphasen

Phase Anforderungen Erfolgsindikatoren
Entwicklungssetup Android Studio 4.0+, Gradle 7.0+ Die Erstellung schlägt ohne Fehler fehl
AAR-Integration Ordnungsgemäße Dateilayout, korrekte Abhängigkeiten Keine Konflikte im Manifest
Plugin-Entwicklung Klare Struktur des Plugins, genaue Methodezuordnung Methode ausführen wie erwartet
Testen Debug-Modus aktiv, effektives Fehlerhandling Keine Laufzeitcrashes

Wenn Sie diese Grundlagen beherrschen, können Sie sich mit fortgeschrittenen Techniken beschäftigen.

Nächste Schritte

Um Ihr Plugin zu verbessern, konzentrieren Sie sich auf diese Bereiche:

  • Leistungsoptimierung
    Verwenden Sie Android Studios Profiler, um die Speicherverwendung zu überwachen und sicherzustellen, dass Ressourcen ordnungsgemäß aufgeräumt werden.

  • Distribution Vorbereitung
    Alle AAR-Konfigurationen dokumentieren, API-Dokumentation erstellen und die Kompatibilität mit Android API-Ebenen 29–34 testen.

  • Wartungsstrategie
    Automatisierte Tests durchführen, AAR-Versionen mit der Versionskontrolle verwalten, einen Versionsverlauf führen und Fehlerberichte einrichten, um Produktionsprobleme anzugehen.

Wenn Sie beabsichtigen, Ihre Erweiterung öffentlich zu teilen, stellen Sie sicher, dass Sie detaillierte Dokumentationen zu AAR-spezifischen Einstellungen und etwaigen Plattformenbeschränkungen bereitstellen. Dies erleichtert es anderen Entwicklern, Ihre Erweiterung effektiv zu adoptieren und zu verwenden.

Fortsetzen Sie mit 'AAR-Dateien in Capacitor-Erweiterungen verwenden'

Wenn Sie 'AAR-Dateien in __CAPGO_KEEP_0__-Erweiterungen verwenden' verwenden AAR-Dateien in Capacitor-Erweiterungen verwenden um native Plugin-Arbeit zu planen, verbinden Sie es mit Capgo-Erweiterungsverzeichnis das Produktworkflow in Capgo-Erweiterungsverzeichnis, Capacitor-Erweiterungen von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren, Alternativen zu Ionic Enterprise Plugins für den Produktworkflow in Alternativen zu Ionic Enterprise Plugins, und Capgo Native Builds für den Produktworkflow in Capgo Native Builds.

Live-Updates für Capacitor-Anwendungen

Wenn ein Web-Schicht-Bug live ist, versenden Sie die Reparatur über Capgo anstatt Tage für die Genehmigung des App-Store zu warten. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Los geht's jetzt

Neueste aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um ein wirklich professionelles mobiles App zu erstellen.