Java: Cómo compartir código de aplicación / UI común entre varias aplicaciones
Tengo varias aplicaciones que difieren sobre todo basadas en recursos. A partir de ahora, estoy copiando el código alrededor de cada aplicación. Esto puede ser problemático. Un ejemplo, arreglando un error en uno, y olvidando actualizar a los demás.
No creo que la creación de un JAR sea apropiada para esta situación, ya que se trata de clases de interfaz de usuario específicas de aplicación (en realidad, las clases de actividad de Android en específico), incluido el código de inicio de la aplicación real.
- Android: Barra de Acción
- Android spinner eliminar dropdown vertical extra espacio / padding
- Obtención de la memoria intermedia OpenGL-ES Stencil Working
- Crash con Android 4.1 con ArrayMap
- Java.lang.NoSuchMethodError en la compilación
Puede ser posible incluir estos archivos de origen en varios paquetes, pero luego tengo el problema de que cada archivo especifica un nombre de paquete específico en la primera línea.
La mayor parte del código está relacionado con la UI y el procesamiento de la actividad. (El código común actual ya está en una biblioteca). Una pregunta similar se publica aquí . ¿Hay alguna solución elegante para esta situación?
- Java.lang.RuntimeException: error: 0D0680A8: rutinas de codificación asn1: ASN1_CHECK_TLEN: etiqueta equivocada
- "ItemizedOverlay" no se puede resolver con un tipo
- Android - Definir el fondo de la aplicación
- Consulta SQLite de Android con clave externa utilizando la tormenta o una alternativa
- Android: pasando objetos entre fragmentos
- Android ImageView.setMatrix () y .invalidate () - el repintado toma demasiado tiempo
- Cómo agregar json al cuerpo de una publicación http en java
- Edificio Gradle tarda una eternidad después de actualizar a Java 8
Un frasco es absolutamente apropiado para esta situación. Debe dividir su aplicación en capas, separando las clases específicas de la aplicación del código compartido.
He resuelto esto por ir con proyectos de la Biblioteca de Android. (No está seguro de los detalles, tal vez son en última instancia frascos) Consulte los detalles aquí , específicamente la sección "Configuración de un proyecto de biblioteca". Básicamente poner en todas mis clases de actividad (excepto para el inicio de una) en la biblioteca.
Para verdadero código no vinculado a la UI, JARs, parecen ser el camino a seguir.
Estoy de acuerdo con artbristol.
También recomiendo usar Maven y:
- lanzar los frascos comunes a un repositorio Maven corporativo
- declarar una dependencia con versiones específicas sobre estos artefactos jar
De esta manera, no se rompen las aplicaciones si se realizan algunos cambios incompatibles.
- Error de Jenkins Execute: java.io.IOException ant build
- ¿Es seguro que una vista haga referencia a la actividad que la muestra?