【发布时间】:2011-09-06 00:50:08
【问题描述】:
我正在开发一个使用 OpenMRS 作为 Android 后端的医疗记录系统。 OpenMRS 依赖于一些重量级的库,包括 Hibernate 和 Spring。
“Dexing”整个 OpenMRS 应用程序会生成一个即使对于 Android classes.dex 文件格式来说也太大的文件(这个大小限制已经有据可查)。为了解决这个问题,我目前正在从依赖项创建多个 dex 文件,并在运行时使用 Android 的 dex 类加载器加载它们。
由于实际使用服务器的移动版本的方式,尽管存在巨大的依赖关系,但实际处理需求将非常低。我不想在我的手机上运行企业服务器。
在我花费数周的时间尝试设计这个之前,我只是想问问开发者社区:这个策略只是一个白日梦吗?如果我加载所有这些库,整个二进制文件会被加载到 RAM 中并破坏系统吗?有没有优化这样一个应用程序的好方法?我在这里遗漏了一些明显的问题或解决方案吗?
【问题讨论】:
-
乍一看,我会说在 Android 上运行 Hibernate 和 Spring 的梦想是不现实的。为所有这些依赖项拥有足够 RAM 的简单问题会让你陷入困境。
-
你见过android-developers.blogspot.com/2011/07/… 吗?这里的难点似乎是各种 dex 文件不能在没有额外代码或预处理的情况下相互调用。 (假设有足够的内存来做你需要的事情。)
-
这绝对需要“客户端/服务器”。此应用程序的一个重要问题是确保隐私(HPIAA 法规等)
-
我没看过安卓开发者的帖子,非常有帮助! RAM 似乎是每个人心中的限制......加载一个类实际上会将整个文件加载到 RAM 中吗?据我了解,桌面虚拟机仅加载引用并引用代码的存储。我想我可以将类库要求减少到大约 50MB,我可以在具有 256MB RAM 的平板电脑上运行它吗?
标签: java android hibernate medical dex