Android创建了许多对象与垃圾收集器

时间:2016-06-23 11:53:06

标签: android performance garbage-collection

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

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

    findViewById(R.id.mytextview).setText( “xpto”);

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果你在java中创建对象,那也没关系。 您不应该在绘图周期中创建对象,例如onDraw视图方法。 这取决于FPS - 经常调用垃圾收集器可能不稳定,因此用户将看到滞后。虽然它可能会在方向更改等方面重新创建Fragments \ Activities