如何通过日志记录Google Play服务的请求以定位高电池使用率的原因

7次阅读
没有评论

*

问题描述

反映其Android手机显示Google Play Services占用45%以上的电量,怀疑某个应用导致了这一现象。希望了解是否存在一种方法可以通过日志来追踪可能是哪款应用引起了该问题。

此问答讨论了几种可能的方法:

  1. 使用adb logcat工具:因为Play Services是在另一个进程中运行的,所以其他应用程序与其通信的过程可能会记录在logcat中。具体表现为Intent调用。
  2. 系统日志和系统跟踪:用户提到手机上已开启“系统跟踪”(System Tracing)选项,并希望通过这种方式生成多小时的日志文件。

解决方案

方案1 使用adb logcat

引用此方法:

> 请注意检查 `adb logcat`。由于Play Services是在另一个进程中运行的,因此其他应用与其通信的过程可能会记录在 `logcat` 中,具体表现为Intent调用。

步骤:
1. 确保电脑上安装了Android Debug Bridge(ADB)工具,并通过USB线连接手机。
2. 打开命令行界面,输入以下指令启用详细日志:
sh
adb logcat -v long --pid <Google Play Services Process ID> --fluent -s "Intent"

3. 在另一个应用或服务调用Google Play ServicesAPI时,通过logcat查看相关的Intent记录。

方案2 使用系统日志和系统跟踪

引用此方法:

> 系统跟踪(System Tracing)是Android的一个工具,可用于保存设备活动到一个日志文件中。在运行于Android 10或更高版本的设备上,这些日志以Perfetto格式保存;而在更早版本的Android上,则以Systrace格式保存。

步骤:
1. 进入手机开发人员选项设置中的“系统跟踪”功能,并确认开启了该功能。
2. 打开应用并进行一段时间的使用,期间手机会自动记录设备活动和性能数据。
3. 使用ADB将生成的日志文件导出至电脑上进行分析:
sh
adb pull /sdcard/SystemTrace.tri .

4. 在命令行中利用sys_trace_dump工具解析日志文件,从而了解哪些应用对电池消耗有较大影响。

通过上述两种方式中的任意一种或两者结合使用,我们可以更好地定位导致高电池耗电的应用。建议根据个人设备的具体版本选择相应的方法进行操作。

正文完