所以我使用这个Java框架我在使用Swing应用程序时做了一段时间。这是“我能真正做到这一点吗?”的学术演习之一。而不是我经常使用的东西。基本上,它的工作原理如下:
在启动时使用包括包路径在内的信息读取XML配置文件。
扫描那些包含注释类的包,比如Spring。带注释的类是传统MVC风格的资源(即模型,视图,控制器)。
存储对在单个全局存储类中匹配的类类型和方法的引用。
从中央类提供静态方法,允许各种MVC组件通过反射相互通信,从而允许应用程序组件的最大划分,因为它们都没有直接引用彼此。
我真的很想在Android上使用它,但我知道我必须对它进行一些更改。我已经读过在Android上无法很好地完成打包扫描,但我已经找到了解决方法。我主要关注的是读取XML配置文件和构建全局存储类。
在传统的Java应用程序中,这是在应用程序启动时完成的,数据将保留在内存中,直到应用程序关闭。当它下次启动时,再次读取配置,再次扫描,等等。然而,Android具有不同的生命周期,应用程序根据内存需求在不同时间被杀死/重新启动。
问题
当应用程序处于“睡眠状态”时,Android内存模型如何用于内存数据,以及b)被系统杀死以释放空间?对于后一种情况,是否以某种方式保存了信息?
根据前面的问题,我如何确保在应用程序的整个生命周期内读取配置文件并正确设置存储?我相信答案是在Android应用程序类中,可能是将框架绑定到其生命周期,但我正在那里寻找指导。
我的背景主要是纯Java,我对整体Android仍然相对较新。
提前致谢。
答案 0 :(得分:2)
当应用程序处于“睡眠状态”时,Android内存模型如何用于内存数据
我不知道“app is to sleep”是什么意思,因为该术语并未用于传统的Android开发中。 设备进入睡眠模式;这对应用程序的流程生命周期没有直接影响。
当... b)系统杀死以释放空间时,Android内存模型如何用于内存数据?
应用程序未被杀死。 Processes are terminated。与大多数主要操作系统上的流程模型一样,当流程终止时,其所有消耗的RAM都将返回系统。
对于后一种情况,是否以某种方式保存了信息?
只有通过在某处保存数据自己保留它。同样,这与其他主要操作系统使用的过程模型没有显着差异。 的不同之处在于系统负责进程终止的时间。
如何在应用程序的整个生命周期内确保读取配置文件并正确设置存储?
摘要中难以回答。创建进程时将调用onCreate()
子类的Application
。我们欢迎您在那里进行一些初始化工作,请记住,您在此处花费的每毫秒都是用户等待您的应用启动的毫秒。还要记住,onCreate()
的{{1}}将因进程启动的任何原因而被调用,包括与您的UI无关的事情(例如,响应系统广播)。