【问题标题】:Android: Using an XML configuration file at startup, is it possible?Android:在启动时使用 XML 配置文件,可以吗?
【发布时间】:2016-04-20 21:27:22
【问题描述】:

所以我有这个 Java 框架,这是我在使用 Swing 应用程序时制作的。这是其中一个更像是“我真的可以这样做吗?”的学术练习。比我用了很多的东西。基本上,它是这样工作的:

  1. 在启动时读取 XML 配置文件,其中包含包路径等信息。

  2. 扫描这些包以查找带注释的类,例如 Spring。带注释的类是传统 MVC 风格的资源(即模型、视图、控制器)。

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

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

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

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

问题

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

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

我的背景主要是纯 Java,总体上我对 Android 还是比较陌生。

提前致谢。

【问题讨论】:

  • 简单地说 1) 操作系统会处理这个问题,你无法真正控制应用程序的一部分何时被杀死。如果您想保存某些内容,请使用持久存储 2)我会说 Application 类是最初加载数据的最安全选择

标签: java android xml


【解决方案1】:

当应用 a) 进入“睡眠”状态时,Android 内存模型如何处理内存中数据

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

当...b) 被系统杀死以释放空间时,Android 内存模型如何处理内存中的数据?

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

对于后一种情况,信息是否以某种方式保存?

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

如何确保在应用程序的整个生命周期中读取配置文件并正确设置存储?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2011-05-17
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多