Saltar al contenido principal

Cómo utilizar archivos AAR en plugins de Capacitor

Aprende a integrar archivos AAR en plugins de Capacitor para mejorar tus aplicaciones web con características nativas de Android a través de una guía paso a paso clara.

Martin Donadieu

Martin Donadieu

Gerente de Contenido

Cómo utilizar archivos AAR en plugins de Capacitor

Quieres integrar características de Android en tu Capacitor ¿app? Esta guía explica cómo utilizar archivos AAR (Android Archive) en plugins Capacitor para combinar la funcionalidad nativa de Android con aplicaciones web de múltiples plataformas.

Toma de notas clave:

  • ¿Qué son los archivos AAR? Bibliotecas de Android preempaquetadas que contienen code, recursos y archivos nativos.
  • ¿Por qué utilizarlos? Los archivos AAR permiten el reutilización de code, simplifican la mantenimiento y protegen características propietarias.
  • ¿Qué se requiere? Herramientas como Android Studio, Gradle, y Node.js, más una configuración de proyecto adecuada.
  • ¿Cómo integrar? Coloque archivos AAR en libs, configure Gradle y conecte a los módulos Capacitor.

Pasos rápidos:

  1. Configuración del entorno: Instale las herramientas necesarias y configure Android Studio.
  2. Organice su proyecto: Crear una estructura clara para su Capacitor plugin.
  3. Agregar archivos AAR: Colóquelos en android/libs y actualice las dependencias de Gradle.
  4. Escriba el plugin code: Vincule la funcionalidad de AAR a JavaScript con Capacitor’s API.
  5. Pruebe exhaustivamente: Utilice el depurador de Android Studio para asegurarse de una integración suave.

Siguiendo esta guía, puede incorporar archivos AAR de manera fluida en sus plugins Capacitor, desbloqueando capacidades nativas de Android para sus aplicaciones web.

Cómo incorporar una biblioteca de Android (archivo AAR) en un capacitor plugin

capacitor

Requisitos de configuración del entorno de desarrollo

Antes de trabajar con archivos AAR, asegúrese de que su entorno de desarrollo esté correctamente configurado para evitar cualquier problema.

Software requerido

Aquí está el software que necesitará para trabajar con archivos AAR en plugins Capacitor:

Software Versión mínima Propósito
Android Studio 2022.1.1 o superior El IDE principal para el desarrollo de Android
Kit de desarrollo de Java 11 o superior Requerido para el desarrollo de Android
Node.js 14.0 o superior Para administrar Capacitor y npm paquetes
Gradle 7.3 o superior Herramienta de construcción de Android
Git 2.30 o superior For el control de versiones y la gestión de paquetes

Además, asegúrese de que los siguientes componentes estén incluidos en su SDK Manager:

  • Plataforma de Android SDK 33 (Android 13.0)
  • Herramientas de compilación de Android SDK 33.0.0
  • Herramientas de línea de comandos de Android SDK
  • Emulador de Android
  • Herramientas de plataforma de Android SDK

Pasos de configuración del proyecto

1. Pasos para configurar su entorno de desarrollo

Comience creando un nuevo directorio con esta estructura:

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

2. Configuración de ajustes de Android Studio

Inicie Android Studio y ajuste los siguientes ajustes:

  • Establezca la JDK de Gradle en versión 11 o superior.
  • Habilite la característica de descarga automática para componentes Android SDK.
  • Actualice las variables de entorno de su sistema con la ruta correcta de Android SDK.

3. Preparar la estructura de su plugin

Actualice el archivo con estas configuraciones para incluir el soporte de archivos AAR: android/build.gradle Configuración de Control de Versión

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. Inicialice Git en su directorio de proyecto y cree un archivo para excluir archivos innecesarios. Aquí hay un ejemplo:

Una vez que haya completado estos pasos, estará listo para pasar a agregar sus archivos AAR. .gitignore Agregar archivos AAR a su plugin .gitignore:

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

Obtener archivos AAR

Agregar archivos AAR a su plugin

Obtener archivos AAR

AAR los archivos pueden venir de SDKs de terceros, bibliotecas personalizadas o dependencias de Maven. Es una buena idea documentar su origen, versión y propósito en un README ubicado en el libs Tipo de fuente

Descripción Buena práctica SDKs de terceros
Librerías precompiladas de proveedores Documentar detalles de versión del proveedor en un README Bibliotecas Android personalizadas
Módulos Android auto-desarrollados Documentar el proceso de compilación Documentar el proceso de compilación
Módulos de Maven Convertidos desde repositorios remotos Almacén local para compilaciones en línea

Una vez que sus archivos AAR estén listos y documentados, puede configurar su plugin para incluirlos.

Configuración de Archivos de Plugin

Organice sus archivos de plugin para garantizar una integración suave de dependencias AAR. Aquí hay un ejemplo de cómo podría verse la estructura de su plugin:

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

Ubicación de Archivos AAR

Para habilitar la funcionalidad AAR, coloque los archivos en el android/libs directorios de su plugin siguiendo estos pasos:

  • Utilice un formato de nombrado claro y consistente, como libraryname-version.aar.
  • Gestione versiones en un versions.properties archivo. Por ejemplo:
library1=1.2.3
library2=2.0.0
  • Agregar un archivo dependencies.gradle para otras dependencias:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • Organizar archivos específicos de proveedor en subdirectorios para una mejor gestión:
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

Al mantener los archivos de configuración en subdirectorios específicos de proveedor, se mantiene la organización y se evitan conflictos de compilación al trabajar con varias dependencias AAR.

Gradle Pasos de configuración

Interface de herramienta de compilación de Gradle

Actualizar build.gradle

Para integrar archivos AAR en su plugin Capacitor, necesita configurar Gradle adecuadamente. Comience agregando estos ajustes de repositorio a android/build.gradle:

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

Entonces, incluya las dependencias AAR en el dependencies bloque:

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

Para una mejor gestión de versiones, cree un gradle.properties archivo en la raíz de tu proyecto y define las versiones de tu biblioteca:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

Si el archivo AAR viene con dependencias adicionales, decláralas en android/build.gradle de la siguiente manera:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

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

Una vez que hayas realizado estos cambios, sincroniza tu proyecto para aplicarlos.

Ejecutando Gradle Sync

Abre tu proyecto en Android Studio y espera a que Gradle se sincronice automáticamente. Si no comienza, haz clic en el botón "Sincronizar proyecto con archivos de Gradle" en la barra de herramientas.

Después de sincronizar, verifica lo siguiente:

Punto de Verificación Resultado Esperado Problemas Comunes
Salida de Compilación No hay errores relacionados con AAR Dependencias faltantes
Resolución de bibliotecas Archivos AAR vinculados correctamente Referencias de rutas incorrectas
Conflictos de versión No hay problemas de versión de dependencias Versiones incompatibles

Si la sincronización falla, comprueba tu configuración. Por ejemplo, asegúrate de que estos ajustes estén configurados:

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

    lintOptions {
        abortOnError false
    }
}

Para archivos AAR grandes, es posible que debas aumentar la asignación de memoria de Gradle en gradle.properties:

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

Una vez que la sincronización se complete con éxito, tus archivos AAR deberían estar completamente integrados y listos para la prueba.

Conectar características de AAR a Capacitor

Escribir la clase del plugin

Una vez que se sincronizan los archivos de Gradle, es hora de conectar la funcionalidad de AAR mediante la extensión de la clase Plugin Este paso vincula JavaScript con el Android nativo 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());
    }
}

Aquí está lo que necesitas para inicializar la biblioteca de AAR:

Componente Propósito contexto: Página/área: Sitio web de marketing de Capgo. Rol: Etiqueta de IU o elemento de navegación corto. Clave de mensaje `subprocessors_table_purpose` (Propósito de la tabla de subprocesos).
Nota de implementación Contexto Contexto de la aplicación Android getContext() Usar desde la clase Plugin
Configuración Ajustes de la biblioteca Enviar opciones desde el plugin
Ciclo de vida Gestión del estado del plugin Sobreescribir load() y handleOnDestroy()

Crear métodos de plugin

Definir luego métodos en su plugin utilizando la @PluginMethod anotación. Estos métodos manejan el intercambio de datos entre JavaScript y 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);
    }
}

Para tareas que necesitan ejecutarse de manera asíncrona:

@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 de JavaScript

Tipo de Java Tipo de Java Método de Conversión
Objeto JSObject call.getObject()
Arreglo JSArray call.getArray()
Cadena Cadena call.getString()
Número Entero/Doble call.getInt()/call.getDouble()
Booleano Booleano call.getBoolean()

For el reciclaje de recursos, sobreescriba el handleOnDestroy método:

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

Con estos métodos en su lugar, su puente nativo está listo. Pruebe su implementación en el entorno de depuración de Android Studio para asegurarse de que todo funciona como se espera.

Pruebas y solución de problemas de problemas

Depuración en Android Studio

Android Studio

Para depurar su integración de AAR en Android Studio, comience habilitando el modo de depuración en el archivo de su proyecto: build.gradle Agregar puntos de interrupción en sus métodos de plugin para seguir el flujo de datos y identificar posibles problemas:

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

Utilice la pestaña de depuración de Android Studio para monitorear áreas clave:

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

Área de depuración

Testing and Fixing Issues ¿Qué verificar Problemas comunes
Logcat Mensajes de inicialización de AAR Permisos faltantes o contexto incorrecto
Variables Conversión de tipos de datos Valores nulos o coincidencias de tipo
Pila de llamadas Flujo de ejecución de métodos Llamadas de método inválidas o problemas de hilos
Memoria Uso de recursos Fugas de memoria

Si la depuración no resuelve el problema, sigue los pasos de depuración en la sección siguiente.

Pasos de depuración

Cuando la depuración sola no es suficiente, utiliza estos pasos para abordar problemas comunes:

1. Conflictos de dependencias

Verifica conflictos de versiones en tu build.gradle archivo. Puedes forzar versiones específicas para resolver conflictos:

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

2. Bibliotecas nativas faltantes

Asegúrate de que el AAR incluya los archivos requeridos .so en los directorios adecuados, como:

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

3. Problemas con la fusión del manifiesto

If you encounter conflicts in the manifest, incluye los siguientes en tu archivo para superar bibliotecas problemáticas: AndroidManifest.xml Incluye los siguientes en tu archivo para superar bibliotecas problemáticas:

<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. Rendimiento y Gestión de Memoria

Utiliza la pestaña de Rendimiento en Android Studio para monitorear la estabilidad en tiempo de ejecución. Para problemas de inicialización, maneja las excepciones con cuidado:

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

Para evitar fugas de memoria, asegúrate de que los recursos se liberan correctamente. Utiliza el Profiler de Memoria en Android Studio para rastrear el uso de la pila y identificar cualquier fuga.

Resumen

Para integrar archivos AAR en plugins de Capacitor, necesitarás configurar el entorno de Android, colocar archivos AAR correctamente, configurar Gradle con precisión y probar exhaustivamente.

Fases de Implementación Clave

Fase Requisitos Indicadores de Éxito
Configuración de Desarrollo Android Studio 4.0+, Gradle 7.0+ La compilación se completa sin errores
Integración de AAR Colocación de archivos correcta, dependencias precisas No conflictos de manifiesto
Desarrollo de plugins Estructura de plugin clara, mapeo de métodos preciso Los métodos se ejecutan como se espera
Pruebas Modo de depuración activo, manejo de errores efectivo No se producen errores de tiempo de ejecución

Una vez que hayas dominado estos conceptos básicos, puedes explorar técnicas más avanzadas

Próximos Pasos

Para mejorar tu plugin, enfócate en estas áreas:

  • Optimización de Rendimiento
    Utiliza el perfilador de Android Studio para monitorear el uso de memoria y asegurarte de que los recursos se limpien correctamente.

  • Preparación de Distribución
    Documenta todas las configuraciones de AAR, genera API documentación y prueba la compatibilidad con los niveles de Android API 29–34.

  • Estrategia de Mantenimiento
    Automatiza las pruebas, gestiona las versiones de AAR con control de versiones, mantiene un registro de cambios y configura el informe de errores para abordar problemas de producción.

Si planeas compartir tu plugin públicamente, asegúrate de proporcionar documentación detallada sobre las configuraciones específicas de AAR y cualquier limitación de plataforma. Esto facilitará a otros desarrolladores adoptar y utilizar tu plugin de manera efectiva.

Sigue adelante desde Cómo utilizar archivos AAR en Capacitor Plugins

Si estás utilizando Cómo utilizar archivos AAR en Capacitor Plugins para planificar el trabajo de plugins nativos, conecte con Capgo Carpeta de Plugins para el flujo de trabajo del producto en Capgo Carpeta de Plugins, Capacitor Plugins por Capgo para el detalle de implementación en Capacitor Plugins por Capgo, Agregar o Actualizar Plugins para el detalle de implementación en Agregar o Actualizar Plugins, Alternativas de Plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas de Plugins de Ionic Enterprise, y Capgo Compilaciones Nativas para el flujo de trabajo del producto en Capgo Compilaciones Nativas.

Actualizaciones en vivo para Capacitor apps

Cuando un error de capa web está en vivo, envíe la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda de aplicaciones. Los usuarios obtienen la actualización en segundo plano mientras que los cambios nativos siguen en el camino de revisión normal.

soporte humano de Martin

Inicia Ahora

Últimas noticias de nuestro Blog

Capgo te da las mejores perspectivas que necesitas para crear una aplicación móvil verdaderamente profesional.