ios";“聪明的”;位置跟踪器和电池消耗

ios";“聪明的”;位置跟踪器和电池消耗,ios,gps,location,battery,Ios,Gps,Location,Battery,我正在创建一个类似于“移动”应用程序的活动跟踪器,该应用程序旨在跟踪步骤、距离、卡路里和活动时间 对于Iphone5s+设备,我使用内置的M7芯片来确定步骤,然后根据这些步骤对其余部分进行估计。对于M7设备,我从不使用GPS。基本上没有电池耗电,插值数字足够合理,满足需要。这可以合理地获取行走/跑步数据 不过,为了至少支持Iphone5和Iphone4,我需要使用GPS获取位置,然后从距离中插入步长和卡路里。我遇到了严重的电池耗电问题(有点出乎意料),我正在寻求如何将其最小化的建议。除了速度之外

我正在创建一个类似于“移动”应用程序的活动跟踪器,该应用程序旨在跟踪步骤、距离、卡路里和活动时间

对于Iphone5s+设备,我使用内置的M7芯片来确定步骤,然后根据这些步骤对其余部分进行估计。对于M7设备,我从不使用GPS。基本上没有电池耗电,插值数字足够合理,满足需要。这可以合理地获取行走/跑步数据

不过,为了至少支持Iphone5和Iphone4,我需要使用GPS获取位置,然后从距离中插入步长和卡路里。我遇到了严重的电池耗电问题(有点出乎意料),我正在寻求如何将其最小化的建议。除了速度之外,我还使用加速计帮助对活动类型(步行、跑步、骑自行车、交通)进行有根据的猜测

我尝试过一些GPS优化方法:

  • 延迟更新:Iphone5和最低版本的IOS支持此功能。执行此操作的代码很简单,但是设备是否实际使用它是值得怀疑的。我只见过它在四分之一的设备上工作,而在这些设备上它经常工作。3其他设备从未延迟来自同一代码的更新。另一位用户建议使用其他应用程序来阻止设备睡眠,包括当我还安装了“移动”时。因此,除了理论之外,这没有多大帮助
  • 降低准确性:降低连续位置轮询的准确性。我从高处开始,但下降到10米,然后是几百米,等等。这似乎没有帮助,而且投票似乎仍然以固定的间隔进行
  • 开始监视显著位置更改:为了减少用户可能一次几个小时不移动(特别是在夜间)时无休止的gps轮询,我仅在设备停止移动任意2分钟后才从连续轮询切换到显著更改。然后,在任何重要的位置更新之后,我重新启用连续跟踪。它的工作原理和预期的差不多——如果它停止跟踪,那么电池消耗就会减慢,当它持续恢复时,电池消耗就会恢复。此外,如果用户开始行走,则无法保证在一段时间内会发生重大的运动事件。这是非常差的准确性。有时它似乎根本就没有恢复
  • “移动”应用程序和其他应用程序能够很好地跟踪位置,而且电池电量消耗可观,这给我留下了相对深刻的印象。它可以持续一天的大部分时间,直到需要充电。根据我的代码,用户在几个小时内报告电池电量耗尽

    什么样的优化可以用来改善这一点,但仍然保持一个合理的精度跟踪运动

    进度更新: 开始监视重要位置更改。我设置了一个定时器,在2分钟不活动(不移动)后切换到重要监控。然后,如果发生任何重大变化,或者应用程序重新打开后变为活动状态,则会再次恢复正常的位置跟踪。这似乎很有效。我的手机仍然可以在8小时内从100%变为10%。这是一款老式iphone,电池有一些问题,但通常在没有应用程序运行的情况下,它可能会在一夜之间失去30-40%的电量。我需要进行更多测试,但StartMonitoring重大位置更改似乎仍需要一些电池

    此外,startMonitoringSignificantLocationChanges在重新启动应用程序时存在一些预期的准确性问题。在农村环境中,它可以行驶数公里后重新启动。这对于长途驾驶来说是可以的,但是如果我想步行30分钟,它可能会完全忽略这一点。在城市环境中,它似乎在2-3个移动街区内启动,这是合理的

    即使我使用在计时器上停止+启动的连续位置跟踪来检查移动,我仍然可能遇到最坏的情况,即在恢复连续日志记录之前,重启之间有一分钟的延迟

    进度更新2

    上面描述的重大更改更新对我来说有一个致命的缺陷:它们的启动速度总是不够快。有时似乎需要1-2英里


    作为一种更好的方法,我尝试保持连续的位置更新,但在设备不移动时将“desiredAccuracy”属性从高精度切换到低精度。这将在不活动期间基本上关闭GPS接收器。我一直在试验100米到1公里的无活动精度,结果很有希望。与仅使用重大变更监控相比,它似乎使用了稍微多一些的batter,但它似乎也更具响应性。

    以上建议的解决方案都不起作用。 您需要GPS,如果您指定为全精度(
    CLLocationAcuracyBest
    ),则会启用GPS

    如果我没记错的话,CLLocationAcuracyBest和CLLocationAcuracyBest之间存在差异,因为后者使用了额外的加速度传感器,总的来说使用了更多的电池

    没有半电池GPS模式
    GPS芯片是否启用

    对于距离计算,您需要GPS、手机发射塔和Wlan位置将不起作用。 只有无线局域网定位的电池塔才能节省电池

    在Iphone4上,这种全精度GPS应用程序(如my)持续约8小时,直到电池电量不足


    如果用户能从应用程序中获益,8小时就足够了。

    请您说明电池电量耗尽前移动的工作时间。你当前的应用程序有多少小时?我需要测试这个比较。在单个设备上进行主动开发意味着每天都要进行全天的测试。也许周末我可以做这些专门的测试。好吧,我参加了一次hihking巡回赛。电池的续航时间比我的健身时间(或计划的徒步旅行的时间)要长,所以8个小时后仍然有电池重新充电