studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android custom-view

para - manual de programacion android pdf



Android: ¿es posible crear una biblioteca personalizada para usar en varias aplicaciones? (4)

¿Es posible crear una biblioteca personalizada en Android (con sus propios recursos de diseño) para usar en varias aplicaciones de Android?

No. Los JAR no pueden tener recursos. Puede compartir el código de esta manera, pero los recursos tienen que residir en las aplicaciones que reutilizan los JAR.

Incluso hacer referencia a estilos simples del archivo android.jar como android.attr.listSeparatorTextViewStyle no funcionó.

Asegúrese de que está vinculando su JAR contra android.jar. Puedes ver muchos ejemplos de esto en los componentes de CWAC en mi página de github .

¿Es posible crear una biblioteca personalizada en Android (con sus propios recursos de diseño) para usar en varias aplicaciones de Android?

  • Creé un archivo regular * .jar, pero cuando intenté crear / personalizar mis vistas de forma dinámica, la mayoría de las propiedades no funcionan. Incluso hacer referencia a estilos simples del archivo android.jar como android.attr.listSeparatorTextViewStyle no funcionó.

  • Creé un proyecto de Android sin ninguna actividad, tenía sus propios archivos de recursos y luego hice referencia a este proyecto de otro proyecto de Android para usar en su ruta de compilación. Todo parece funcionar bien, pero el emulador sigue fallando (sin un mensaje de error significativo en el LogCat ) cuando intento ejecutar el proyecto.

¿Me estoy perdiendo de algo?


¿Esto sigue siendo cierto con R21? Soy capaz de exportar un proyecto de biblioteca a un archivo jar y ser utilizado con éxito en otros proyectos de clientes, tanto en código como en acceso a archivos de activos.

sin embargo, http://developer.android.com/tools/projects/index.html todavía tiene la siguiente declaración que parece que ya no es cierta:

No puede exportar un proyecto de biblioteca a un archivo JAR. Una biblioteca no se puede distribuir como un archivo binario (como un archivo JAR). Esto se agregará en una versión futura de las herramientas del SDK.


Puede ser tarde para responder pero encontré esto que es interesante. Configuración de un proyecto de biblioteca

Un proyecto de biblioteca de Android es un proyecto de desarrollo que contiene recursos y código fuente de Android compartido. Otros proyectos de aplicaciones de Android pueden hacer referencia al proyecto de la biblioteca y, en el momento de la compilación, incluir sus fuentes compiladas en sus archivos .apk. Múltiples proyectos de aplicación pueden hacer referencia al mismo proyecto de biblioteca y cualquier proyecto de aplicación individual puede hacer referencia a múltiples proyectos de biblioteca.

Si tiene el código fuente y los recursos que son comunes a múltiples proyectos de aplicaciones, puede moverlos a un proyecto de biblioteca para que sea más fácil de mantener entre aplicaciones y versiones. Aquí hay algunos escenarios comunes en los que podría hacer uso de proyectos de biblioteca:


Bueno, creo que hay una manera de hacerlo (aunque yo no lo intenté), pero requiere que los usuarios de su biblioteca tengan que construir sus APK manualmente a través de aapt .

El problema es este: el JAR que está exportando contiene el archivo de clase R que contiene los ID de recursos de su biblioteca. Por lo tanto, cualquier aplicación puede acceder a estas ID simplemente vinculando su JAR. Sin embargo, eso no es suficiente, porque de forma predeterminada, solo los recursos en la carpeta res / app de la aplicación se incluyen con la APK. Por lo tanto, debe crear el APK usted mismo utilizando aapt, indicándole que también incluya cualquier recurso de su biblioteca. Consulte la ayuda de la herramienta aapt para obtener más información.

Dado que esto implica que los usuarios de su biblioteca tienen que introducir un proceso de compilación manual (o al menos modificarlo), se obtiene una mala experiencia.