Red de conocimiento informático - Aprendizaje de código fuente - Cómo operar el empaquetado de archivos Cómo operar el empaquetado de archivos de computadora

Cómo operar el empaquetado de archivos Cómo operar el empaquetado de archivos de computadora

Hola a todos, soy Guo Lixian de la cuenta oficial Three Minutes Academy.

Me gustaría presentar un script para agregar rápidamente archivos de configuración de UI "guardar" y "leer" Los viejos fanáticos de mi cuenta oficial pueden saber cómo guardar y leer configuraciones de interfaz, porque lo he escrito antes. Dos tutoriales de artículos relacionados.

En este tutorial, nos centraremos en las dos palabras "rápido" y le enseñaremos cómo escribir una plantilla y simplemente agregarle su propio script la próxima vez.

Efecto

Almacenamiento de configuración y carga de configuración

Los principios anteriores

Recuerde los dos principios anteriores ~

Método 1: lea la interfaz a través del comando uip y luego escríbala en texto en forma de pares clave-valor de acuerdo con el nombre del elemento, y use el texto como medio para realizar la configuración de almacenamiento y la configuración de lectura del interfaz.

Método 2: leer y escribir el archivo de configuración de la interfaz para almacenar y cargar la interfaz. Hay dos situaciones en las que se almacena el archivo de configuración ~

Caso 1: En la etapa de depuración del script, la ruta del archivo de configuración es: las rutas de la nueva versión y la versión anterior del asistente clave son diferentes.

/sdcard/MobileAnJian/UIConfig//Versión anterior del asistente de botones/sdcard/MobileAnJianVip/UIConfig//Nueva versión del asistente de botones caso 2 Una vez empaquetado el script, la ruta del archivo de configuración es:

/data/ data//files/ script.cfg

Estos dos tipos de rutas deben distinguirse y no pueden confundirse.

Los dos métodos anteriores tienen sus propias deficiencias. El método 1 requiere que el nombre de cada cuadro de entrada, cuadro de selección múltiple y cuadro desplegable se escriba de antemano y no se pueda modificar si el script lo tiene. Ya se ha escrito, no es adecuado utilizar este método de escritura.

La desventaja del método 2 es que el archivo de configuración de lectura y escritura que escribí en el script solo puede tener efecto después de ejecutar el script. Está bien guardar el punto de configuración y ejecutar el script, pero lo hará. Será problemático cargar la configuración. Después de la carga, también debe reiniciar el script para ver los cambios en el contenido de la interfaz.

Introducción al principio de este problema

El principio de este problema es combinar el contenido de los dos problemas anteriores. Sobre la base del método 1, el nombre y el tipo del elemento son. obtenido mediante el método 2, y la solución del método 1 es defectuosa.

A continuación se describe cómo guardar la configuración y leer la configuración respectivamente

El principio de guardar la interfaz

①Lea el contenido "modificable" en la interfaz, es decir, guárdelo en El contenido del archivo de configuración de la interfaz no son todos elementos de la interfaz. Esto debe tenerse en cuenta. El contenido "modificable" incluye: el contenido del cuadro de entrada, la selección o deseleccionación del cuadro de selección múltiple y las opciones del cuadro desplegable.

UIP.GetAttribute

El valor de retorno de este comando es la tabla de pares de valores clave, el valor de retorno de cada elemento de la interfaz es diferente GetAttributeshowmessageret

El número de opción del cuadro desplegable

dimret=. uip.GetAttributeshowmessageret

Si desea profundizar más, puede utilizar el siguiente código para ver el valor de retorno de todos los elementos de la interfaz.

Evento de clic del botón de función dimret=uip. GetAttributeDimjson=encode.tabletojsonshowmessagejsonEndFunction

② Resuelva el problema de obtener el nombre del elemento de la interfaz. Este es el clímax de este artículo.

En el pasado, al leer el contenido de la interfaz. , necesitábamos saber los nombres de todos los elementos en la interfaz de antemano. Por ejemplo, si hay tres cuadros de entrada, sabríamos el nombre y la entrada del cuadro de entrada 1. El nombre del cuadro de entrada 2, el nombre del cuadro de entrada 3. , si escribe el nombre de acuerdo con el ciclo, puede calcular el método de empalme del nombre en el ciclo, como cuadro de entrada + número de serie

Si está escribiendo el script inicialmente, planeamos hacerlo. agregue una función para guardar y cargar archivos de configuración, de modo que podamos abordar específicamente el problema de los nombres. Sin embargo, cuando escribimos scripts, podemos agregar elementos de interfaz en cualquier momento según sea necesario, por lo que esto se convierte en un dolor de cabeza.

Entonces, ¿cómo solucionarlo?

Lea el archivo de configuración de la interfaz generado por el propio script. Cuando hacemos clic en el botón Guardar en la parte inferior de la interfaz, se generará un archivo de configuración en el teléfono móvil.

El archivo de configuración contiene los nombres de los elementos de la interfaz que queremos.

{Cuadro desplegable 1:0, cuadro de selección múltiple 1: verdadero, cuadro de entrada 1: hola}

En este punto, analizamos el código fuente de la interfaz y la visualización de la interfaz. configuración de contenido y interfaz La relación entre archivos está conectada. Tomemos el cuadro de entrada como ejemplo.

Como puede ver en la imagen de arriba, además del código fuente, los nombres de los elementos en la interfaz también se pueden encontrar en el archivo de configuración, por lo que esto nos ayudará a resolver el problema de obtener los nombres de los elementos de la interfaz. Por lo tanto, esto nos proporciona una nueva forma de resolver el problema de obtener el nombre del elemento en la interfaz leyendo el nombre del elemento en el archivo de configuración.

El primer paso es utilizar el comando de lectura de texto file.read para leer el contenido del archivo de configuración y obtener la tabla de pares clave-valor.

Paso 2: Para una tabla clave-valor, la forma más sencilla de obtener sus nombres clave es iterar sobre la matriz.

ParaCadak,vIntable//La tabla es un par clave-valor//k es el valor clave//v es el valor claveSiguiente

Paso 3: Después de obtener el nombre de la clave ( es decir, nombre del elemento), todavía existe el problema de cómo distinguir los tipos de elementos.

En términos generales, el método de denominación predeterminado de los elementos de la interfaz es tipo de elemento + número:

Cuadro de entrada 1, cuadro de entrada 2, cuadro de entrada 3 casilla de verificación múltiple 1, verificación múltiple Cuadro 2, Casilla de verificación múltiple 3 Cuadro desplegable 1, Cuadro desplegable 2, Cuadro desplegable 3

Si todos usamos este nombre predeterminado, no habrá ningún problema, pero normalmente para Podrás distinguir cada elemento. Los personajes cambiarán sus nombres.

Cuando obtenemos el nombre del elemento leyendo el archivo de configuración surge un problema, es decir, no podemos determinar qué tipo de elemento es por el nombre, si es un cuadro de entrada, un multiselección cuadro o un cuadro desplegable.

Para solucionar este problema, aporto otra idea: determinar el tipo de clave.

Al leer el cuadro de entrada, obtendremos el contenido del tipo cadena; al leer el cuadro de selección múltiple, obtendremos el tipo booleano de verdadero y falso; Obtendrá el tipo numérico 01234.

Cada elemento de la interfaz tiene su propio tipo de valor diferente, y invertir los tipos de elementos en función de los tipos de claves es, de hecho, una idea factible.

Por supuesto, todavía estoy un poco preocupado aquí, porque me preocupa que el área de código de la interfaz no admita el comando de tipo del complemento Shanhaijing, por lo que no podrá obtener los datos. tipo. Afortunadamente, puede ser compatible después de la prueba.

importshanhai.luaFunction responde al evento Dimv=123showmessageshanhai.typeEndFunction

Cree una nueva interfaz y agregue una función de evento de respuesta de clic de botón para probarla.

Presentamos tres formas de escribir valores de retorno:

Cadena: Valor de cadena: Número Booleano: Booleano

En este paso podemos obtener el nombre y el tipo de correspondencia, y luego está el paso final de escribir la configuración.

③Almacenar el contenido de la interfaz.

Los pasos anteriores han obtenido los nombres y tipos de todos los elementos, por lo que puedo usar el comando

uip.GetAttribute para obtener todo el contenido de la interfaz y almacenarlo como clave. pares de valores en un nuevo archivo.

El sufijo de este archivo puede ser texto txt, un archivo de configuración cfg o incluso ningún sufijo.

La ruta del archivo no importa si es un teléfono móvil. Si es un emulador y desea implementar archivos de configuración compartidos para varios emuladores, debe prestar atención. la carpeta compartida. Si no desea compartir el archivo de configuración, debe colocarlo en otras carpetas no compartidas.

Por supuesto, hay otra forma de evitar compartir ****, que es usar imsi, imei y otros valores de parámetros para nombrar el archivo, de modo que cada dispositivo sea diferente, incluso si se coloca **** y se comparte. Los archivos de configuración en la carpeta tampoco se comparten.

Guarde el código de configuración

Algunos detalles en el código:

①El código es depuración de script, usando la ruta de depuración, la cadena aleatoria en mi simulador Los caracteres no son tuyos, tienes que modificarlos tú mismo.

Mire la fecha del archivo generado y busque el archivo de configuración de la interfaz que acaba de operar.

②El archivo de configuración de la interfaz carece de un mecanismo de informe de errores. Cuando utilice el script por primera vez, el archivo de configuración no se generará si no hace clic en el botón Guardar, por lo que debe agregar un mensaje de aviso. .

③El almacenamiento de la configuración no copia directamente el archivo de configuración generado, sino que atraviesa todos los elementos de la interfaz y luego lo almacena. La razón es que después de modificar el contenido de la interfaz, si no hace clic en el botón Guardar a continuación. , el archivo de configuración no se guardará y se modificará. El archivo de configuración copiado directamente solo puede almacenar el contenido de la interfaz guardado al hacer clic en el botón Guardar la última vez.

Principio de configuración de lectura

Los puntos de conocimiento involucrados en la configuración de lectura son básicamente los mismos que cuando se guarda la configuración.

Paso uno: lea el archivo de configuración. Tenga en cuenta que es la configuración que almacenó, no el archivo de configuración generado automáticamente.

Paso 2: Abrir la tabla y obtener el par clave-valor del elemento.

Paso 3: Determine el nombre y el tipo de valor de cada elemento y modifique los elementos de la interfaz uno por uno. Utilice el comando uip.SetAttribute.

Leer el código de configuración

Uso

De acuerdo con mi explicación anterior, escriba su propia plantilla y luego, si desea agregar esta función a su propio script, Puede agregar dos botones al código fuente de la interfaz, luego hacer clic en el nombre de la respuesta y escribir "Configuración de almacenamiento" y "Cargar configuración". "Cargue configuración", luego coloque el código de función en el área de código de interfaz y podrá usarlo.

Finalmente, cuando utilices el script por primera vez, asegúrate de hacer clic en el botón integrado "Guardar configuración".