Cómo crear una biblioteca compartida en Android

Tengo una biblioteca, digamos LIB, que expone las muy pocas API y clases para su uso por los desarrolladores de aplicaciones.

Si hay más de una aplicación que utiliza LIB en el teléfono, sólo quiero que se cree y se ejecute una instancia de LIB. Es algo similar a lo que los servicios de plataforma Android como LocationManager, SensorManager, PackageManager, etc.

En concreto, hay dos problemas que deben abordarse:

  1. ¿Cómo asegurarse de que sólo hay una instancia de LIB?
  2. Cómo implementar LIB (separar apk / empaquetado con cada aplicación que lo utilice, pero sólo uno de ellos crea la instancia de biblioteca en cualquier momento), etc.
  3. ¿Hay alguna otra forma (aparte de servicio / AIDL) para asegurarse de que sólo una instancia de LIB se ejecuta independientemente del número de aplicaciones que lo utilizan.

2 Solutions collect form web for “Cómo crear una biblioteca compartida en Android”

Bueno, después de pasar tiempo en esto, aquí las respuestas a mis preguntas: –

P. ¿Cómo asegurarse de que sólo hay una instancia de LIB? – Sólo mediante la exposición de la funcionalidad LIB a través de un servicio.

P. Cómo implementar LIB (apk separado / incluido con cada aplicación que lo usa, pero sólo uno de ellos creando la instancia de la biblioteca en cualquier punto del tiempo), etc. –

Para el servicio, habría un apk separado (o probablemente incluido con una de la aplicación cliente de servicio),

P. ¿Hay alguna otra forma (que no sea servicio / AIDL) para asegurarse de que sólo una instancia de LIB se ejecuta independientemente del número de aplicaciones que lo utilizan.

Sí, eso sería como LIB se incluye con cada aplicación. Pero eso necesitaría un protocolo de comunicación fuerte entre las bibliotecas que utilizan intentos, de modo que uno de ellos actúe como maestro, y comparta los datos con las otras bibliotecas. Efectivamente, el LIB empacado dentro de un apk inicia su motor, sólo si no hay ninguna otra instancia en ejecución. Una forma de lograr esto es usar transmisiones y mantener la seguridad, los permisos pueden estar asociados con las acciones de difusión involucradas.

Con el proyecto de biblioteca, tiene una inclusión estática de las clases y recursos del proyecto de biblioteca. Nada funcionará que no tiene que ser.

Eso puede aumentar el tamaño de tu aplicación, pero técnicas como ProGuard pueden eliminar las clases no utilizadas de tu .apk final.

Si quieres que tu biblioteca funcione independientemente de otras aplicaciones, entonces es un servicio y debes considerar cuál debería ser el ciclo de vida (por ejemplo, iniciado por la aplicación, iniciado al arrancar, etc.).

Si su lib contiene actividades para ejecutar, el sistema operativo Android ya se encarga de esto – la otra aplicación sólo crea una intención y llama a su actividad. Así funciona Android: las aplicaciones pueden compartir datos y flujos de trabajo entre sí a la perfección utilizando intentos.

Si hay servicios, es lo mismo: la aplicación llamante interactúa con un servicio en ejecución o activa un servicio para iniciarlo.

Los proyectos de biblioteca manejan muchos problemas para la mayoría de los desarrolladores, pero si tiene un paquete de código compartido realmente grande, desee instalarlo como una aplicación independiente.

Por ejemplo, Google Maps es una aplicación independiente, pero otras aplicaciones pueden activar la intención de cargar una actividad desde esa aplicación. Lo mismo con la mensajería y otras actividades que pueden ser manejadas por diferentes aplicaciones.

  • ¿Estoy invalidando toda la pantalla en cada llamada?
  • Java.lang.OutOfMemoryError en android.graphics.BitmapFactory.nativeDecodeAsset (Método nativo)
  • Gestionar los cambios de suscripción en la facturación en Android de la aplicación
  • ¿Cuánto esfuerzo debo poner en mi seguridad para Android en la facturación de aplicaciones?
  • Servicio de accesibilidad de Android en pantalla
  • ¿Cómo funciona la autenticación de WhatsApp?
  • ¿Cómo obtener cordinates de pantalla correspondientes a toda la pantalla, y no la vista tocado?
  • Android - calcular el ángulo del arco
  • Coordenadas de recorte de Android
  • Facturación en la aplicación de Android: Security.java dice "Error en la verificación de la firma"
  • ¿Se puede compartir de forma segura el ID de Android View en varias actividades?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.