如何获取iOS应用程序的电池消耗值(x毫安时/分钟)?
我目前正在努力提高我们正在开发的应用程序的电池使用率 我唯一发现的是越狱解决方案的百分比() 我没有找到绝对值,例如3.4 mAh/min 我也没有找到评估电池消耗的iOS指南 理想情况下,我希望看到这样的情况:如何获取iOS应用程序的电池消耗值(x毫安时/分钟)?,ios,objective-c,battery,batterylevel,Ios,Objective C,Battery,Batterylevel,我目前正在努力提高我们正在开发的应用程序的电池使用率 我唯一发现的是越狱解决方案的百分比() 我没有找到绝对值,例如3.4 mAh/min 我也没有找到评估电池消耗的iOS指南 理想情况下,我希望看到这样的情况: 谷歌分析SDK:0.4毫安时/分钟 蓝牙SDK:1.0毫安时/分钟 API SDK:2.0毫安时/分钟 电池医生提供的东西: 这可能吗 谢谢你的帮助 Instruments不会给你这样一幅美丽的画面,但它会向你展示CPU、GPU的使用情况,这通常应该是电池消耗的一个指标,并且肯定
- 谷歌分析SDK:0.4毫安时/分钟
- 蓝牙SDK:1.0毫安时/分钟
- API SDK:2.0毫安时/分钟
谢谢你的帮助 Instruments不会给你这样一幅美丽的画面,但它会向你展示CPU、GPU的使用情况,这通常应该是电池消耗的一个指标,并且肯定是一个很好的方法来查看你的应用程序的性能/硬件利用率。我们在使用上取得了不同的成功,这依赖于私有API 因此,如果你在苹果商店上部署你的应用程序,你就不能使用它,但在部署到TestFlight或类似的beta用户应用程序商店时,它会很有用
Sami经过几天的测试,我强烈怀疑我们看到的这些数字不是设备上的实际测量值,它们似乎太恒定了,只有一些实际运行的应用程序在列表中 我有一个理论,他们有某种有限的数据库,如果手机上有任何应用程序与此列表匹配,它就包括在内 它仍然可以作为一个关于什么用了很多,什么用了一点的提示。但我认为你不应该把它看成是你手机上的“真实”号码。有人能证实或反驳这个理论吗 这也解释了为什么您无法找到获取此信息的方法 还有两个几乎完全相同的应用程序,一个是橙色的,另一个是绿色的电池图标,似乎包括和排除了相同的应用程序。这看起来也有点可疑。。。 还有第三个应用程序“Battery Lite”,类似但没有mAh/min读数(奇怪的单位btw)试试看,它基本上从
UIDevice
窃取整个电池数据字典,而不使用任何私人API。它公开了大量信息:
{
AdapterDetails = {
Amperage = 1000;
Description = "usb host";
FamilyCode = "-536854528";
PMUConfiguration = 1000;
Watts = 5;
};
AdapterInfo = 16384;
Amperage = 1000;
AppleRawCurrentCapacity = 1279;
AppleRawMaxCapacity = 1275;
AtCriticalLevel = 0;
AtWarnLevel = 0;
BatteryData = {
BatterySerialNumber = REDACTED;
ChemID = 355;
CycleCount = 524;
DesignCapacity = 1420;
Flags = 640;
FullAvailableCapacity = 1325;
ManufactureDate = REDACTED;
MaxCapacity = 1273;
MfgData = REDACTED;
QmaxCell0 = 1350;
StateOfCharge = 100;
Voltage = 4194;
};
BatteryInstalled = 1;
BatteryKey = "0003-default";
BootBBCapacity = 52;
BootCapacityEstimate = 2;
BootVoltage = 3518;
CFBundleIdentifier = "com.apple.driver.AppleD1815PMU";
ChargerConfiguration = 990;
CurrentCapacity = 1275;
CycleCount = 524;
DesignCapacity = 1420;
ExternalChargeCapable = 1;
ExternalConnected = 1;
FullyCharged = 1;
IOClass = AppleD1815PMUPowerSource;
IOFunctionParent64000000 = <>;
IOGeneralInterest = "IOCommand is not serializable";
IOInterruptControllers = (
IOInterruptController34000000,
IOInterruptController34000000,
IOInterruptController34000000,
IOInterruptController34000000
);
IOInterruptSpecifiers = (
<03000000>,
<26000000>,
<04000000>,
<24000000>
);
IOMatchCategory = AppleD1815PMUPowerSource;
IOPowerManagement = {
CurrentPowerState = 2;
DevicePowerState = 2;
MaxPowerState = 2;
};
IOProbeScore = 0;
IOProviderClass = AppleD1815PMU;
InstantAmperage = 0;
IsCharging = 0;
Location = 0;
Manufacturer = A;
MaxCapacity = 1275;
Model = "0003-A";
Serial = REDACTED;
Temperature = 2590;
TimeRemaining = 0;
UpdateTime = 1461830702;
Voltage = 4182;
"battery-data" = {
"0003-default" = <...>;
"0004-default" = <...>;
"0005-default" = <...};
"built-in" = 1;
}
{
适配器详细信息={
安培数=1000;
Description=“usb主机”;
FamilyCode=“-536854528”;
pmu配置=1000;
瓦特=5;
};
AdapterInfo=16384;
安培数=1000;
AppleRawCurrentCapacity=1279;
AppleRawMaxCapacity=1275;
ATCriticaleLevel=0;
AtWarnLevel=0;
电池数据={
BatterySerialNumber=已编辑;
ChemID=355;
循环计数=524;
设计容量=1420;
旗帜=640;
全可用容量=1325;
制造日期=修订日期;
最大容量=1273;
MfgData=修订版;
QmaxCell0=1350;
充电状态=100;
电压=4194;
};
电池电量=1;
BatteryKey=“0003默认值”;
容量=52;
BootCapacityEstimate=2;
启动电压=3518;
CFBundleIdentifier=“com.apple.driver.AppleD1815PMU”;
充电器配置=990;
电流容量=1275;
循环计数=524;
设计容量=1420;
外部可充电=1;
外部连接=1;
完全充电=1;
IOClass=Appled1815PMU电源;
IOFunctionParent64000000=;
iogenerallinterest=“IOCommand不可序列化”;
IoInterruptController=(
IOInterruptController340000000,
IOInterruptController340000000,
IOInterruptController340000000,
IOInterruptController340000000
);
IOInterruptSpecifiers=(
,
,
,
);
IOMatchCategory=Appled1815PMU电源;
IOPower管理={
CurrentPowerState=2;
DevicePowerState=2;
MaxPowerState=2;
};
眼压评分=0;
IOProviderClass=AppleD1815PMU;
年龄=0;
放电=0;
位置=0;
制造商=A;
最大容量=1275;
型号=“0003-A”;
序列=编辑;
温度=2590;
剩余时间=0;
更新时间=1461830702;
电压=4182;
“电池数据”={
“0003默认值”=;
“0004默认值”=;
“0005默认值”=此github演示只提供电池电量和电池状态。它不提供应用程序消耗的电池。你能做到这一点吗?@有趣的是,在这方面取得了任何成功吗?需要明确的是:没有毫安时/分钟这样的东西。这是一个完全虚构的测量单位,没有任何意义。功耗通常以毫安(mA)来测量,或瓦特(W)。这并不提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论-您可以随时对自己的帖子发表评论,一旦您有足够的评论,您就可以发表评论。即使这没有提供明确的答案,但它确实提供了一个可能的答案,说明我们无法找到信息的原因我们寻求帮助。