質問: 電池消費量が多い要因を調べる方法について教えていただきたいです。 質問の背景について、 未リリースアプリを実機でテストをしているんですが、アプリ起動後からスマフォの電池消費量の減りが非常に多いことがわかりました。 XcodeのEnergy Impactを見ると以下の図のようになっていました。 ■フォアグラウンド時 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/daf62580d5fc0ffedcf89e9d22d3d645.png) ■バックグラウンド時 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/65db48b5191bd452fdbd6d4d20738880.png) フォアグラウンド時はEnergey ImpactがHighとなっており、またOverheadがバックグラウンド時も8割を超えていました。大変お恥ずかしいですが、Overheadとは具体的に何を示しているのかわかっていません(インスタンスをメモリへ展開しすぎている???) また他のアプリと比較してこの数字は異常なのか普通なのかもわかっていません(恐らく異常かと思いますが。。。) 要因を調べ解決したいです。 なお本アプリは主に以下の機能を実装しています。 ※バックグラウンド時に処理をするようなことはしていません ・メイン画面はTabBar(タブは5つ)で表示 ・MapViewのHybridで地図表示 ・HealthKitによるデータ表示 ・Firebaseサーバーと連携(更新は頻繁ではない) ・使用しているライブラリ pod 'Onboard' pod 'Eureka' pod 'Charts' pod 'RealmSwift' pod 'SDWebImage' pod 'SCLAlertView' pod 'SwiftyJSON' pod 'SwiftGifOrigin' pod 'CocoaLumberjack/Swift' pod 'ChameleonFramework/Swift' pod 'Fabric' pod 'Crashlytics' pod 'GoogleMaps' pod 'PageMenu' pod 'Firebase' pod 'Firebase/Core' pod 'Firebase/Auth' pod 'Firebase/Database' pod 'GoogleSignIn' pod 'FacebookCore' pod 'FacebookLogin' pod 'FacebookShare' pod 'JSQMessagesViewController' pod 'SVProgressHUD' お手数ですが、よろしくお願いいたします。
回答: ご提示頂いている内容からは、何がバッテリー消費につながっているのかの特定はできませんでした。 Networkに関する割合が高いことから、通信しているデータ量が比較的多いものなのではないかという可能性はあります。 Energey Impact Highは、普通に利用中のアプリケーションとしてであれば正常な範囲ではないかと思います。 Overheadとはアプリケーションの動きに関係なく、起動時、スリープ時に消費される電力についての項目です。 例えば、下記ページでは通信時のオーバーヘッドについて説明されています。 Energy Efficiency Guide for iOS Apps: Energy and Networking 通信が発生していない間、端末は通信機能をオフにしていますが、アプリケーションから通信要求が行われると基地局に接続するため電波を出す分、バッテリーを消費します。 アプリケーションでの通信が終わっても、一定時間は次の通信に備えて基地局との接続が維持されます。 これがオーバーヘッドとなります。 対応内容として、上記ページの次のページに通信量や通信回数を減らすためのTipsが記載されています。 ですので、特にバッテリーに直接影響する操作をしていない場合に、Overheadの割合が高くなるのは普通なのではないかと思います。 結局バッテリーがなぜ減るかを特定できていませんが、1つ考えられる要因として、アプリケーション起動中ずっと画面が点いているようであれば、画面表示のためのバッテリー消費があるのではないかと思います。 画面の明るさとバッテリー消費に関連がありそうであれば、特段アプリケーションの処理の問題ではないと考えてよいのではないでしょうか。