Question

Je travaille sur le développement d'un système de dossiers médicaux en utilisant OpenMRS comme back-end pour Android. OpenMRS dépend de certaines bibliothèques sérieusement lourds, y compris Hibernate et Spring.

« Dexing » l'application entière de OpenMRS génère un fichier qui est trop grand pour le même format de fichier classes.dex Android (cette limite de taille est déjà bien documenté). Pour contourner ce problème, je travaille actuellement à la création de plusieurs fichiers dex des dépendances et de les charger lors de l'exécution à l'aide de classloader dex Android.

En raison de la façon dont la version mobile du serveur sera utilisé dans la pratique, les demandes de traitement réels seront très faibles malgré les dépendances énormes. Je ne cherche pas à exécuter un serveur d'entreprise sur mon téléphone ici.

Avant que je passe des semaines plus de mon temps à essayer de concevoir, je voulais juste demander à la communauté des développeurs: cette stratégie est juste un rêve de pipe? Si je charge toutes ces bibliothèques, va se charger toute la binaire en mémoire vive et juste casser le système? Y at-il une bonne façon d'optimiser une telle application? Y at-il un problème évident ou d'une solution qui me manque ici?

Était-ce utile?

La solution

La réponse courte est:. Ne pas

La réponse longue est que la plupart des appareils encore allouer seulement une quantité relativement faible (entre 40-128 Mo de RAM) de mémoire à chaque tas. Vous avez vraiment besoin vraiment penser à architecturer l'application de sorte que la majeure partie de la logique et donc les bibliothèques et le code des poids lourds résideront sur un serveur et l'application mobile est en train de lire des données légers (JSON?) À partir du serveur à l'affichage. Les appareils doivent vraiment seulement utiliser des éléments natifs tels que les données de localisation et fournir une interface à l'utilisateur qui est compatible avec le reste de l'univers Android. Au-delà, vous devriez chercher des façons de garder comme sur beaucoup de logique de l'application native possible. Si pour aucune autre raison que de le garder plus sûr. Reverse engineering des applications Android est trivial et plus vous garder sur le côté serveur, plus vous sécurisé sera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top