Estoy trabajando en el desarrollo de un sistema de registros médicos usando OpenMRS como back-end para Android. OpenMRS depende de algunas bibliotecas de peso pesado, incluidas Hibernate y Spring.Portando servidor java a Android
"Dexing" toda la aplicación OpenMRS genera un archivo que es demasiado grande incluso para el formato de archivo classes.x de Android (este límite de tamaño ya está bien documentado). Para evitar esto, actualmente estoy trabajando para crear múltiples archivos dex de las dependencias y cargarlos durante el tiempo de ejecución usando el cargador de clases dex de Android.
Debido a la forma en que se usará la versión móvil del servidor en la práctica, las demandas reales de procesamiento serán muy bajas a pesar de las enormes dependencias. No estoy tratando de ejecutar un servidor empresarial en mi teléfono aquí.
Antes de dedicar la mayor parte de mi tiempo a tratar de diseñar esto, solo quería preguntarle a la comunidad de desarrolladores: ¿es esta estrategia solo una quimera? Si cargué todas estas bibliotecas, ¿se cargará todo el binario en la RAM y se romperá el sistema? ¿Hay una buena manera de optimizar tal aplicación? ¿Hay algún problema obvio o solución que me falta aquí?
A primera vista, diría que el sueño de tener Hibernate y Spring funcionando en Android no es realista. El simple problema de tener suficiente RAM para todas estas dependencias te detiene en seco. – Prime
Has visto http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html? La parte difícil aquí parece ser que los diversos archivos dex no pueden simplemente llamar entre sí sin código adicional o preprocesamiento. (Suponiendo que hay suficiente memoria para hacer lo que necesita) –
Esto definitivamente clama por "cliente/servidor". Un problema importante con esta aplicación será asegurar la privacidad (regulaciones de HPIAA, etc.) – paulsm4