Android端末の節電に挑戦。Taskerの使い方その2

| | コメント(0) | トラックバック(0) この記事をはてなブックマークに追加

Taskerの使い方その2。画面OFFで節電モードになるプロファイルを作ってみます。
日本は東日本大震災に見舞われて大変な被害が出ています。私は東京在住なので地震や津波の直接被害はほとんど受けてないですが、東京電力の計画停電や福島原発の動向などで、テレビやネットで情報を収集する日々。電気が通っていることが当たり前のことではなくなってしまいました。

で、スマートフォンの話なんですが言うまでもなく携帯電話よりもバッテリーの持ちが悪いです。IS04ももちろん例外じゃないです。
計画停電もそうなんですが、なにより被災地の方々がAndroid端末を使っている場合にバッテリーの持ちが悪いというのは致命的です。
そこで今からでもTaskerを使った消費電力節約について、書いてみようと思います。

1. どうやって節電するか

端末設定で電池使用量を確認してみると、上位にはおそらく「セルスタンバイ」「アイドル状態」「ディスプレイ」あたりがきているんじゃないかと思います。
%表示は電子使用時間内での使用割合ですが、今回の狙いは「セルスタンバイ」で消費する電力を節約することです。
セルスタンバイというのは3G回線等を使っての通信。IS04ならAUの、T-01CならDOCOMOのアンテナを探すのもこれです。

2. 実際にプロファイルを作る

さてセルスタンバイの消費電力を抑える方法ですが、主軸になるのは画面をOFFにしたらモバイル通信をオフにする、というもの。
それだけでは画面をONにしたときじゃないとデータ同期すら行われなくなるので、一定時間ごとに同期をとる。
このふたつの機能をTaskerを使って実現したいと思います。

作るプロファイルは以下の3つです。
ディスプレイをOFFにしたらモバイル通信等をOFFにするプロファイル。
省電力中に定期的にデータを同期するプロファイル。
ディスプレイONにしたときにモバイル通信をONにするプロファイル。

今回は作成のための操作が多くなっていきますので、操作方法の記述は簡略化していきます。

ディスプレイをOFFにしたらモバイル通信等をOFFにするプロファイルを作る

1. 新規プロファイルを作成する
私はプロファイル名を「省電力スリープRun」としています。
First Context は「Event」→「Display」→「Display Off」と選択。
Priority(優先度)を選択するダイアログが出ますので、ここは好きな値にしてDoneで決定。Normalのままで大丈夫でしょう。

2. Sync Off Delay の動作作成 i - 通信OFFの処理
Task Selection で新規作成を選びます。
私はタスク名を「Sync Off Delay」としてます。ただのSync OffではなくDelayと付けている理由は後ほど説明します。
ここで作るTaskはひとつの処理で終わりではありません。まずはモバイル通信をOFFにする処理を作ります。
「+」アイコン → 「Net」→「Mobile Data」→Set「Off」 → Done
で作成です。

次に自動同期を切る処理を作ります。
「+」アイコン → 「Net」→「Auto-Sync」→Set「Off」 → Done
で作成です。

次からどんどん難しくなっていきますが、基本の作成手順さえわかっていれば作れますので頑張りましょう。

3. Sync Off Delay の動作作成 ii - Wait処理
引き続きTask Editをしていきます。
「+」アイコン → 「Tasker」→「Wait」→ Minutes の値を 3 に変更 → Done
これはWait処理と言ってモバイル通信をOFFにするまで3分間待つというものです。「3分間待ってやる!」(byムスカ)です。
これが Sync Off Delay とした理由です。
なぜこうするかというと、メール送信して次の瞬間にDisplayOffにする操作が多いはずだからです。
ディスプレイをOFFにした瞬間にモバイル通信を切ってしまうとメールがすぐに送信されません。それを回避するための措置です。
待つ時間の長さはお好みで設定していいと思います。

さて、この処理を作成するとひとつ前に作った Auto-Sync の処理の下に作成されると思います。

これはそのまま実行される順番になりますので、Wait処理の項目を長タップしましょう。下にバケツのアイコンが表示されてドラッグできるようになると思います。
バケツに持っていかずに、一番最初に作った Mobile Data Off の上に持って行きましょう。順番を入れ替えることができます。

4. Sync Off Delay の動作作成 iii - フラグ設定
Sync Off Delay が実行されたことを明示的に判定できるようにフラグを設定します。

「+」アイコン → 「Variable」→「Variable Set」
と選択。変数作成のダイアログが開きます。%ECOSLEEP という変数名に 1 を代入するように設定します。
つまり、Name を %ECOSLEEP と入力。 To に 1 を入力です。
そこまで入力したらDoneで決定し、Taskの最初に実行されるように一番上にドラッグして移動させましょう。

この操作でおそらくほとんどの人が脱落してしまうんではないかと思いますので、プログラミングの知識がない人向けにここは詳しくいきます。
まず変数とは何か。変数とは X のこと。X の中身は定数ではなく式によって値が決まります。
X = 1
という式があったら X は 1 を指します。代入というやつですね。

これを何に役立てるかというと、画面ON時の通信状態の復帰や画面OFF中の定期的な自動同期を行うかどうかの判定に使います。
これを無いと何が起こるか? 処理のところどころにWait処理が入ってますので、Waitしている間にもしステータスが変わってしまった場合に期待通りの動きをしてくれなくなります。
たとえば「画面OFF」のプロファイルと後ほど作る「画面ON」のプロファイルが同時に実行されたりします。そうするとタイミングによっては画面ONにしたのにモバイルデータ通信がONにならないとかいう事態が発生します。
だからTaskの一番最初、少なくともWaitする前に変数に記録しておく必要があるわけですね。
こういう用途がひとつに限られる変数を特別にフラグと言ったりします。
「おれ、この戦いが終わったら結婚するんだ...」なんてことをつぶやいたキャラは死亡フラグが立ったとか言いますね。あのフラグです。
フラグとは旗のこと。旗は立ってるか倒れているか、1 か 0 かの情報を教えてくれます。今回は画面OFFしたことを示す旗を立てる。すなわちフラグを立てる、と言うわけです。

ここまでで Sync Off Delay は完成です。
Task Edit / Sync Off Delay を Done で決定しましょう。プロファイルができます。

画面OFFの間に定期的にデータを同期するプロファイルを作る

画面OFFと同時にモバイル通信を止めるプロファイルができました。 しかしこのままではメールの受信などができません。そこで画面OFFの間は一定時間ごとにモバイル通信ONにしてAuto-Syncを実行してまたモバイル通信OFFにするというプロファイルを作ります。 あ、ちなみに電話はモバイル通信がOFFでも着信します。

1. 新規プロファイルを作成する
私はプロファイル名を「省電力スリープ中Sync」としています。同期する間隔を15分として作ってみましょう。
First Context は「Time」→ FromとToのチェックを外す → Repeatにチェックを入れる → 15 minutesと入力
Doneで決定。

2. Auto Sync Repeat の動作作成 i - 自動同期とWait処理
Task Selection で新規作成を選びます。
私はタスク名を「Auto Sync Repeat」としてます。

自動同期をするにはまずモバイル通信をONにします。
「+」アイコン → 「Net」→「Mobile Data」→Set「On」 → Done
で作成です。

次に自動同期を開始します。
「+」アイコン → 「Net」→「Auto-Sync」→Set「On」 → Done
で作成です。

次に自動同期の待ち時間を作ってやります。待ち時間は1分で作ってみます。
「+」アイコン → 「Tasker」→「Wait」→ Minutes の値を 1 に変更 → Done
で作成です。

ここまでで、15分ごとにモバイル通信をONにして自動同期を開始し1分待つ、という処理です。

3. Auto Sync Repeat の動作作成 ii - フラグ判定して再びモバイル通信をOFFにする
次は自動同期とモバイル通信をOFFにする処理を作りますが、ここで変数 %ECOSLEEP が役に立ちます。まずは作ってみましょう。


自動同期をOFFにします。
「+」アイコン → 「Net」→「Auto-Sync」→Set「Off」 で、まだ決定はしません。
If という項目がありますのでここにチェックを入れます。
左側の入力ボックスに %ECOSLEEP と入力。
まんなかの入力ボックスをタップすると選択項目が開くので、Maths: Equals を選択。
右側の入力ボックスに 1 と入力。

すると入力ボックスの並びが、%ECOSLEEP = 1 という表示になると思います。
If というのは「もしも」という意味。
つまりこの処理は、もし %ECOSLEEP が 1 だったら Auto-Sync を Off にする ということです。
Doneで決定です。

なぜここでフラグ確認しないとならないか?
自動同期を待つ時間を1分設定しました。もしその間に画面をONにする操作をしていたとしたら、画面がONであるにもかかわらず自動同期をOFFにする処理が行われてしまいます。そうしないためのフラグ判定というわけです。

同様にモバイル通信をOFFにする処理を作ります。
「+」アイコン → 「Net」→「Mobile Data」→Set「Off」 → Done
If にチェックを入れる。
左側の入力ボックスに %ECOSLEEP と入力。
まんなかの入力ボックスで、Maths: Equals を選択。
右側の入力ボックスに 1 と入力。

Doneで決定です。

Auto Sync Repeatは以上で完成なので、Task Edit でもDoneで決定します。プロファイルができます。

4. Context Options でも %ECOSLEEP を判定する
さてこのプロファイルの実行条件、つまり実行のきっかけは「15分毎」という単純な定期実行です。
ここにもうひとつ実行条件を加えます。なぜならこのままだと画面ONの状態でも15分毎にこのプロファイルが実行されてしまうからです。
画面OFFの時だけ、実行してほしいですよね。その判定にはやはり %ECOSLEEP が使えます。

プロファイルリストに「省電力スリープ中Sync」が加わっているはずです。その下に Every 15m と表示されている矩形領域があるはず。これをタップします。何も表示されていなければ「省電力スリープ中Sync」をタップすると表示されるようになります。

Context Options というダイアログが開きます。ここで Add を選択。
するとプロファイルの新規作成で行ったように、実行条件の作成が始まります。新規作成時は First Contect で 追加時は Add Context です。やることは同じです。

実行するのに %ECOSLEEP が 1 の時、という条件を加えます。
「State」→ 「Variable Value」と選択。
Name に %ECOSLEEP と入力。
OP で Maths: Equals を選択。
Value で 1 を選択。

Done で決定。

「省電力スリープ中Sync」の下に矩形表示がひとつ増えたはずです。
これで、15分毎の実行に加えて %ECOSLEEP が 1 の時に実行、という条件になりました。

ここまでで「省電力スリープ中Sync」プロファイルは完成です。

ディスプレイをONにしたらモバイル通信をONにするプロファイルを作る

最後のひとつです。画面ONにしたときのプロファイルを作ります。 やることは単純ですが、変数の後片付けもしますので重要です。

1. 新規プロファイルを作成する
私はプロファイル名を「省電力スリープExit」としています。

First Context は「Event」→「Display」→「Display On」と選択。
Priority(優先度)を選択するダイアログが出ますので、ここは好きな値にしてDoneで決定。Normalのままで大丈夫でしょう。

2. Sync On の動作作成
Task Selection で新規作成を選びます。
私はタスク名を「Sync On」としてます。
このTaskで行うのは、モバイル通信ON、自動同期ON、%ECOSLEEP 変数のクリア、の3つです。

モバイル通信をONにする処理を作ります。
「+」アイコン → 「Net」→「Mobile Data」→Set「On」 → Done
で作成です。

次に自動同期を開始します。
「+」アイコン → 「Net」→「Auto-Sync」→Set「On」 → Done
で作成です。

次に %ECOSLEEP をクリアします。
この変数を放置すると、前項で作った定期自動同期プロファイルが動作してしまいます。
「+」アイコン → 「Variable」→「Variable Clear」→ Nameに「%ECOSLEEP」と入力 → Done
で作成です。

Task Edit でもDoneで決定です。
「省電力スリープExit」プロファイルができました。

これで全てのプロファイルの作成が終了です。お疲れさまでした。
Apply をタップすると作成したプロファイルが動作し始めます。


長々とTaskerを使ってのセルスタンバイ節電について書きましたが、正直まだまだスマートフォンの電力消費度は気になります。
自分にとっての最適な環境につくり込むために、試行錯誤している最中です。バックグラウンドで動かすアプリを厳選するのも消費電力を抑えるのには重要。これはもう個人個人で必要なアプリが違うように、使用環境をカスタマイズする必要があるでしょうね。

最後に、現時点(2011/3/17)で福島原発の事故は予断を許さない状況が続いており、首都圏の輪番停電も継続しています。
無いものは仕方ない。今あるものを工夫して少しでも使いやすく。技術は人のためにあるわけで、自分が提供できる知恵はこの程度のものですが何かのお役に立てればと思います。

あとあんまり深刻になりすぎて気持ちが沈んでばかりじゃいかんよね! どんな時にも娯楽で必要。笑顔は希望。節約した電力でゲームとかしたらいいじゃんw
そんな感じでーす!

2011/06/15 追記
ちょっと宣伝です。
Androidアプリ「アマスイ」をリリースしました。
アマゾンと楽天で商品検索がスムーズに行えるアプリです。よかったら一度試してみてください。アプリのサイトはこちら

トラックバック(0)

このブログ記事を参照しているブログ一覧: Android端末の節電に挑戦。Taskerの使い方その2

このブログ記事に対するトラックバックURL: http://www.studio-wiz.com/mt/mt-tb.cgi/215

コメントする

このブログ記事について

このページは、マピロが2011年3月17日 21:06に書いたブログ記事です。

ひとつ前のブログ記事は「ある意味最強のAndroidアプリ、Taskerの使い方」です。

次のブログ記事は「計画停電のエリアと時間、放射能濃度のグラフなど震災関連のAndroidアプリについて」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.14