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