Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo se inyecta la configuración específica de la construcción en un APK?

Tengo una aplicación para Android que distribuyo a varios proveedores diferentes del mercado; La aplicación es funcionalmente la misma para cada uno, pero requiere ciertos parámetros de configuración distintos. Idealmente me gustaría producir todos los APKs individuales en un paso de construcción. ¿Hay una manera "oficial" de lograr esto?

Estoy considerando un enfoque en el que tengo un archivo de plantilla en la estructura del proyecto, y en el tiempo de construcción se usa para interpolar valores en un archivo de salida como res / xml / config.xml.

  • ¿Debo usar XML o JSON como un formato de datos en las aplicaciones de Android?
  • Android java.lang.NoClassDefFoundError
  • ¿Cómo puedo eliminar el relleno superior innecesario de la vista de navegación?
  • Cómo comprobar el registro de bloqueo usando android ndk en cocos2d-x
  • Establecer ancho a wrap_content para TextView a través de código
  • El nombre del mes aparece con el número M + en el cuadro de diálogo datePicker en android
  • ¡Gracias por adelantado!

  • Android: permite la creación de un alias de actividad cuya targetActivity está en un aar / sdk
  • Android: busca un servidor en la red
  • ¿Cómo enviar parámetros desde un clic de notificación a una actividad?
  • ¿Cuál es el tamaño de texto predeterminado en Android?
  • Generar mapa de bits de HTML en Android
  • OnClickListener no funciona con el atributo que se puede hacer clic
  • 4 Solutions collect form web for “¿Cómo se inyecta la configuración específica de la construcción en un APK?”

    Hay un par de maneras de abordar esto:

    1) Configurar una aplicación de biblioteca de Android (diseñada para Eclipse)

    Este es el método sugerido en la documentación de Android. Con este método, configuraría su aplicación para que fuera un "Proyecto de biblioteca" .

    A continuación, para cada compilación específica que desee producir, configuraría un nuevo proyecto de Android que haga referencia al proyecto de biblioteca creado anteriormente. Este proyecto tendría que tener su propio AndroidManifest que declara los componentes utilizados desde la aplicación de la biblioteca. Dado que cada aplicación tiene su propio manifiesto, casi cualquier tipo de personalización puede hacerse intercambiando componentes o cambiando información. Sin embargo, aunque permite diferencias complejas, esto crea cierta redundancia en el mantenimiento si hay pocas diferencias.

    2) Construido una escritura ANT o el otro script de la estructura para manipular la configuración

    Un script ANT podría en tiempo de construcción manipular las fuentes o archivos XML para permitir la configuración personalizada. La manera más fácil de hacer esto sería usar el sed unix o un script python / ruby ​​para hacer la personalización. Esto es ideal cuando la personalización se limita a pequeños cambios y / o simplemente reemplazos textuales. Esta es mi ruta de elección en la mayoría de los casos.

    Recomiendo copiar el árbol de origen a un directorio temporal antes de hacer las manipulaciones de tal manera que se puede borrar en una "limpieza de hormigas" y no afectará a la copia de trabajo de la fuente.

    Una advertencia con esto es que diseñaría las modificaciones de tal manera que la fuente todavía construya sin ejecutar la secuencia de comandos (es decir, para que pueda hacer compilaciones estándar mientras se desarrolla en eclipse o cualquier otro entorno sin necesidad de ejecutar el script especial).

    Sólo puede configurar una compilación basada en Maven Android Plugin para su apk que utiliza el filtrado de recursos y perfiles para sus diferentes configuraciones. Compruebe el ejemplo morseflash del proyecto de muestras oficiales para ver cómo se hace todo en detalle.

    Una vez que haya configurado los perfiles, puede utilizar el complemento maven invoker para ejecutarlo todo en un solo barrido. Y si usted quiere tenerlo automatizado apenas ponga la estructura encendido Hudson.

    http://code.google.com/p/maven-android-plugin/

    http://code.google.com/p/maven-android-plugin/wiki/Samples

    http://www.simpligility.com/2010/11/release-version-management-for-your-android-application/

    Utilizo un script de hormigas, que lee unos pocos parámetros de tiempo de compilación y genera el APK apropiado para mí (appname-1.1_ggl, appname-1.1_amz.apk que contiene enlaces al Mercado de Google o al Mercado de Amazon, respectivamente). Manejarlo dos veces no es una gran cosa.

    Puede que no sea realista, dependiendo de cuántas permutaciones tengas (no mencionas), pero puedes usar subant . Utilizando una buildpath diferente y la siguiente build.properties para cada permutación que necesita llamar.

    Utilizo un proyecto de biblioteca que tiene todo el código y dos (o más) proyectos que hacen referencia a esa biblioteca.

    El proyecto de biblioteca tiene un archivo de recursos llamado config.xml en su carpeta res y este archivo se reemplaza en los otros proyectos. De esa manera puedo tener diferentes configuraciones de aplicación y cada build tiene su propio manifest.xml para que realmente puedas configurar las cosas de manera diferente para cada tipo de compilación.

    Esto también le permite tener código específico / permisos / … que sólo es requerido por una compilación específica y hace que el proceso de construcción sea muy fácil.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.