Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在应用程序引用的模块中声明的类是否会在应用程序生命周期内一直保留在内存中?_Android_Singleton_Koin - Fatal编程技术网

Android 在应用程序引用的模块中声明的类是否会在应用程序生命周期内一直保留在内存中?

Android 在应用程序引用的模块中声明的类是否会在应用程序生命周期内一直保留在内存中?,android,singleton,koin,Android,Singleton,Koin,Koin提供single和factory来创建声明类的实例 我的同事认为Koin创建了这些类的静态实例,应用程序不引用它们。所以当Android系统内存压力很大时,它们很容易被垃圾收集或者失去状态控制。因此,如果由Koin创建的单例占用大量内存,我们最好避免使用Koin 我的问题是: koin创建的类是否由应用程序引用单个{}?在我深入研究koin源代码以证明这一点之前,是否应该先阅读源代码 当Android中出现内存压力时,koin single{}创建的类是否容易被收集?假设该单例实例名为S

Koin提供
single
factory
来创建声明类的实例

我的同事认为Koin创建了这些类的静态实例,应用程序不引用它们。所以当Android系统内存压力很大时,它们很容易被垃圾收集或者失去状态控制。因此,如果由Koin创建的单例占用大量内存,我们最好避免使用Koin

我的问题是:

  • koin创建的类是否由应用程序引用单个{}?在我深入研究koin源代码以证明这一点之前,是否应该先阅读源代码
  • 当Android中出现内存压力时,koin single{}创建的类是否容易被收集?假设该单例实例名为SdkManager,其任务是加载3-5个第三方库
  • 除了
    单个
    工厂
    之外,是否还有其他初始化方法
  • 我的同事认为Koin创建了这些类的静态实例

    不清楚您的同事所说的“静态实例”是什么意思

    它们不被应用程序引用

    Android中很少有单例被
    应用程序
    子类引用,至少我会如何使用“引用”一词

    所以它们很容易被垃圾收集

    不,这将使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将让卸载的模块持有的对象被垃圾回收。