・Kindle Fire HD のバッテリ駆動時間をのばすための対策
Android 端末の駆動時間をのばすには、その為のアプリを導入するのが実際的な方法だ。今回使用するアプリは「CPU tuner (Rooted phones) 」。
Google Play - CPU tuner (Rooted phones)
※ 使用の前提として root 権限を得た Kindle Fire HD が必要
このアプリは CPU の使い方をバッテリの現残量に基づいてチューニング出来る便利なもの。使うには root 権限を得た Android 端末が必要。次の項目を設定することで CPU をチューニング出来る。
トリガー
バッテリ残量をトリガーとしてプロファイルを実行する。例えばバッテリ残量が 50% になった時点で実行するプロファイルが設定されている場合、バッテリ残量が 50% になった時点でそれを実行する。
プロファイル
端末のネットワークサービスの有効化/無効化や、ガバナー、CPU の周波数の設定ができる。トリガーで設定した時点で設定したプロファイルが実行される。
仮想ガバナー
CPU の調速。 CPU をどのように動作させるかを設定できる。無茶な設定をすると動作がおかしくなる恐れがある。
・CPU tuner を使ってスリープモード時のバッテリ消費量を抑える
今回は CPU tuner の使用方法も兼ねた一例として、駆動中の省電力化は重視せず、「スリープ中の消費電力を抑える」為にこのアプリを使ってみる。
このような「スリープ中のバックグラウンドでの動作を抑えることでバッテリの駆動時間を伸ばす」方法は、待受する時間の長いスマートフォンのような端末で非常に効果的な方法なので、そのような Android 端末でこそ試す価値がある。 Kindle Fire HD のようなタブレット端末でも使う頻度が高くない(スリープさせておく時間が長い)場合は効果的だろう。
・CPU tuner の設定
はじめからすべてカスタマイズするのは骨が折れるので、用意されているプリセットを読み込んで、それを少しカスタマイズして使うのがよいだろう。今回は「設定」→「バックアップと復元の設定」→「構成の管理」から「洗練」のプリセットを読み込んだ。
次に「設定」→「ユーザーインターフェース」→「経験レベル」を「パワーユーザー」に設定して詳細設定が出来るようにしておく。
「設定」→「CPU 設定」→「ユーザスペースガバナー表示」を有効にする。
・仮想ガバナーの設定
仮想ガバナーは洗練プリセットの他に「ユーザースペース」を追加する。これは CPU の周波数をユーザー設定で静的に設定できる。
・プロファイルの設定
プロファイルは次のように「通常」動作時と「スクリーンオフ(スリープモード)」時のふたつのみを作った。
「通常」動作時は通常に動作するように設定。スリープモード時からの復帰のためにサービスの「バックグラウンドデータ」を有効化して「機内モード」を無効化する(下記スリープモード時のプロファイルの逆)。
スリープモード時は省電力化の為にサービスの「バックグラウンドデータ」を無効化し「機内モード」を有効化してネットワークサービスを無効化する(機内モードを有効にすればバックグラウンドデータを無効にしなくても良いと思われるが、念のため)。ガバナーを「ユーザースペース」に設定し周波数を 350 MHz のシステム最小値以外使わない設定にした(スリープモード時には CPU パワーを必要としないと考えると、固定化してしまった方が効率が良いと思われる)。周波数が少なければそれすなわち省電力なので、バッテリの駆動時間がのびる。
・トリガーの設定
トリガーはバッテリ残量ごとのトリガーを全部消して次のようなスリープモード待機だけのトリガーを作った。スリープモード時に「スクリーンオフ」プロパティになるように設定。
設定が完了したら「設定」→「CPU tuner の有効化」を選択して CPU tuner を実行する。
一度スリープモードにしてから復帰させてみて、ログでプロファイルの変更が意図したとおりに行われているのが確認できれば完了。
実際試してみたところ一晩スリープモードにさせても 1% もバッテリを消費していなかったので効果はあると思われる。 ただし、インストールされているアプリのバックグラウンドでの動作によって左右されるものなので、どんな状態でも効果があるとは限らない。
・注意点
この設定だとスクリーンオフから復帰した時に機内モードを無効化してネットワークサービスの有効化を行うので、ネットワークへの接続に若干時間がかかるようになる。また、ハイパフォーマンスなゲームをプレイする場合は仮想ガバナーが「通常」だと動作がもっさりする可能性があるので、仮想ガバナーを「フルスピード」に設定する(もしくは自分でチューニングする)のがよいかもしれない。
CPU tuner を使えば、もちろん通常使用時の CPU のチューニングも出来る。スリープ時のみでなく通常使用時の駆動時間を伸ばしたい場合は、例えば、仮想ガバナーを「バッテリ節約」にして、使用する周波数の最高値を700 MHz 位まで下げるプロファイルを設定すると、端末の動作は明らかにもっさりするが、電力を使わなくなるのでバッテリは減りにくくなる筈である。筈というのは、結局のところスピードを出さなければならない場面でも無理矢理スピードを抑えることになるので、高負荷の処理を長い間させるような場合ではかえって効率が悪くなっているかもしれないからだ。
CPU tuner は root 権限に依存して動作するので、端末のアップデート等で root 権限を得る事が出来なくなった場合、正常に動作しない。