我寫過一個應用程序,它在啓動時處理大量數據;該應用程序的第一次啓動時間相當緩慢,但後續啓動時間也是如此。如何提高我的應用的ActivityManager加載時間?
我以前認爲,相對未反應的啓動時間(約7秒),是由於在第一負載數據處理 - 位的調試建議約2秒至冷負荷。所以,我重新設計了我的數據結構,以便他們在推出之間更容易序列化到永久存儲(所以緩存的東西),現在保存狀態時,應用程序完成約20毫秒,並且裝載時間大約爲10-20ms。好多了。 (PS它不使用內置的Java序列化,作爲國家文件現在都那麼簡單,它更容易在一個普通的拯救,人類可讀(和可編輯)文本文件 - 它仍然從這個重裝雖然相當快!)
不過,我仍然發現該應用程序啓動時間約5秒 - 我看着在aLogCat其中有一個條目:
I/ActivityManager(...) blah blah blah: +5s193ms
所以超過5秒加載一個相對簡單的佈局(幾個嵌套LinearLayouts,和幾個TextViews - 沒什麼特別的,和沒有圖像) - 誠然,那個時候下山,隨後啓動(我關閉應用程序,然後再次打開它,它的〜700毫秒;沖洗和重複類似的結果)。
SOOOO我的問題是:我怎麼能提高應用程序的加載時間?我很高興第一次加載需要一段時間來處理所有事情 - 沒關係。但是有什麼辦法可以讓事情保持在記憶中,或者至少讓它進入可恢復狀態,所以無論ActivityManager在做什麼都不需要那麼長時間?我希望它能成爲我可以打開的東西(可能必須進行長時間搜索或類似搜索),然後再次關閉它 - 因此需要快速打開!
感謝提前:)
勒布
感謝您的回覆 - 我現在使用ASyncTasks進行咕嚕作業,這似乎對於需要很長時間的事情來說是完美的 - 而且我已經將我的UI線程留下了光線:) – Seb 2011-05-28 01:19:46
我還發現「traceview」和找出了瓶頸的確切位置(一個非常有用的工具!),並將它們壓扁... – Seb 2011-05-28 01:20:53
另外,我還發現通過使用traceview事件Html.fromHtml非常昂貴。更重要的是(從我所能看到的)直接設置文本大小...所以也刪除了這些,現在它正在飛!謝謝大家的幫助:) – Seb 2011-05-28 01:21:51