【问题标题】:Android avoid creating new objectsAndroid 避免创建新对象
【发布时间】:2014-07-12 08:09:05
【问题描述】:

我不确定一个特定的 android 优化技巧,它建议避免不必要的对象创建。我不确定“创作”部分。在我的应用程序中,我开始将多个对象(上下文、资源等)分配给活动字段,以避免在每个生命周期中多次调用相同的 get 函数(getBaseContext()、getResources())。

所以我的问题是,当我将这些对象分配给活动字段时,我是创建新对象(并使用额外空间)还是对已创建的对象进行新引用?

【问题讨论】:

    标签: android variables memory optimization


    【解决方案1】:

    当调用 getBaseContext(), getResouces() 时,您不会创建任何新对象。您正在获取 Android 操作系统在首次创建应用程序进程时创建的对象。

    关于观察你创建了多少对象,除非你创建大量对象(我的意思是超过 100 的数量级),否则我根本不会担心这一点。 100s 甚至可能太低了。

    一个好的做法是始终牢记您的堆大小,如果您在构建应用程序时看到它变得越来越大,请尽力管理它。您可以通过查看 IDE 中的 DDMS(Dalvik 调试监视器服务器)视图来了解有关堆大小的信息。

    【讨论】:

    • 感谢您的回答。一个快速的后续问题:是否值得为上下文、资源使用额外的字段来将它们用作函数参数,以避免多次调用相同的 get 函数?
    • 并非如此。我的意思是你避免了将另一个函数放在堆栈上的系统开销,但这种增益可能充其量是非常小的。但是,如果你已经这样做了,我会说离开它。
    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多