2011-04-06 18 views
13

que tienen un proyecto en Git que desarrollo con Eclipse que necesito para crear una lista .apk de producción y una Dev .apk ser instalado en la misma dispositivo.¿Cómo instalo la misma aplicación Android .apk dos veces en el mismo dispositivo?

el cambio entre las dos es la configuración de menor importancia de propiedad, tales como fuentes XML, etc.

Con o sin Eclipse, ¿cuál es la mejor práctica para crear los archivos de produción y Deve .apk ser instalado en el mismo ¿dispositivo?

+0

¿Puedo preguntar por qué usted quiere tener ambos corriendo al mismo tiempo en el mismo dispositivo? Puedo entender la necesidad de diferentes producciones y compiladores, pero no la necesidad de ambos al mismo tiempo. –

+0

@RobertMassaioli Déjame darte un caso de uso: tienes una aplicación, la aplicación está basada en el inquilino, es decir, la aplicación solo puede diferir en cuanto a definiciones de impresión/archivos de configuración, etc., dependiendo del inquilino para el que la aplicación fue construido. Y ahora puede suceder que se requiera la aplicación para ambos inquilinos en un dispositivo, porque la persona que lo usa funciona para ambos inquilinos. Bueno, para no hacer historia: Definitivamente hay un caso de uso (con la instalación de múltiples versiones productivas de la misma aplicación) – AgentKnopf

Respuesta

12

La única manera que he encontrado para hacer esto es cambiar el nombre del paquete. Técnicamente, esto solo tiene que hacerse en el archivo de manifiesto, pero es probable que esto provoque algunos errores de compilación, por lo que probablemente también deba cambiar el nombre del paquete. entonces, si tiene com.company.app puede cambiarlo a com.company.app.dev y com.company.app.prod. Eclipse debe manejar el cambio de nombre del código siempre que no esté utilizando ningún reflejo.

+0

En realidad terminé con este enfoque. Gracias. – Todd

+1

Eclipse ADT v20 hace que esto sea muy fácil, como se explica aquí: http://stackoverflow.com/a/11829480/226513 – Adam

2

Estoy resolver este tipo de problemas en la siguiente forma:

tengo 3 actividades diferentes: básico, la producción y el desarrollo, como:

public class BasicActivity extends Activity {} //actually conntains all code 
public class ProductionActivity extends BasicActivity {} //empty one 
public class DevelopmentActivity extends BasicActivity {} //empty one 

Entonces hay 2 diferentes manifiestos, dicen : producción (puntos a ProductionActivity como launchable y tiene diferentes paquete) y desarrollo (puntos a DevelopmentActivity como launchable)

Cuando necesito para iniciar la producción de un - Solía ​​copiar manifiesta la producción (con tarea ant) ​​como uno real y viceversa con el desarrollo de uno.

Hay pequeña complicación con los recursos que compilan desde R.class tiene que estar en el mismo paquete que declarada en el manifiesto. Pero de nuevo, con un anting "hecho a mano", también me he dañado para resolver este problema.

Cuestiones relacionadas