Uso de bibliotecas de código abierto en proyectos de Android

Soy un principiante en la progtwigción de Android, y estoy trabajando con el estudio de Android … ahora me pregunto cuál es la mejor manera de instalar bibliotecas de fonts abiertas desde gitHub. mi pregunta es desde el punto de vista de los principios de la organización: ¿debo crear un nuevo package para cada biblioteca y poner todo el código fuente de la biblioteca como está en ese package? ¿debería el package estar en la carpeta source.main.java? (el que el estudio de Android crea automáticamente). perdón por la pregunta tonta … es solo que estoy dando mis primeros pasos en un progtwig a gran escala y no quiero perder la cabeza en el futuro debido a malas prácticas de organización.

No hay una respuesta correcta para esta pregunta. Algunas forms equivocadas de hacerlo, pero el sentido común te guiará.

Mi consejo:

Comience por verificar el origen de este código fuente abierto en el sistema de control de origen de su empresa en algún lugar y poder buildlo o rebuildlo según sea necesario. No necesariamente en su proyecto, sino simplemente haciendo que el código se registre para que no se pierda ni se confunda con los cambios siempre en evolución del autor original en GitHub.

En cuanto a cómo lo consumes, tienes varias opciones.

  1. Construya el código abierto en su propio proyecto (verificado en el control de la fuente, pero separado de su proyecto principal). Luego solo tome la gota de files comstackdos (.class, .jar, .lib, etc …) y verifique eso en su proyecto principal. Esta es la opción más flexible si no crees que vas a tener que cambiar el código fuente abierto con tanta frecuencia. Tiene el beneficio adicional de ser administrado para varios proyectos.

  2. Coloque el código fuente tal como está directamente en su proyecto. Esto significa que siempre estará reconstruyendo el código. Esto le da la mayor flexibilidad al evolucionar y cambiar el código específico para las necesidades de su proyecto.

Probablemente haya soluciones híbridas de estas opciones también.

La conclusión es que cualquier cosa que use debe ser copyda y construida en su propio sistema. Porque el código que sacó de GitHub podría desaparecer o cambiar significativamente en cualquier momento.

Una solución simple sería usar JitPack para importar esos proyectos GitHub en su compilation gradle.

Primero necesitas agregar el repository:

repositories { maven { url "https://jitpack.io" } } 

y luego todos los repositorys de GitHub como dependencies:

 dependencies { compile 'com.github.RepoOwner:Repo:Version' // more dependencies... } 

Detrás de escena JitPack revisará el código y lo comstackrá.

Creo que estás buscando esto . Si está usando eclipse, debería verificar esto

Si está buscando agregar un file jar a su lib, puede simplemente crear una carpeta lib en su proyecto y agregar un file jar a la biblioteca y debe agregar los compile files('jarfile.jar') línea compile files('jarfile.jar') en el file de compilation (gradle build). Si estás usando eclipse puedes seguir esto

Por cierto, crear un package para cada biblioteca y poner todos los códigos fuente de la biblioteca no me parece sano. Es casi equivalente a recrear el proyecto. Estoy seguro de que no es el enfoque adecuado.

Si el código de terceros se empaqueta como .jar o .aar y se pone a disposition en el repository maven orientado al público (por ejemplo, maven central), entonces debe agregar la biblioteca como una dependencia en su file build.gradle.

Si no está disponible como una dependencia de maven / gradle, puede agregar el código de la biblioteca a su proyecto como se sugiere en otras respuestas aquí. Nunca me ha gustado esa solución en absoluto.

También puede build .jar o .aar y agregar eso al directory lib de su proyecto, como también lo sugieren otras respuestas aquí. Para un proyecto pequeño y simple con pocas dependencies, eso podría tener sentido.

Lo que me gusta hacer para proyectos más grandes y de mayor duración es configurar mi propio server Nexus (un server de repository Maven) y poner allí las dependencies de terceros.