2012-07-30 30 views
7

Tengo una sola aplicación de Android con un logotipo personalizado, algunos puntos finales de servicio json personalizados, texto personalizado ocasional y posiblemente un esquema de color personalizado.Android: compartir actividades/código entre diferentes aplicaciones

Para mi cliente, esta aplicación en particular tendrá que cambiarse de marca y distribuirse como una aplicación completamente diferente unas 5-10 veces más. Así que estoy buscando la forma de reutilizar la mayor cantidad de código: las actividades y los servicios serán idénticos, excepto por las cosas personalizadas que mencioné.

En primer lugar, ¿cómo puedo compartir proyectos en el sentido de que un proyecto contendrá todo el código (incluidas actividades), y los demás solo modificarán algunos valores. No puedo pensar en una forma inteligente de compartir el código de servicio y el código de actividad con el valor ocasional arrojado a través de las propiedades.

¿Los archivos de recursos de cadena/diseño de Android tienen la capacidad de extraer de las propiedades? ¿Las actividades pueden agruparse dentro de un contenedor y compartirse con otros proyectos?

Respuesta

5

Puede usar el proyecto de la biblioteca Android para compartir el código común. Comience leyendo this artículo

+0

Gracias esto se ve perfecto – user842800

0

No tiene que tener diferentes espacios de nombres de Java, pueden ser comunes para todos los proyectos. Todo lo que necesita es reemplazar los recursos y modificar el manifiesto para que contenga un espacio de nombres diferente para cada aplicación. No hay problema con varias aplicaciones que tienen el mismo nombre de clases dentro. A menos que quieras volver a etiquetarlo como siempre que el usuario no pueda encontrarlo, es el mismo código, por supuesto.

+0

El problema con este enfoque es que mi actividad comienza con una declaración 'import com.company.app1.R'; este ** R.java ** está creado sobre la marcha por Android Studio o ADT, y su paquete está determinado por el paquete de la aplicación como se define en ** AndroidManifest.xml **. Por lo tanto, compartir con 'com.company.app2' puede no ser fácil. –

Cuestiones relacionadas