首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测量我的应用程序在Android上的功耗?

如何测量我的应用程序在Android上的功耗?
EN

Stack Overflow用户
提问于 2016-08-18 07:35:04
回答 1查看 5.3K关注 0票数 5

我已经开发了一个Android应用程序,我想知道我的应用程序在Android设备上的耗电量。我在堆栈溢出上遇到了许多线程,但没有一个线程帮了我。

在Android中有没有任何应用程序可以测量我的应用程序的耗电量,或者其他可行的方法?

编辑过的

this Stack Overflow post的答案

我使用了“电池历史学家”,并生成了batteryinfo.txt和batteryinfo.html

Batteryinfo.txt如下所示

代码语言:javascript
复制
Battery History:

      -3m04s883ms 090 6c120104 status=discharging health=overheat plug=none temp=0 volt=3797 +screen +phone_scanning +wifi +wifi_running +wake_lock +sensor brightness=bright phone_state=out

      -3m02s651ms 090 6c1a0104 status=charging plug=usb volt=4123 +plugged

      -3m00s087ms 090 6c1a0104 volt=4090

      -2m57s951ms 090 6c1a0104 volt=4125

      -2m43s775ms 090 6c1a0104 volt=4123

      -2m41s563ms 087 6c1a0104

      -2m31s787ms 087 6c1a0104 volt=4114

      -2m28s300ms 087 6c1a0104 volt=4112

      -2m26s037ms 087 6c1a0104 volt=4114

      -2m22s891ms 087 6c1a0104 volt=4112

      -2m20s797ms 087 6c1a0104 volt=4134

      -2m08s632ms 087 6c1a0104 volt=3849

      -2m06s567ms 083 6c1a0104 volt=3838

      -2m04s370ms 083 6c1a0104 volt=4123

      -1m43s700ms 087 6c1a0104 volt=4122

      -1m32s936ms 087 6c1a0104 volt=4007

      -1m22s724ms 083 6c1a0104 health=good

      -1m02s524ms 080 6c1a0104 volt=3957



Per-PID Stats:

PID 166 wake time: +203ms

PID 109 wake time: +2m57s295ms



Statistics since last charge:

System starts: 0, currently on battery: false

Time on battery: 2s 232ms (0.0%) realtime, 2s 232ms (0.0%) uptime

Total run time: 3d 15h 52m 45s 402ms realtime, 1d 9h 16m 33s 630ms uptime, 

Screen on: 2s 231ms (100.0%), Input events: 0, Active phone call: 0ms (0.0%)

Screen brightnesses: bright 2s 231ms (100.0%)

Kernel Wake lock "PowerManagerService": 2s 191ms  (0 times) realtime

Kernel Wake lock "power-supply": 412ms  (1 times) realtime

Kernel Wake lock "main": 2s 191ms  (0 times) realtime

Total received: 0B, Total sent: 0B

Total full wakelock time: 2s 197ms , Total partial waklock time: 2s 203ms 

Signal levels: none 2s 231ms (100.0%) 0x

Signal scanning time: 2s 231ms 

Radio types: none 2s 231ms (100.0%) 0x

Radio data uptime when unplugged: 0 ms

Wifi on: 2s 231ms (100.0%), Wifi running: 2s 231ms (100.0%), Bluetooth on: 0ms (0.0%)



Device battery use since last full charge

Amount discharged (lower bound): 0

Amount discharged (upper bound): 0

Amount discharged while screen on: 0

Amount discharged while screen off: 0



#1000:

User activity: 2 other

Sensor 2: 2s 206ms realtime (0 times)

#1013:

Wake lock AudioIn_369: 2s 203ms partial (1 times) realtime

#10010:

Apk com.android.providers.media:

  Service com.android.providers.media.MtpService:

    Created for: 0ms  uptime

    Starts: 1, launches: 1

#10029:

Wake lock Samsung Recognition Service: 2s 197ms full (0 times) realtime



Statistics since last unplugged:

Time on battery: 2s 232ms (1.2%) realtime, 2s 232ms (1.2%) uptime

Total run time: 3m 4s 912ms realtime, 3m 4s 911ms uptime, 

Screen on: 2s 232ms (100.0%), Input events: 0, Active phone call: 0ms (0.0%)

Screen brightnesses: bright 2s 232ms (100.0%)

Kernel Wake lock "PowerManagerService": 2s 191ms  (0 times) realtime

Kernel Wake lock "power-supply": 412ms  (1 times) realtime

Kernel Wake lock "main": 2s 191ms  (0 times) realtime

Total received: 0B, Total sent: 0B

Total full wakelock time: 2s 232ms , Total partial waklock time: 2s 232ms 

Signal levels: none 2s 232ms (100.0%) 0x

Signal scanning time: 2s 232ms 

Radio types: none 2s 232ms (100.0%) 0x

Radio data uptime when unplugged: 0 ms

Wifi on: 2s 232ms (100.0%), Wifi running: 2s 232ms (100.0%), Bluetooth on: 0ms (0.0%)



Device is currently plugged into power

  Last discharge cycle start level: 90

  Last discharge cycle end level: 90

  Amount discharged while screen on: 0

  Amount discharged while screen off: 0



 #1000:

   User activity: 2 other

   Sensor 2: 2s 232ms realtime (0 times)

 #1013:

   Wake lock AudioIn_369: 2s 232ms partial (1 times) realtime

 #10010:

   Apk com.android.providers.media:

  Service com.android.providers.media.MtpService:

    Created for: 0ms  uptime

    Starts: 1, launches: 1

 #10029:

    Wake lock Samsung Recognition Service: 2s 232ms full (0 times) realtime

当我打开Batteryinfo.html时,它会显示“无法找到结束时”。

我按照下面的文章中的答案并注释掉了前面提到的代码。

Battery historian cannot find end time android

这一次,当我运行命令从batteryinfo.html生成batteryinfo.html时,它会显示一个错误(这将引用注释掉的3行代码)。

注意:由于我的设备不支持使用电池统计,所以我使用电池信息。

我想打开包含细节的batteryinfo.html

EN

回答 1

Stack Overflow用户

发布于 2016-09-14 15:30:04

我不知道你说的是什么意思,看不懂背景中的估计值。

看看我在Android App power consumption上的答案

“首先,Google Play的电源导师已经过时了。我检查了它的源代码,发现功率估计模型是针对一些旧的移动模式的,电源导师的值比实际的耗电量小得多。

因此,我建议使用电池历史学家,这是由谷歌开发,用于估计每个应用程序的电池消耗。但它是用Python/Go编写的。它将在html文件中显示硬件调用。您可以在相应的文本文件中找到每个应用程序的电池消耗量。

https://developer.android.com/studio/profile/battery-historian.html

它将创建一个batterystats.txt,在设置中显示与它完全相同的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39012385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档