【问题标题】:Android programmatically get battery usage per applicationAndroid 以编程方式获取每个应用程序的电池使用情况
【发布时间】:2014-04-26 12:43:22
【问题描述】:

android 如何获取每个应用程序的电池使用情况。我已经看到提供每个应用程序使用的电池的应用程序,但我没有找到 this.reference 应用程序的 api 链接application that perform the same

【问题讨论】:

  • 没有记录和支持的 API。从 Android 4.4 开始,它也被阻止——只有系统应用程序才能侵入操作系统以尝试收集这些数据。而且数据本来就不是特别好。
  • 但许多应用程序声称它们提供有关每个应用程序的电池使用情况的信息。
  • 所有内容都是由侵入操作系统以尝试获取这些数据的开发人员编写的。除了可以在系统分区上安装这些应用程序的 root 设备用户之外,没有一个可以在 Android 4.4+ 上运行。而且没有一个数据特别准确,因为只有经过特殊检测的设备(例如,Qualcomm MDP 系列)才能提供细粒度的实际用电量。相反,操作系统会根据一些粗略的启发式方法进行猜测,并将该数据用于“设置”中的“电池”屏幕。
  • 您好,请您提供一下他们是如何做到这一点的信息。
  • 也许 cmets 很旧,但至少目前它们不正确,因为像 GSam Battery Monitor 这样的应用可以访问每个应用的电池统计信息,也不需要 root 访问权限

标签: android batterylevel


【解决方案1】:

在系统级别,当我们运行命令“adb shell dumpsys batterystats”时,它会显示获取每个应用程序功耗(Power Profiling)所需的一些信息

下面给出的输出被重定向到一个输出文件。我们可以解析它并使用一个可以在 Android 外部运行的 Java 应用程序中的以下部分。

自上次充满电后的设备电池使用情况 排放量(下限):63 排放量(上限):69 屏幕开启时排放量:38 关屏放电量:31

预计耗电量 (mAh): 容量:2300,计算排水量:1007,实际排水量:1449-1587 下落不明:442 屏幕:398 电话:108 用户标识 1000:97.0 无线网络:75.4 空闲:61.6 用户界面 0:57.6 UID u0a157:32.1 电池待机:29.7 UID u0a163:21.8 UID u0a8:20.1 用户界面 1013:14.7 UID u0a10:13.2 uid u0a22:12.6 UID u0a70:11.5 UID u0a99:10.1 Uid u0a4:9.40 UID u0a20:7.92 UID u0a93:5.49 用户标识 1001:5.47 UID u0a92:5.35 UID u0a94:2.27 UID u0a16:2.22 UID u0a56:0.713 UID u0a67:0.675 UID u0a165:0.670 uid u0a34: 0.589

是的,这里的问题仍未得到解答,我们如何通过一个 android 应用程序做到这一点。

Battery Stats Output Logs

【讨论】:

  • 提供的链接无效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 2017-09-01
  • 2013-09-11
  • 1970-01-01
相关资源
最近更新 更多