Proyecto de biblioteca de Android como archivo jar para distribución, como Google Analytics

he vistoesta Pregunta, y tengo más dudas con respecto a la creación de un archivo jar que pueda distribuir y se pueda usar en cualquier aplicación de Android.

Cual es mi requerimiento

Como dije, quiero construir y distribuir una biblioteca de código cerrado. No quiero que el código fuente sea visible.En esa biblioteca no quiero usar ningún activo, diseño, recursos, etc. Pero quiero usar algunos códigos específicos de Android, comoObtención de la identificación del dispositivo Android.

La respuesta más popular en la pregunta de SO enlazada arriba dice acree un proyecto java regular e importe android.jar en él. Intenté hacer eso, pero no sé cómo agregar android.jar a ningún proyecto java. Me gustaría obtener una aclaración sobre eso también.

Además, me gustaría saber si existen otros métodos que usen el propio Android sdk (sin usar el proyecto Java) para crear un archivo jar de biblioteca de código cerrado.

Creo que lo que quiero es posible, ya queGoogle Analytics para aplicaciones nativas de Android Parece que lo ha hecho. Estoy seguro de que en el archivo .jar que distribuyen están utilizando códigos específicos de Android, ya que no parece haber otra forma de obtener la información del dispositivo para mostrar en el visor de análisis.

EDITAR: ¿PUEDE ALGUIEN CLARIFICAR ESTO?

Creo que he hecho algunos progresos. Esto es lo que he hecho.

Creó un proyecto de Android normal (no el proyecto de biblioteca, la marca de verificación "es Biblioteca" no está marcada)

En el proyecto he codificado mi lógica. Utiliza algunas clases específicas de Android comoSharedPreference, UUID, PackageManager. Pero nada relacionado con los activos, diseños tampoco se extiende la claseActivity. Sólo una clase de java extendiendojava.lang.object

Exportado el proyecto usandoProyecto-> clic derecho-> exportar-> Java-> archivo JAR. En la siguiente pantalla desactivé la casilla de verificación cerca deAndroidManifest.xml. Establezca un directorio de destino para exportar y haga clic en las siguientes tres veces manteniendo la configuración predeterminada. Luego hice clic en Finalizar, y obtuve una hermosalibMyLibraryName.jar en mi escritorio

Entonces creé otro proyecto de Android, agregué esto.libMyLibraryName.jar a nuevo proyecto usandoproyecto-> clic derecho-> propiedades-> ruta de compilación java -> bibliotecas-> agregar jar externo.

Y traté de usar mi clase en la biblioteca, en mi nuevo proyecto

MyLibraryClass objClass = new MyLibraryClass(this);

Y pude compilar y ejecutar con éxito. Incluso envié la biblioteca a uno de mis compañeros de trabajo que pudo usar la biblioteca en su computadora (solo asegurándome de que el proyecto de la biblioteca en mi área de trabajo no influya en el proyecto que lo utiliza).

Ahora tengo 2 preguntas.

1) Mi primera pregunta es: ¿qué significaron con el término "biblioteca verdadera" en la siguiente documentación? ¿Es cualquier proyecto java que no sea Android que pueda exportarse a un archivo JAR?

Sin embargo, unproyecto de biblioteca se diferencia de un proyecto de aplicación de Android estándar en que no puede compilarlo directamente en su propio .apk y ejecutarlo en un dispositivo Android.Del mismo modo, no puede exportar el proyecto de biblioteca a un archivo JAR independiente., como harías para unverdadera biblioteca. En su lugar, debe compilar la biblioteca de manera indirecta, haciendo referencia a la biblioteca en la aplicación dependiente y compilando esa aplicación.

Bueno esta parte es tomada dedocumentación bajo el título "Proyectos de la biblioteca".

2) Mi segunda pregunta es, ¿hay algún problema con la forma en que he creado el archivo JAR? ¿Alguna posible trampa que pueda devorarme después? Me gustaría asegurarme de que no estoy haciendo algo terriblemente mal, antes de usarlo en mis proyectos importantes.

Podría agregar que no probé el método de crear un proyecto JAVA e importar.android.jar. Estoy listo para probar eso, si lo que he hecho actualmente es incorrecto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta