java - Android:在启动时使用XML配置文件,可能吗?

标签 java android xml

所以我有这个 Java 框架,是我不久前在使用 Swing 应用程序时制作的。这是其中一件更像是“我真的能做到吗?”的学术练习。比我用过很多次的东西。基本上,它的工作原理如下:

  1. 在启动时读取包含信息(包括包路径)的 XML 配置文件。

  2. 扫描这些包中是否有带注释的类,例如 Spring。带注释的类是传统 MVC 风格的资源(即模型、 View 、 Controller )。

  3. 存储对在单个全局存储类中匹配的类类型和方法的引用。

  4. 从中心类提供静态方法,允许各种 MVC 组件通过反射相互通信,从而允许应用程序组件最大程度地划分,因为它们都没有直接相互引用。

我真的很想在 Android 上使用它,但我知道我必须对其进行一些更改。我读到过,在 Android 上无法很好地完成包扫描,但我已经找到了解决方法。我主要关心的是读取 XML 配置文件和构建全局存储类。

在传统的 Java 应用程序中,这是在应用程序启动时完成的,并且数据将保留在内存中,直到应用程序关闭。下次启动时,会再次读取配置,再次进行扫描等。但是,Android 具有不同的生命周期,应用程序会根据内存需求在不同时间被终止/重新启动。

问题

  1. 当应用程序 a) 进入“ sleep ”状态,b) 被系统终止以释放空间时,Android 内存模型如何处理内存中的数据?对于后一种情况,信息是否以某种方式保存?

  2. 基于上一个问题,我如何确保在应用程序的整个生命周期中正确读取配置文件并正确设置存储?我相信答案就在 Android 应用程序类中,可能是通过将框架与其生命周期联系起来,但我正在那里寻找指导。

我的背景是纯 Java,总体来说我对 Android 还比较陌生。

提前致谢。

最佳答案

How does the Android memory model work for in-memory data when an app is a) put to "sleep"

我不知道“应用程序进入休眠状态”是什么意思,因为该术语在传统的 Android 开发中不使用。 设备进入休眠模式;这对应用程序的流程生命周期没有直接影响。

How does the Android memory model work for in-memory data when... b) killed by the system to free up space?

应用程序不会被杀死。 Processes are terminated 。与大多数主要操作系统上的进程模型一样,当进程终止时,其消耗的所有 RAM 都会返回到系统。

For the latter condition, is information preserved in some way?

只有您自己通过将数据保存在某处来保存它。同样,这与其他主要操作系统使用的进程模型没有显着不同。 不同是系统负责进程终止的时间。

how would I ensure that the configuration file is read and the storage setup properly throughout the lifecycle of the application?

这很难抽象地回答。创建进程时,将调用 Application 子类的 onCreate() 。欢迎您在那里做一些初始化工作,请记住,您在这里花费的每一毫秒都是用户等待您的应用程序启动的一毫秒。另请记住,ApplicationonCreate() 将会因进程启动的任何原因而被调用,包括与您的 UI 无关的事情(例如,响应到系统广播)。

关于java - Android:在启动时使用XML配置文件,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36744247/

相关文章:

java - 当我启动 Spring 服务器时,在浏览器或 postman 中访问 url 时出现 404

php - 在 Android 中对字符串进行编码,以便 PHP 能够对其进行 gz 解压缩?

xml - 从 SOAP 响应转换的困难

c# - 将 Dictionary<string, string> 转换为 xml 的简单方法,反之亦然

python - 对于python 3,使用lxml在属性前面写入 'xsi:'

java - 打乱随机数组

java - 为什么这段java代码没有产生我期望的结果?

java - 当我尝试将 JTree 添加到 JFrame 时,JTree 不更新

android - 即使 offsetlimit 是默认值(0),ViewPager2 也会预加载下一个 fragment

android - 创建 View 模型的方式有什么区别?