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.
- 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.
- 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.xmlclasses.jar(o archivos.classdirectamente)- 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')
}
- 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.