Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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_Variables_Memory_Optimization - Fatal编程技术网

Android避免创建新对象

Android避免创建新对象,android,variables,memory,optimization,Android,Variables,Memory,Optimization,我不确定android的一个特别的优化技巧,它建议避免不必要的对象创建。我不确定“创造”部分。在我的应用程序中,我开始将几个对象(上下文、资源等)分配给活动字段,以避免在每个生命周期中多次调用相同的get函数(getBaseContext(),getResources()) 所以我的问题是,当我将这些对象指定给活动字段时,我是创建新对象(并使用额外的空间)还是对已经创建的对象进行新引用 调用getBaseContext()时,GetResources()不是在创建任何新对象。当应用程序的进程首次

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


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

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

至于观察你创造了多少个物体,我一点也不担心,除非你创造了大量的物体(我的意思是数量级超过100秒)。100秒甚至可能太低


一个好的做法是始终记住堆的大小,如果在构建应用程序时看到堆越来越大,请尽最大努力管理它。通过查看IDE中的DDMS(Dalvik Debug Monitor Server)视图,可以找到有关堆大小的信息

谢谢你的回答。一个快速的后续问题:是否值得为上下文、资源使用额外的字段作为函数参数,以避免多次调用同一个get函数?不值得。我的意思是,您可以避免在堆栈上放置另一个函数的系统开销,但这种增益最多可能是非常小的。但是,如果你已经这么做了,我会说,别管它了。