Diferencias, Empaquetado y Uso de Bibliotecas de Terceros en Android: JAR, AAR y SO

En el desarrollo de Android, es común integrar funcionalidades a través de bibliotecas de terceros. Las más frecuentes son los formatos .jar, .aar y las bibliotecas nativas .so.

  1. Archivos JAR

Un archivo JAR (Java Archive) es un formato de empaquetado de Java que contiene principalmente archivos .class y metadatos. No incluye recursos como imágenes u otros archivos del directorio res.

Las ventajas de los JAR son:

  • Seguridad mejorada.
  • Tiempos de descarga reducidos.
  • Soporte para extensiones de plataforma.
  • Sellado de paquetes (Package Sealing).
  • Control de versiones de paquetes.
  • Portabilidad.

Si necesitas incluir recursos gráficos en un JAR, puedes colocarlos dentro de la carpeta assets del proyecto antes de generar el JAR. Sin embargo, debes asegurarte de que los nombres de los archivos en la carpeta assets del JAR no entren en conflicto con los de la carpeta assets del proyecto que lo consume.

Generación de un archivo JAR

Existen múltiples guías en línea detalladas sobre cómo generar archivos JAR. Se recomienda consultar recursos específicos para obtener instrucciones paso a paso.

Integración de un archivo JAR

Una vez generado el JAR, colócalo en el directorio libs de tu módulo (por ejemplo, app/libs) en la vista de proyecto.

Método 1: Añadir dependencia en build.gradle (módulo)


dependencies {
    implementation files('nombre_de_tu_libreria.jar')
}

Después de añadir esta línea, sincroniza tu proyecto.

Método 2: Añadir como biblioteca

Tras copiar el archivo JAR a la carpeta libs, haz clic derecho sobre él y selecciona "Add As Library". Se abrirá un diálogo para que elijas el módulo donde deseas utilizar la biblioteca.

  1. Archivos AAR

Un archivo AAR (Android Archive) es el formato de empaquetado binario para bibliotecas de Android. Incluye todos los recursos necesarios, tanto el código compilado (classes.jar) como los archivos del directorio res.

Al descomprimir un archivo AAR (cambiando su extensión a .zip y luego extrayéndolo), encontrarás, entre otros, los siguientes componentes:

  • AndroidManifest.xml
  • classes.jar (o archivos .class directamente)
  • Directorio res
  • R.txt

Generación de un archivo AAR

La generación de archivos AAR se documenta ampliamente en recursos en línea. Se sugiere buscar guías específicas para obtener detalles.

Integración de un archivo AAR

Coloca el archivo AAR en el directorio libs de tu módulo.

A continuación, configura el archivo build.gradle del módulo que consumirá la biblioteca:


repositories {
    flatDir {
        dirs 'libs'
    }
}

Finalmente, añade la dependencia en la sección dependencies:


dependencies {
    // 'nombre' debe coincidir con el nombre del archivo AAR sin la extensión
    compile(name: 'nombre_de_tu_libreria', ext: 'aar')
}
  1. Bibliotecas SO (.so)

Los archivos .so (Shared Object) son bibliotecas compiladas para arquitecturas nativas, comúnmente escritas en C o C++. Contienen código que se ejecuta directamente en el procesador del dsipositivo.

Generación de bibliotecas SO

Generalmente, no es necesario "empaquetar" manualmente los archivos .so. Si utilizas herramientas como CMake para gestionar tu código nativo, la compilación del proyecto (Build > Make module) generará automáticamente una carpeta jniLibs en tu directorio de salida, conteniendo los archivos .so para las arquitecturas especificadas.

Uso de bibliotecas SO

Coloca los archivos .so, organizados por arquitectura de CPU (armeabi-v7a, arm64-v8a, x86, etc.), dentro del directorio libs de tu módulo (por ejemplo, app/libs).

Configura el archivo build.gradle de tu módulo para que Android Studio reconozca la ubicación de estas bibliotecas nativas:


android {
    // ... otras configuraciones
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

¿Cuándo elegir JAR vs. AAR?

Si tu biblioteca es un conjunto de clases puramente Java sin recursos, un archivo .jar es suficiente. Sin embargo, si tu biblioteca incluye elementos de interfaz de usuario, layouts personalizados, Drawables, fuentes u otros recursos del directorio res, debes utilizar el formato .aar.

Etiquetas: Android JAR aar so bibliotecas

Publicado el 6-22 00:19