- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
使用此代码,我可以找到手机的电池电量:
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float percent = (level / (float)scale) * 100;
但是如何获取手机上安装的应用程序的电池使用详情,包括屏幕的详情,如下图所示?
最佳答案
测量特定应用或手机硬件特定部分的功耗并不容易。在公开的 Google Developer API 中,不可能以简单的方式做到这一点。还有其他一些非常复杂的方法。对于每部 Android 智能手机,Google 要求制造商添加一个所谓的 power profile XML 到设备。它们看起来像这样
<item name="screen.on">0.1</item> <!-- ~200mA -->
<item name="screen.full">0.1</item> <!-- ~300mA -->
<item name="bluetooth.active">0.1</item> <!-- Bluetooth data transfer, ~10mA -->
<item name="bluetooth.on">0.1</item> <!-- Bluetooth on & connectable, but not connected, ~0.1mA -->
<item name="wifi.on">0.1</item> <!-- ~3mA -->
<item name="wifi.active">0.1</item> <!-- WIFI data transfer, ~200mA -->
<item name="wifi.scan">0.1</item>
它们告诉您组件的每个硬件状态消耗了多少电流(例如,Wifi 有三种状态,CPU 有 10 种等)。现在 Android 是基于 Linux 的,这允许您检查每个硬件组件的当前状态。例如文件
/sys/devices/virtual/leds/lcd-backlight/brightness
为您提供 LCD 的当前状态(请注意,此 no 需要 root 访问权限)。对于每个硬件组件,都存在这样的路径。如果您现在想要准确测量应用程序消耗的能量,您需要编写一个服务来监控应用程序何时处于 Activity 状态以及当前的硬件状态是什么。有了这些信息,您就可以计算能耗。
还有一个应用是开源的,叫做PowerTutor (这里是 Play-Store link 和她,你会找到 source code 。它完全符合我刚才的解释。他们还发表了一篇科学的 paper 关于他们的方法有多准确(它做得很好)。
现在问题来了。几年前,我遇到了测量某些应用程序的功耗的问题。一位客户希望我们评估他们的确切功耗。最后,我们发现分析所依据的功率曲线不够准确。似乎制造商只是在 XML 中添加了一些甚至与设备无关的值。我们拥有来自 20 个不同品牌的 100 多种不同设备,其中只有少数似乎在其 XML 中具有与设备相关的值。
最后我可以说,不要花太多时间在软件端测量实际功耗,这不值得。使用真正的万用表,直接测量硬件。
关于android - 如何获取已安装应用的电池使用详情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35449082/
我知道这对极客来说似乎很基本。但我想说清楚。 当我想使用 Win32 DLL 时,通常我只调用像 LoadLibrary() 和 GetProcAdderss() 这样的 API。但是最近在用Dire
如何通过带有 FQL 的 javascript 获取用户国家/地区。 FB.API("/me") 不包含国家信息 [我认为],那么我怎样才能在一次查询中获取国家和用户详细信息? 谢谢。 最佳答案 用户
MVC @Html.ActionLink 编辑,如果您运行像 JAWS 这样的合规程序,只需说“编辑”视觉就可以了,但如果您作为视障人士进行查找。数以千计的“编辑”无法帮助您了解自己的位置。我需要合规
我正在尝试使用其 loopback-component-passport 来使 Facebook 登录与环回一起使用。插入。 我已经在providers.json中配置了应用程序详细信息,现在如果我访
收到此错误消息“GIT 配置无效。您需要获得存储库的访问权限才能发布任何更改。详细信息:给定租户的帐户名称不正确。”登录 Azure 数据工厂时。无法发布或保存任何更改。 最佳答案 检查对连接到 Az
我是一名优秀的程序员,十分优秀!