Domanda

sto lavorando sullo sviluppo di un sistema di cartelle cliniche utilizzando OpenMRS come backend per Android. OpenMRS dipende alcune librerie seriamente pesanti, tra cui Hibernate e Spring.

"Dexing" l'applicazione intere OpenMRS genera un file che è troppo grande anche per il formato di file classes.dex Android (questo limite di dimensione è già ben documentato). Per ovviare a questo, sto attualmente lavorando alla creazione di più file DEX dalle dipendenze e il loro caricamento durante il runtime utilizzando dex classloader di Android.

A causa del modo in cui la versione mobile del server verrà utilizzato nella pratica, le richieste di elaborazione effettivi saranno molto bassi, nonostante le enormi dipendenze. Non sto cercando di eseguire un server aziendale sul mio telefono qui.

Prima di passare settimane più del mio tempo a cercare di progettare questo, volevo solo chiedere la comunità degli sviluppatori: è questa strategia solo un sogno irrealizzabile? Se carico tutte queste librerie, sarà l'intero binario ottenere caricato nella RAM e solo rompere il sistema? C'è un buon modo per ottimizzare una tale domanda? C'è qualche evidente problema o una soluzione che mi manca qui?

È stato utile?

Soluzione

La risposta breve è:. Do not

La risposta lunga è che la maggior parte dei dispositivi ancora allocano solo una quantità relativamente piccola (tra 40-128 mega di RAM) di memoria per ogni mucchio. È davvero davvero bisogno di pensare architecting l'applicazione in modo che la maggior parte della logica e, quindi, le biblioteche e codice pesi massimi ancora risiedono su un server e l'applicazione mobile è solo la lettura dei dati leggeri (JSON?) Dal server alla visualizzazione. Dispositivi in ??realtà dovrebbe utilizzare solo gli elementi nativi come i dati di localizzazione e di fornire un'interfaccia per l'utente che è coerente con il resto dell'universo Android. Al di là di questo, si dovrebbe essere alla ricerca di modi per mantenere quanto più fuori logica della applicazione nativa possibile. Se per nessun altro motivo che per tenerlo più sicuro. applicazioni Android reverse engineering è banale e più si mantiene sul lato server, più sicura sarà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top