Android - 有效地更新视图中的计数器

时间:2011-07-13 23:34:41

标签: android performance views

在我写的应用程序中,我有一堆我想为用户显示的统计数据。

统计数据包括上次运行特定模块的时间,下次运行的时间,最后一次与服务器的通信,然后是下一次的通信。

除此之外还有内存使用(简单的内存使用,不测量实际使用情况)等内容。

内存使用量等可以每隔几秒更新一次,这样就不会出现问题,但至少需要每秒更新一次(对于计数器)。
由于每秒运行一次(甚至500ms周期)导致不规则更新/跳过秒,我现在以300ms周期运行。

但我确实注意到我的应用程序在启动时开始滞后 经过一些分析后发现,需要调整大小的视图占用了70%的时间,字符串格式化程序(用于格式化计数器)占用了大部分时间。

除了使用CPU之外,我看到很多分配,每隔几秒我就会在logcat中看到GC_CONCURRENT。

有效解决这个问题的任何提示?

2 个答案:

答案 0 :(得分:0)

你能否以某种方式对其进行重组,以便减少调整大小?例如:将元素的宽度设置为fill_screen,或者将DP大小设置为大于最长字符串大小

答案 1 :(得分:0)

我通过编写自己的计时器来解决问题,该计时器以较短的增量进行休眠,并且仅在一整秒过后才更新视图。

这样,当您选择短睡眠时间时,火焰间隔将为[period, period+sleepTime)

我也改变了所以它说“5分钟前”,我有两个定时器,一个每分钟发射一个,每秒发射一个。