【问题标题】:Android create many objects vs garbage collectorAndroid 创建许多对象 vs 垃圾收集器
【发布时间】:2016-06-23 11:53:06
【问题描述】:

我一直在阅读有关垃圾收集器及其在 Android 中的影响的文章,我有一些问题想与大家分享。

  • 垃圾收集器对 Android 的真正影响是什么?它在自己的线程中运行,所以应用程序应该没有任何问题,对吧?
  • 如果上述问题的答案是肯定的,我们应该创建对象还是避免它? 示例:

    findViewById(R.id.mytextview).setText("xpto");

TextView mytextView = findViewById(R.id.mytextview)
myTextView.setText("xpto");

【问题讨论】:

    标签: android performance garbage-collection


    【解决方案1】:

    在您的示例中,您不创建任何对象(新运算符),而是在视图层次结构中创建对现有对象的引用。垃圾收集器查看对象图并删除没有其他对象引用的对象。引用的类型很少。 最实际使用的 Android 功能是 WeakReference,它有助于避免内存泄漏(请参阅What is the difference between a soft reference and a weak reference in Java?)。 您应该注意引用,例如,如果您使用计时器并且 Activity 可能在计时器(或任何长)任务仍在运行时被销毁(使用弱引用)

    【讨论】:

      【解决方案2】:

      如果您在 java 中创建对象,那也不错。 您不应该在绘图周期中创建对象,例如视图的 onDraw 方法。 这取决于 FPS - 频繁调用垃圾收集器可能会不稳定,因此用户会看到滞后。虽然它可以在方向改变等时重新创建 Fragments\Activity

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 2011-07-16
        • 1970-01-01
        • 1970-01-01
        • 2012-08-12
        相关资源
        最近更新 更多