Android 在应用程序引用的模块中声明的类是否会在应用程序生命周期内一直保留在内存中?
Koin提供Android 在应用程序引用的模块中声明的类是否会在应用程序生命周期内一直保留在内存中?,android,singleton,koin,Android,Singleton,Koin,Koin提供single和factory来创建声明类的实例 我的同事认为Koin创建了这些类的静态实例,应用程序不引用它们。所以当Android系统内存压力很大时,它们很容易被垃圾收集或者失去状态控制。因此,如果由Koin创建的单例占用大量内存,我们最好避免使用Koin 我的问题是: koin创建的类是否由应用程序引用单个{}?在我深入研究koin源代码以证明这一点之前,是否应该先阅读源代码 当Android中出现内存压力时,koin single{}创建的类是否容易被收集?假设该单例实例名为S
single
和factory
来创建声明类的实例
我的同事认为Koin创建了这些类的静态实例,应用程序不引用它们。所以当Android系统内存压力很大时,它们很容易被垃圾收集或者失去状态控制。因此,如果由Koin创建的单例占用大量内存,我们最好避免使用Koin
我的问题是:
单个
和工厂
之外,是否还有其他初始化方法应用程序
子类引用,至少我会如何使用“引用”一词
所以它们很容易被垃圾收集
不,这将使Koin或任何其他依赖项反转框架变得无用
或者在Android系统中出现高内存压力时失去状态控制
如果“系统”(设备?)内存不足,Android会终止进程。这将除去受影响进程中的所有对象,无论它们是否由Koin管理
当Android中出现内存压力时,koin single{}创建的类是否容易被收集
没有
是否有除single和factory之外的初始化方法
Android应用程序中存在viewModel
和fragment
。看
我的同事认为Koin创建了这些类的静态实例
不清楚您的同事所说的“静态实例”是什么意思
它们不被应用程序引用
Android中很少有单例被应用程序
子类引用,至少我会如何使用“引用”一词
所以它们很容易被垃圾收集
不,这将使Koin或任何其他依赖项反转框架变得无用
或者在Android系统中出现高内存压力时失去状态控制
如果“系统”(设备?)内存不足,Android会终止进程。这将除去受影响进程中的所有对象,无论它们是否由Koin管理
当Android中出现内存压力时,koin single{}创建的类是否容易被收集
没有
是否有除single和factory之外的初始化方法
Android应用程序中存在
viewModel
和fragment
。请参阅。@ComminsWave Do类在应用程序引用的koin模块中声明,以便在应用程序生命周期内一直保留在内存中?@Sanjayrajsinh:AFAIK,它们在作用域内是静态的,并且将在进程生命周期内一直保留。这意味着在单个{}中声明的所有对象都保留内存,直到应用程序被杀死为止?@Sanjayrajsinh:Yes,默认情况下。AFAIK,将让卸载的模块持有的对象被垃圾回收。@ComminsWave Do类在应用程序引用的koin模块中声明,以便在应用程序存在时一直留在内存中?@Sanjayrajsinh:AFAIK,它们在作用域中是静态的
,并且将在进程的生命周期内一直存在。这意味着在单个{}中声明的所有对象都将保持内存,直到应用程序被杀死为止?@Sanjayrajsinh:是的,默认情况下。AFAIK将让卸载的模块持有的对象被垃圾回收。