質問

AndroidのバックエンドとしてOpenMRSを使用して、医療記録システムの開発に取り組んでいます。 OpenMRSは、HibernateやSpringを含むいくつかの真剣なヘビー級ライブラリに依存しています。

「Dexing」OpenMRSアプリケーション全体で、Android Classes.dexファイル形式でも大きすぎるファイルが生成されます(このサイズの制限はすでに十分に文書化されています)。これを回避するために、現在、依存関係から複数のDexファイルを作成し、AndroidのDexクラスローダーを使用してランタイム中にロードすることに取り組んでいます。

サーバーのモバイルバージョンが実際に使用される方法により、巨大な依存関係にもかかわらず、実際の処理要求は非常に低くなります。ここで携帯電話でエンタープライズサーバーを実行しようとはしていません。

これを設計しようとして何週間も過ごす前に、開発者コミュニティに尋ねたかっただけです。この戦略は単なる夢ですか?これらすべてのライブラリをロードすると、バイナリ全体がRAMにロードされ、システムを破るだけですか?このようなアプリケーションを最適化する良い方法はありますか?ここで見逃しているいくつかの明らかな問題や解決策はありますか?

役に立ちましたか?

解決

短い答えは次のとおりです。

長い答えは、ほとんどのデバイスが各ヒープに比較的少量(40〜128メグのRAMの間)を割り当てるだけであるということです。ロジックの大部分とライブラリとヘビー級コードがサーバーに存在し、モバイルアプリがサーバーから軽量データ(JSON?)を表示するだけで表示されるように、アプリのアーキテクチャ化について本当に考える必要があります。デバイスは、実際にロケーションデータなどのネイティブアイテムのみを使用し、Androidユニバースの残りの部分と一致するインターフェイスをユーザーに提供する必要があります。それを超えて、ネイティブアプリからできるだけ多くのロジックを守る方法を探しているはずです。より安全に保つ以外の理由がない場合。リバースエンジニアリングAndroidアプリケーションはです 些細な そして、サーバー側に留まるほど、より安全になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top