Red de conocimiento informático - Material del sitio web - Cómo incluir información del canal en una aplicación de Android

Cómo incluir información del canal en una aplicación de Android

Para contar la información del canal, debe agregar información del canal en algún lugar del programa y luego escribir diferentes paquetes para diferentes canales. En términos generales, agrega el número de canal en el archivo de manifiesto en lugar de escribirlo directamente en el código. La ventaja de esto es que puede modificar automáticamente los números de canal de diferentes canales en el archivo de manifiesto y luego empaquetar automáticamente el canal.

Los archivos de manifiesto admiten etiquetas de metadatos y se recomienda utilizar dichas etiquetas personalizadas. Por ejemplo, el siguiente fragmento de archivo.

lt;?xml version="1.0" encoding="utf-8"? gt;

lt;manifest xmlns: android="/apk/res/android"

android:versionCode="X"

android:versionName="X.X.X"

paquete="com.XXX"gt;

. .....

lt;aplicación android:icon="@drawable/icon"

android:label="@ string/app_name"gt;

......

lt;metadatos android:name="CANAL" android:value="C_001" /gt;

lt;/applicationgt; p>

lt;/manifestgt;

En este ejemplo de código, hemos agregado una etiqueta de metadatos debajo del nodo de la aplicación con el nombre CHANNEL y un valor de C_001, que es el que especificamos El número del canal.

Para empaquetar diferentes canales, debemos modificar manual o automáticamente C_001 a C_002, C_003, etc., y luego empaquetarlos de manera diferente.

¿Cómo lee el programa el número de canal empaquetado?

En el código del programa, puedes leer los metadatos definidos en el archivo Manifiesto. A continuación se muestra un ejemplo de código.

cadena estática pública getChannelCode(contexto contexto) {

código de cadena = getMetaData(contexto, "CANAL");

if (código! = nulo) {

Código de retorno;

}

Devuelve "C_000"

}

Cadena estática privada getMetaData( Contexto de contexto, clave de cadena) {

intente {

ApplicationInfo ai = context.getPackageManager().getApplicationInfo(

context.getPackageName(), PackageManager.GET_ META_DATA);

Valor del objeto = ai.metaData.get(clave);

if (valor!= nulo) {

devolver valor.toString() ;

}

} catch (Excepción e) {

//

}

return null;

}

¿Cómo automatizar el proceso de envasado?

¿Cómo automatizar el proceso de envasado?

Queremos automatizar el proceso de empaquetar diferentes paquetes para diferentes canales en dos escenarios. Uno es el caso con el código fuente, el otro es el caso sin código fuente sino solo con el archivo APK.

Con código fuente.

La situación con el código fuente es relativamente simple. Podemos utilizar herramientas de secuencias de comandos automatizadas para empaquetar, como Ant.

Para el empaquetado Ant, hay dos cuestiones clave: una es admitir bucles For en Ant para realizar automáticamente múltiples operaciones de empaquetado; la otra es cómo modificar el archivo Manifest en Ant para admitir diferentes mercados. Siempre que se resuelvan estos dos problemas clave y se utilicen las funciones básicas de Ant, podremos cumplir con nuestros requisitos.

1. Compatibilidad con bucles en Ant

El paquete principal de Ant no tiene tareas relacionadas con los bucles For y debes descargar el paquete de extensión correspondiente. Puede utilizar el paquete Ant-contrib de código abierto.

Dirección de descarga: /

Una vez completada la descarga, copie el paquete lib en ant-contrib a la biblioteca Ant instalada apache-ant-XXX\lib y podrá usarlo.

Para obtener más información sobre cómo utilizar ant-contrib, consulte el sitio web oficial de ant-contrib.

2. Modifique el archivo de manifiesto en Ant

Utilizando la tarea lt;replaceRegExpgt; proporcionada por la tarea de extensión Ant, también puede implementar el reemplazo basado en expresiones regulares.

Ejemplo