【问题标题】:Android memory performance安卓内存性能
【发布时间】:2018-09-29 03:48:38
【问题描述】:

我有两个关于 Android 内存优化的问题:

  1. 在 Android 中,使用全局字段还是本地字段,哪个内存更贵?
  2. 使用 dagger 进行依赖注入 - 在 @applicationScope 或 @activityScope 中使用对象(服务、视图模型..)是否更好

【问题讨论】:

  • 你有没有尝试过一些研究。 SO不太适合这类问题。问题#1让我畏缩;不允许使用类与本地对象进行过早的优化驱动。出于正确的原因使用正确的范围。第二个可能最好通过阅读stackoverflow.com/q/41842493/1531971之类的内容来回答

标签: android performance memory-management dependency-injection singleton


【解决方案1】:

局部变量存储在堆栈中,当函数完成时,局部变量也消失了。全局变量在整个程序的生命周期内始终存在并使用它们的内存。声明一个最接近使用它的变量总是更好。所以局部变量是首选。

关于 dagger 2 自定义范围,只要 Application 对象存在,@ApplicationScope 中的实例就存在,而只要 Activity 存在,@ActivityScope 就会保持引用。所以对象应该在需要的范围内。如果仅在活动或其托管片段中需要它,请使用@ActivityScope,或者如果您需要应用程序范围内的单例对象,请定义它@ApplicationScope。

希望这对你有所帮助。

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 2011-12-13
    • 2011-01-09
    相关资源
    最近更新 更多