簡體   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