iOS 9: низкое энергопотребление —> должны ли разработчики к этому готовиться?

В программном докладе WWDC 2015 было упомянуто, что батареи будут работать на один час дольше и имеют состояние низкого энергопотребления, которое может продлить срок службы батареи еще на три часа.

Должны ли разработчики iOS-приложений что-то делать для этой новой функции? Есть ли что-то, что их приложения должны делать (или не делать) при низком заряде батареи?


person Jason Hocker    schedule 16.06.2015    source источник
comment
Я не думаю, что вам нужно беспокоиться об этом явно, но неявно вы, вероятно, не сможете подключиться к какой-либо сети или Bluetooth-устройству, а некоторые визуальные эффекты (переходы, движения и т. д.) будут отключены в этот режим - в целом вам нужно справиться с нехваткой ресурсов в приложении, как обычно.   -  person holex    schedule 16.06.2015


Ответы (4)


Похоже, это не имеет ничего общего со сторонними приложениями и больше с самой iOS. Вот нашел статью:

http://www.redmondpie.com/how-ios-9-low-power-mode-for-battery-life-saving-works/

Вот еще одна статья, которая, кажется, подтверждает, что это только для самой iOS (и фоновых процессов, таких как загрузка, которые могут повлиять на некоторые приложения): http://www.idownloadblog.com/2015/06/08/low-power-mode-in-ios-9/

Насколько мне известно, ничего из этого не требует взаимодействия с разработчиком. С точки зрения Apple, это было бы плохой идеей, поскольку тогда разработчики могли бы выбирать, подчиняться им или нет, и это сделало бы их режим энергосбережения бесполезным (поскольку многие разработчики не захотели бы ухудшать работу своего приложения).

Кстати, я рад, что iOS 9 больше не будет загораться на моем экране, если мое устройство лежит лицевой стороной вниз на столе, и я получаю уведомление. Если вы читали, есть несколько новых функций энергосбережения, которые не предполагают использование режима низкого энергопотребления.

person DiscoveryOV    schedule 16.06.2015
comment
по сути, это лишает возможности выполнять фоновую активность... поэтому определенно требуется взаимодействие с разработчиком, если ваше приложение полагается на надлежащую фоновую функциональность. - person Gukki5; 01.08.2017

Возможно, это связано с новым дискреционные сетевые задачи, представленные в iOS 7 и других API, которые сокращают время работы от батареи. Ознакомьтесь со следующими сессиями с WWDC 2014:

Написание энергоэффективного кода, часть 1

Написание энергоэффективного кода, часть 2

person Adam    schedule 12.07.2015

Вы можете либо зарегистрироваться для NSNotification для NSProcessInfoPowerStateDidChangeNotification

Или используйте этот NSProcessInfo.processInfo().isLowPowerModeEnabled

https://developer.apple.com/library/prerelease/ios/documentation/Performance/Conceptual/EnergyGuide-iOS/LowPowerMode.html

person honcheng    schedule 27.08.2015

Обновление для 9.0.2: к сожалению, приведенный выше ответ неверен (уже). В расширенном режиме приложения больше не могут реагировать на push-сообщения, поскольку соответствующая функция

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo

не называется.

Интересно, как сервисы обмена сообщениями обходят это? Кто-нибудь понял?

См. также мой явный вопрос - с более подробной информацией по этому вопросу: Режим экономии — didReceiveRemoteNotification не вызывается

person Werner Kratochwil    schedule 15.10.2015
comment
Я хотел бы оставить комментарий, но пока не хватает репутации. Я счел важным добавить эту информацию, поэтому я выбрал этот путь. Я уже задал новый вопрос и добавил ссылку - см. выше. Извините, я не понимаю, что вы имеете в виду, Flexicoder. - person Werner Kratochwil; 19.10.2015