0

我想优化我的 Android 应用程序,但我不知道什么更好?


第一个选项:

public void function()
{
    RelativeLayout rl = (RelativeLayout)findViewById(R.id.activity);
    ImageView img = (ImageView)findViewById(R.id.image);
    ...
}

第二种选择:

RelativeLayout rl = (RelativeLayout)findViewById(R.id.activity);
ImageView img = (ImageView)findViewById(R.id.image);

public void function{
   ...
}

哪个选项使用更少的资源?全局变量还是局部变量?(我的程序每秒调用一次这个函数)

4

2 回答 2

1

假设第二个选项使用例如成员变量,它甚至不会工作。setContentView()例如,您需要在调用onCreate()之前调用in,findViewById()并且在运行之前执行成员变量初始化onCreate()

所以第一个更好,因为它可以工作,而另一个则不能。

除此之外,在这个级别上,这闻起来是不必要的微优化。如果您有性能问题,它们可能在其他地方。

相关:如果你想优化findViewById()调用,例如在一个适配器中,相同的视图被一遍又一遍地回收,谷歌搜索“android viewholder”。

于 2013-08-09T12:28:18.557 回答
1

一般来说,第二种选择更好。findViewById()如果您的视图层次结构很复杂,可能会相当昂贵。最好调用一次并存储结果,而不是重复调用。

于 2013-08-09T12:46:10.573 回答