1

最近,我安裝了幾個應用程序用於Android開發和測試。我注意到,即使應用程序未打開並處於活動狀態,我的手機仍然比以前更耗電。有沒有一款Android工具可以幫助我確定哪些應用正在使用後臺服務?如果是這樣,那麼該工具是否會提供與應用程序B相比應用程序A使用了多少帶寬的詳細信息?我有興趣瞭解應用程序是否錯誤地使用廣播接收器,服務等。我也想在開發應用程序時使用這個工具,以瞭解我是否浪費了太多的CPU週期或可能導致電池耗盡的內存。謝謝!如何監控Android設備中應用的後臺服務?

回答

1

您可以使用dumpsys。

例如:

$ adb shell dumpsys activity

將顯示當前正在運行的活動,服務,註冊廣播接收機,待意圖的所有信息,和這麼多。

您還可以從batterystats服務轉儲信息:

$ adb shell dumpsys batterystats

它會顯示所有當前持有wakelocks。 要查看可用的轉儲所有的服務,您可以使用:

$ adb shell service list

UPDATE

dumpsys是非常硬派。我不知道任何GUI工具。我可以給你建議的最好的事情是閱讀Binder#轉儲方法的源代碼。

例如,here是ActivityManagerService轉儲方法。

+0

非常感謝pepyakin。是否有任何GUI工具可以讓閱讀這些日誌更容易?或者,你知道有關如何閱讀這些日誌的任何鏈接嗎? – codeshark

+0

恐怕沒有。我已經更新了答案。 – pepyakin