Sto lavorando allo sviluppo di un sistema di cartelle cliniche utilizzando OpenMRS come back-end per Android. OpenMRS dipende da alcune librerie seriamente pesanti, tra cui Hibernate e Spring.Porting java server per Android
"Dexing" l'intera applicazione OpenMRS genera un file troppo grande anche per il formato di classi classes.dex di Android (questo limite di dimensioni è già ben documentato). Per ovviare a questo, sto attualmente lavorando alla creazione di più file dex dalle dipendenze e caricandoli durante il runtime utilizzando il programma di caricamento dex di Android.
A causa del modo in cui verrà utilizzata la versione mobile del server, le richieste effettive di elaborazione saranno molto basse nonostante le enormi dipendenze. Non sto cercando di eseguire un server aziendale sul mio telefono qui.
Prima di passare più settimane del mio tempo a cercare di ingegnerizzare questo, volevo solo chiedere alla comunità di sviluppatori: questa strategia è solo un sogno irrealizzabile? Se caricassi tutte queste librerie, l'intero binario verrà caricato nella RAM e interromperà il sistema? C'è un buon modo per ottimizzare tale applicazione? C'è qualche ovvio problema o soluzione che mi manca qui?
A prima vista, direi che il sogno di avere Hibernate e Spring in esecuzione su Android non è realistico. Il semplice problema di avere abbastanza RAM per tutte queste dipendenze ti blocca completamente nelle tue tracce. – Prime
Hai visto http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html? La parte difficile qui sembra essere che i vari file dex non possono semplicemente chiamare tra di loro senza codice aggiuntivo o pre-elaborazione. (Supponendo che ci sia abbastanza memoria per fare ciò che ti serve.) –
Questo sicuramente grida per "client/server". Un problema significativo con questa app sarà quello di assicurare la privacy (regolamenti HPIAA, ecc.) – paulsm4