Marco de desarrollo híbrido móvil + modularización/componentización nativa de Android

1. Antecedentes

    El marco nativo de Android se puede desarrollar de forma modular/componente, ya sea un marco de enrutamiento escrito a mano o un marco integrado de código abierto como ARouter. Entonces, ¿puede el marco de desarrollo híbrido lograr el desarrollo de componentes?

2 implementación

   Según mi experiencia en el desarrollo de terminales móviles, creo que hay dos tipos de modularización: uno es un proceso compartido entre múltiples módulos; el otro es un proceso cruzado entre múltiples módulos. En Android, el acceso entre procesos de cada módulo no se comprende en detalle. Hasta donde yo sé, la forma actual de saltar entre módulos es compartir procesos.

2.1 Compartir procesos

   El llamado proceso compartido significa que cada módulo comparte la misma zona de pruebas de la aplicación, el mismo conjunto de almacenamiento de archivos, el mismo conjunto de claves de almacenamiento y el mismo conjunto de archivos de recursos (/res en Android).

2.2Cómo modularizar el marco de Córdoba

   La carpeta www en el marco nativo de Android es el directorio de ejecución de H5. La modularización del marco cordova significa dividir múltiples módulos comerciales. La división incluye dos tipos:
(1) División lateral H5: divide el proyecto front-end cordova en múltiples proyectos independientes
(2) Componenteización del lado nativo: el marco nativo que se ejecuta en Android Studio se divide en módulos, cada uno de los cuales corresponde a un H5 independiente. proyecto, es decir, cada módulo tiene su propio paquete www.

   El objetivo final de la modularización es dividir un módulo de aplicación principal en varios módulos comerciales. Al empaquetar, el módulo principal depende de otros submódulos. Los submódulos comparten archivos de recursos en el módulo principal.

La modularización de Cordova requiere el siguiente trabajo:

   1. Divida el proyecto front-end en varios proyectos según las necesidades del proyecto. La aplicación principal sirve como portal e integra otros módulos comerciales en el portal. Cada proyecto front-end puede tener una lógica de inicio de sesión diferente, diferentes estilos de interfaz, etc.
   2. El marco nativo de Android integra el marco de enrutamiento, que puede lograr saltos de enrutamiento entre módulos.
   3. Integre los paquetes de dependencia cordova y separe los paquetes de dependencia comunes a cada módulo.
   4. Complemento de enrutamiento lateral H5 escrito a mano, que se utiliza para activar el menú del submódulo en el portal y saltar a la aplicación del submódulo.
   5. Configure diferentes archivos config.xml para cada módulo. Cada inicio o carga de módulo requiere regenerar todo el entorno cordova, es decir, cada módulo tiene un entorno de contexto cordova diferente.
    6. Los recursos se comparten entre módulos. Por ejemplo, los drawIds en diferentes módulos son consistentes. Si desea tener sus propios archivos de recursos, puede colocarlos todos en res en el módulo principal.
    7. Configure la estructura www en el submódulo. Dado que el submódulo eventualmente se cargará en la carpeta www debajo del módulo principal después de la compilación, esto dará como resultado múltiples archivos de índice idénticos en la carpeta www del módulo principal. En este caso, debe agregar uno a la estructura www del submódulo Carpeta del módulo para identificar esta carpeta como contenido H5 en un determinado submódulo.
    8. Modifique la ruta de referencia del archivo Cordova js en index.html. Cada módulo comparte el mismo entorno Cordova js, por lo que la ruta del archivo index.html del submódulo debe modificarse a ".../cordova.js".

La ruta del archivo www es como se muestra a continuación.

Insertar descripción de la imagen aquí

¿Cómo actualizar y empaquetar el marco híbrido después de su modularización?

¿Cómo empaquetar los archivos de recursos H5 en www, cómo actualizarlos dinámicamente y cómo actualizar la versión?
1. El código H5 del módulo principal aún realiza una actualización dinámica y también puede realizar una actualización completa (para todo el apk).
2. El www del submódulo se puede extraer dinámicamente en el servidor. Una vez completada la extracción, se colocará en el directorio de ejecución del módulo principal y se fusionará con el archivo www del módulo principal.

Cómo almacenar múltiples bases de datos sqlite en la misma zona de pruebas de la aplicación

Ejemplos:
1. El módulo principal se aplica a la base de datos sqlite y crea la base de datos DataBase.
2. Otros submódulos también aplican la base de datos sqlite y crean la base de datos app_database_h.
Por favor, dígame, ¿cómo se almacenan DataBase1 y DataBase2 en el nombre del paquete de la aplicación?
Insertar descripción de la imagen aquí
Al analizar la aplicación del simulador, podemos encontrar que la base de datos del módulo principal existe en app_webview/databases, donde Databases.db es la base de datos del módulo de aplicación principal y almacena el índice de la base de datos del módulo principal. app_webview/databases/file__0/1 son los datos de la base de datos del módulo principal

El nombre de la base de datos del submódulo es app_database_h. Su ruta es /nombre del paquete/bases de datos/. Los datos se colocarán en la carpeta file__0 en el directorio actual.

Resumir

1. El desarrollo de componentes de desarrollo móvil híbrido debe considerar la división de páginas H5 front-end. Los diferentes módulos se pueden dividir en diferentes proyectos H5 según la complejidad. Cada proyecto H5 tiene un soporte de servicio back-end diferente.
2. El método de componenteización del modelo de desarrollo híbrido es coherente con el método de componenteización del marco nativo de Android.
3. La componenteización debe considerar la extracción y actualización dinámica del código de cada módulo.
4. Cuando la componenteización involucra bases de datos locales, debe considerar la creación de bases de datos diferentes para cada módulo.
5. La componenteización debe considerar cuestiones de intercambio de recursos y algunos problemas deben evitarse en el desarrollo real.

Supongo que te gusta

Origin blog.csdn.net/superzhang6666/article/details/125789433
Recomendado
Clasificación