¿Cómo puedo administrar mejor las cadenas de filtro de Intención de Android en múltiples proyectos?

8

En mi proyecto IntentExamples, tengo este filtro, correspondiente a un servicio.

<intent-filter>
                <action android:name="biz.rpcodes.apps.intentexamples.START_SERVICE" />
</intent-filter>

En otro proyecto, UseExampleService, tengo algo como:

Intent i = new Intent("biz.rpcodes.apps.intentexamples.START_SERVICE");
                startService(i);

... guiado por esta respuesta: enlace

Mi pregunta es: ¿Cómo puedo administrar mejor estas Cadenas de filtro de Intención en múltiples proyectos? La mejor solución que tengo ahora es crear una clase que esté copiando y pegando desde el proyecto de Servicio en los otros proyectos, es decir,

class ExampleServiceIntents {
public static final String ExampleServiceIntents.START_SERVICE = 
    "biz.rpcodes.apps.intentexamples.START_SERVICE";
...

Aunque podría importar las propias clases de servicio, new Intent(this, ExampleService.class) , me gustaría mantener las clases de servicio en su propio proyecto.

    
pregunta Rick Page 16.11.2015 - 05:33

1 respuesta

1

Bibliotecas compartidas de Android o enlaces simbólicos dependientes del sistema operativo.

Opción 1: Biblioteca de Android compartida

Una biblioteca formal de Android importada en cada proyecto.

Pros : escriba seguridad. Multiplataforma y funciona con control de código fuente. Verificación completa de sintaxis y soporte de editor.

Contras : sigue siendo un poco molesto importar proyectos como bibliotecas a través de los editores actuales (Android Studio o Eclipse with ADT) ya que no ofrecen interfaces muy buenas para hacer esto. Si tiene que hacer esta tarea a menudo pero no tan a menudo recuerda todos los pasos cada vez, entonces puede que no valga la pena. Pero si es una o dos cosas para empezar, entonces no tienes que volver a hacerlo, no está tan mal.

Enlaces simbólicos de la opción 2

Enlace simbólicamente un archivo fuente común en cada proyecto. Luego, ambos proyectos verán el archivo y los cambios, para que puedan permanecer sincronizados.

Pros : mucho más sencillo de implementar.

Contras : los enlaces simbólicos no funcionan tan bien con las herramientas de control de fuente. No multiplataforma (para desarrollo) ya que los enlaces simbólicos son muy diferentes de un sistema operativo a otro. No queda claro para un nuevo desarrollador que viene al proyecto que los cambios en uno se comparten automáticamente con el otro.

Por lo tanto, como la opción de enlaces simbólicos tiene más desventajas que ventajas, generalmente recomendaría la solución de biblioteca compartida para la mayoría de los proyectos. Pero, si su proyecto particular no necesita las características de la columna de contras del enlace simbólico, entonces probablemente sea más fácil. Depende.

PS: hay una terrible tercera opción de tener una tercera aplicación completa de Android que ofrece un proveedor de datos de Android que ofrece los valores de cadena. Pero en ese momento, debe comunicarse con esa aplicación con cadenas especiales que también deben compartirse, así que solo está agregando un paso de abstracción pero no ha resuelto el problema.

    
respondido por el Mufasa 18.11.2015 - 22:43

Lea otras preguntas en las etiquetas