Tengo una aplicación de transporte público para un país y quiero crear una aplicación separada para otro país. La mayor parte del código se compartirá, pero necesito algunas clases para tener implementaciones diferentes, por ejemplo, TransitProvider.¿Qué hacer con múltiples aplicaciones de Android que comparten aproximadamente el 90% del código fuente?
¿Es posible compartir código usando Android Library Project? ¿Puedo hacer lo siguiente?
- Tienes TransitProvider (que se extiende AbstractTransitProvider) en el proyecto biblioteca. La clase tiene métodos que quedan sin implementar.
- En el proyecto de aplicación> AndroidManifest.xml tengo un nombre de paquete diferente que en el manifiesto de la biblioteca. También tengo TransitProvider en este proyecto, que está en el mismo paquete que el TransitProvider de la biblioteca.
- Cuando uso TP en código de proyecto de biblioteca, la implementación desde la aplicación. proyecto debe ser utilizado (es decir, el TP del proyecto de aplicación prevalece sobre el TP de la biblioteca).
Gracias por su respuesta. La mayoría de los recursos serán comunes para mis aplicaciones, entonces usaré el proyecto de biblioteca. Necesito hacer algo como esto desde la actividad del proyecto de biblioteca: 'Resultado de viaje = new TransitProvider(). FindJourney();' ¿Cómo puedo asegurarme de que se utiliza la implementación 'TransitProvider' del proyecto de aplicación? – fhucho
@fhucho: "¿Cómo puedo asegurarme de que se utiliza la implementación TransitProvider del proyecto de aplicación?" - solo teniendo una clase llamada 'TransitProvider'. No tenga una clase llamada 'TransitProvider' en el proyecto de la biblioteca. Coloque el código común en 'AbstractTransitProvider' en el proyecto de biblioteca (y/u otras clases de utilidad), y la implementación personalizada en' TransitProvider' en el proyecto de aplicación. – CommonsWare
Pero el proyecto de la biblioteca no parece saber acerca del TransitProvider que se encuentra en el proyecto de la aplicación. La aplicación puede usar clases de lib pero no al revés, creo. – fhucho