繁体   English   中英

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

[英]Android - Efficiently update counters in views

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

统计信息包括上次运行特定模块的时间、下次运行的时间、上次与服务器通信的时间以及下一次通信的时间。

除此之外,还有 memory 用法(简单的 memory 用法,不测量实际用法)之类的东西。

memory 用法等可以每隔几秒更新一次,这样不是问题,但时间至少需要每秒更新一次(对于计数器)。
由于每秒运行一次(甚至以 500 毫秒的周期)会导致不规则的更新/跳过秒,我现在以 300 毫秒的周期运行它。

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

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

有什么有效解决这个问题的技巧吗?

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

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

这样,触发间隔将为[period, period+sleepTime) ,当您选择较短的 sleepTime 时,这是可以接受的。

我也进行了更改,因此它显示“5 分钟前”,并且我有两个计时器,一个每分钟触发一次,一个每秒触发一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM