2011-06-13 9 views
8

Me di cuenta de que cuando convierto un proyecto de aplicación de Android existente a un proyecto de biblioteca de Android by checking the "is Library" checkbox, nada cambia en el código fuente del proyecto o en los archivos XML.¿Qué hace la casilla de verificación "is Library" para "Under the Cover"?

Entonces, ¿qué sucede realmente cuando la casilla de verificación "es Biblioteca" está marcada? ¿Qué cambia internamente, en el paquete y/o archivos de proyecto? ¿Dónde puedo aprender más sobre esto?

para explicar mejor mi pregunta:

  1. Lo que me interesa saber (sobre todo para solucionar problemas) es lo que diferencia a un paquete de aplicación de un paquete Biblioteca "bajo la cobertura"?
  2. ¿Es el hecho de que un proyecto es "Proyecto de biblioteca" marcado en algún lugar? Si es así, ¿de dónde marcarlo (obviamente no en los archivos de origen y ni siquiera en la resolución de XML archivos)

Respuesta

6

Desde el Managing Projects from the Command Line page:

El comando create-lib proyecto crea una estructura de proyecto estándar que incluye propiedad preestablecido que indica que el sistema de construcción que el proyecto es una biblioteca. Esto se logra mediante la adición de esta línea al archivo default.properties del proyecto:

android.library=true

En otras palabras, es una propiedad que es utilizada por el sistema de construcción y no por el sistema operativo.

ACTUALIZACIÓN: Estoy en mi iPhone, así que no voy a escribir una paráfrasis completa, pero aquí hay un artículo de blog bastante bueno sobre las diferencias entre Java JAR y Android Library Project, incluyendo cómo las herramientas dex añaden recursos y código de Dex a la apk:

http://devmaze.wordpress.com/2011/05/22/android-application-android-libraries-and-jar-libraries/

+0

@Doug Stephen +1 ya para responder la pregunta n. ° 2. ¿Sabes también qué diferencia un paquete de la Aplicación de un paquete de la Biblioteca "debajo de la cubierta"? – an00b

+0

@ an00b revise la actualización de mi respuesta. Espero eso ayude. –

+0

@Doug Stephen +50. :) ¡Gracias! – an00b

5

Desde el devsite: http://developer.android.com/guide/developing/projects/projects-eclipse.html

También puede designar un Android proyecto como un proyecto de biblioteca, que permite que se comparta con otros proyectos que dependen de él. Una vez que un proyecto de Android se designa como proyecto de biblioteca , no puede ser instalado en un dispositivo.

+0

eso es desde el enlace que he publicado en mi pregunta, pero no explica lo que ocurre internamente ** **. Perdón por no haber explicado bien mi pregunta. Lo que me interesa saber (principalmente [con fines de resolución de problemas] (http://stackoverflow.com/questions/6325826/unable-to-instantiate-activity-caused-by-classnotfoundexception)) es lo que diferencia un paquete de Aplicación de una Biblioteca paquete "debajo de la tapa". – an00b

1

Un proyecto de biblioteca no se empaqueta como un archivo redistribuible separado, como lo está acostumbrado con un jar. Se fusionó con el archivo apk de tu aplicación.

La página que vinculó a la menciona en la sección Referencing a library project.

Tan pronto como se cierra el cuadro de diálogo Propiedades, Eclipse reconstruye el proyecto, incluidos los contenidos del proyecto de la biblioteca.

+0

Gracias y +1 para resaltar esto. Lo que intento comprender es si el hecho de que un proyecto es "Proyecto de biblioteca" está ** marcado en algún lugar **? Si es así, ¿dónde lo marca (obviamente no en los archivos fuente y ni siquiera en los archivos res res XML)? – an00b

Cuestiones relacionadas