为什么仪器始终显示我的 GPS 和位置使用情况?
Why does instruments show my gps and location usage as always on?
我正在尝试减少我的应用程序的电池使用量。我想使用 Xcode 工具或仪器在前后进行测量,以验证我是否有所改进。
我在测量基础知识时遇到问题。我想确认我只是在屏幕上测量需要它的位置。问题是仪器认为我一直在使用设备的 GPS/location。
当我使用仪器监控过程时,它显示 gps 始终打开:
xcode 的能量监视器也是如此:
我在真实设备上测量,我已经尝试过:
- 从不跟踪我的代码(注释掉
locationManager.startUpdatingLocation()
)
- 关闭可能正在使用位置的其他后台应用程序"while using"
- 拒绝所有需要定位的应用程序的权限"Always"
- 我依赖的禁用框架(Hockey、Mixpanel)可能正在使用位置
仪器仍然显示持续的位置使用情况。
导致 GPS 显示已关闭的唯一两件事是:
- 禁用 phone
的所有定位服务
- 从 phone 底部向上滑动可显示用于切换蓝牙、wifi 和飞行模式的设置屏幕。 (我什么都不用做,只是显示屏幕)
第一个部分开始时根本没有 phone 的位置服务,第二个绿色部分向上滑动以显示设置面板:
知道会发生什么吗?
Xcode/Instruments 7.3
找到了,感谢this answer。
我在屏幕上还有一个 mapView
,它可以跟踪用户的位置。这与我的其他位置监控完全分开,我没有意识到。
在 viewWillDissappear
中设置 mapView.showsUserLocation = false
停止使用 GPS,这很好。
我现在正在研究如何重新使用地图中的位置,而不是创建我自己的单独监视器(并且还会降低地图位置的准确性和频率)。
我正在尝试减少我的应用程序的电池使用量。我想使用 Xcode 工具或仪器在前后进行测量,以验证我是否有所改进。
我在测量基础知识时遇到问题。我想确认我只是在屏幕上测量需要它的位置。问题是仪器认为我一直在使用设备的 GPS/location。
当我使用仪器监控过程时,它显示 gps 始终打开:
xcode 的能量监视器也是如此:
我在真实设备上测量,我已经尝试过:
- 从不跟踪我的代码(注释掉
locationManager.startUpdatingLocation()
) - 关闭可能正在使用位置的其他后台应用程序"while using"
- 拒绝所有需要定位的应用程序的权限"Always"
- 我依赖的禁用框架(Hockey、Mixpanel)可能正在使用位置
仪器仍然显示持续的位置使用情况。
导致 GPS 显示已关闭的唯一两件事是:
- 禁用 phone 的所有定位服务
- 从 phone 底部向上滑动可显示用于切换蓝牙、wifi 和飞行模式的设置屏幕。 (我什么都不用做,只是显示屏幕)
第一个部分开始时根本没有 phone 的位置服务,第二个绿色部分向上滑动以显示设置面板:
知道会发生什么吗?
Xcode/Instruments 7.3
找到了,感谢this answer。
我在屏幕上还有一个 mapView
,它可以跟踪用户的位置。这与我的其他位置监控完全分开,我没有意识到。
在 viewWillDissappear
中设置 mapView.showsUserLocation = false
停止使用 GPS,这很好。
我现在正在研究如何重新使用地图中的位置,而不是创建我自己的单独监视器(并且还会降低地图位置的准确性和频率)。