Frage

Ich arbeite an der Entwicklung eines medizinischen Aufzeichnungssystems mit OpenMRS als Backend für Android. OpenMRS ist abhängig von einigen schwerwiegenden Bibliotheken, einschließlich Hibernate und Frühling.

"Dexing" Die gesamte OpenMRS-Anwendung generiert eine Datei, die auch für das Format "Android Classes.DEX" zu groß ist (diese Größenlimit ist bereits gut dokumentiert). Um dies zu umgehen, arbeite ich derzeit daran, mehrere DEX -Dateien aus den Abhängigkeiten zu erstellen und sie während der Laufzeit mit dem Dex Classloader von Android zu laden.

Aufgrund der Art und Weise, wie die mobile Version des Servers in der Praxis verwendet wird, werden die tatsächlichen Verarbeitungsanforderungen trotz der enormen Abhängigkeiten sehr niedrig sein. Ich versuche nicht, hier einen Enterprise -Server auf meinem Telefon auszuführen.

Bevor ich mehr Wochen Zeit verbringe, um zu versuchen, dies zu konstruieren, wollte ich nur die Entwicklergemeinschaft fragen: Ist diese Strategie nur ein Pfeifentraum? Wenn ich all diese Bibliotheken lade, wird die gesamte Binärdatei in den RAM geladen und brechen einfach das System? Gibt es eine gute Möglichkeit, eine solche Anwendung zu optimieren? Gibt es ein offenes Problem oder eine offensichtliche Lösung, die mir hier fehlt?

War es hilfreich?

Lösung

Die kurze Antwort lautet: Nicht.

Die lange Antwort lautet, dass die meisten Geräte jedem Haufen immer noch nur eine relativ geringe Menge (zwischen 40 und 128 Megs) Speicher zuweisen. Sie müssen wirklich über die Architektur der App nachdenken, damit sich der Großteil der Logik und damit die Bibliotheken und der Schwergewichtscode weiterhin auf einem Server befinden und die mobile App nur leichte Daten (JSON?) Vom Server zum Anzeigen lesen. Geräte sollten wirklich nur native Elemente wie Standortdaten verwenden und dem Benutzer eine Schnittstelle zur Verfügung stellen, die mit dem Rest des Android -Universums übereinstimmt. Darüber hinaus sollten Sie nach Möglichkeiten suchen, so viel Logik aus der nativen App herauszuhalten. Wenn aus keinem anderen Grund, um es sicherer zu halten. Reverse Engineering Android -Anwendungen sind trivial Und je mehr Sie auf der Serverseite halten, desto sicherer werden Sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top