オカルトTaskKiller

なんだかIS03が出たあたりからかまたTaskKillerが中興してるね。
相変わらずAndroid界隈は支持者もアンチもオカルト大好きで……。
半年ほど前の蒸し返しになるけど、Androidのタスク管理について。もうあんまり内部の細かいこと書いても分からないだろうから書かないよ。


■結論から
・TaskKillerは使わない方が良い
・バッテリ消耗が激しい場合、まず設定(特にWiFiやGPSなどの無線周りが使いっぱなしになっていないか)を見直す
・それでもバッテリ消耗が激しい場合はバッテリを食ってるアプリを特定しアンインストールする
■何故TaskKillerを使わない方が良いか
Androidでは一度起動したプロセスはなるべく再利用しようとする。これは重い起動処理をなるべく減らすための一種のキャッシュである。
一旦終了してしまうと起動からやり直しになってしまうし、2.2以降ではせっかくコンパイルしたJITキャッシュも全部ご破算になってしまう。ブラウザのキャッシュをしょっちゅう消しまくるようなものだ。
プロセスリストにプロセスが残っているとバッテリを食っていると思う人がいるが、リストに載っていても処理がない限りプロセスは止まっているしバッテリも食ってない。この点に関する勘違いが一番多い。
バックグラウンドでも処理をするアプリは一部にあるが、普通は必要な処理だけ時々起きてまた寝る、というような動作をするようになっている。
一方、バックグラウンドに回ったのに処理をちゃんと止めないとか、電波を出しっぱなしにするとか、そういう「お行儀の悪い」アプリも一部には存在する。これは要するにバグであり、たいていコメントでぼろくそに書かれている。とはいえ最近は開発者にノウハウが普及しているのでそこまで酷いアプリはかなり稀になった。
またメモリが非常に少ない端末では新しいアプリが立ち上がると古いアプリがどんどん終了されてしまう。これ自体は正しい挙動なのだが「ホーム」もアプリであるためこれが終了するとホームに戻る=ホームアプリ起動になって非常に遅くなる。これに対してホームが殺されないために別のアプリを先回りして殺してしまうという手法が(昔は)あった。
TaskKillerを使うと損な点
・タスク切り替えが毎回起動になるためかえって遅くなる
・更に2.2以降ではJITキャッシュが頻繁に捨てられてしまってかえって遅くなる
・TaskKillerそのものがプロセスであるためメモリとCPU時間を食う
・まともなアプリの寝ているプロセスで動作速度は下がらないし、殺しても上がらない
TaskKillerを使うと得かもしれない点
・運が良ければバックグラウンド処理の腐ったアプリを殺してくれることがある
・メモリが非常に少ない(旧世代の)端末ではホームが殺される頻度が下げられるかもしれない
2010年以降の端末ならメモリ圧迫によりホームが殺される心配はあまりないと思うので、問題は腐ったアプリをどうするかになる。
■設定見直し
昨今ではアプリの品質はかなり良くなっているので、アプリを疑うより先に端末設定を疑った方が良い。
典型的にバッテリを食いやすくかつ設定で何とかなるのは「バックライト」と「電波」
バックライトは輝度を下げればてきめんに消費電力が抑えられるので、必要が無ければなるべく低めにしておいた方が良い。「設定」→「表示」から変更できる。
電波は「WiFi」「Bluetooth」「GPS」があり、使わない時はオフにしておいた方がいい。GPSも意外と電池食いだ。
設定の切り替え方だが、Androidには標準で「電源管理ウィジェット」というのがあって、これを使うとホーム画面からワンタッチで各種無線と画面輝度を切り替えられる。
ホーム画面で「Menuボタン」→「追加」→「ウィジェット」→「電源管理」とやると貼り付けられる。
設定切り替えツールは色々あるけど標準の電源管理ウィジェットが簡単でオススメ。
端末によっては通知バー(ステータスバーを引き摺り下ろすと出る奴)に統合されている場合もあるので、そういう端末ならわざわざウィジェットを貼る必要はない。
■バッテリ食ってるアプリの特定
腐ったアプリを1個動かすと一気にバッテリを食うし、行儀のよいアプリだけなら何個立ち上がっていても問題ない。
つまり実は腐ったアプリを特定してアンインストール出来るなら上で挙げたTaskKillerを使う利点は結局なくなる。しかしこの特定は意外と難しくてちょっと困る。
アプリごとのバッテリ消費状況は「設定」→「端末情報」→「電池使用量」で見られる(端末によるかも)
ディスプレイが食ってるなら画面輝度上げすぎ。
Android OS、Androidシステム、セルスタンバイ、メディアサーバー、あたりはシステムが使ってる分。
よっぽど立ち上げっぱなしにしているわけでもないアプリ名が食ってるならそいつが戦犯。
システムが使ってる場合は厄介。これはアプリ呼び出されて食ってる分が含まれているため、どのアプリが悪いか戦犯が特定しにくい。
メディアサーバーは割と仕方ない。これは音楽プレイヤーとして使ってたりするとどうしても使ってしまう。音楽聞きまくった場合のバッテリ消費は元々特化端末であるiPhone/iPodに比べるとやはり不利。
その他のシステム系が異常に食ってる場合は……難しい。
各アプリを見ていって「部分起動状態」(「スリープモードにしない」とか書いてるかも)が長いもの、GPS使用時間が長いもの、通信量が多いもの、などが疑われる。
これらが使用頻度や使用時間に比べてやたら長いものはバグっている可能性があるので、必要が無ければ消すか、同機能の他のアプリを検討する。
■そこまで詰めてもバッテリ食うんだけど
これ以上は結構厳しいかなぁ。
ここでTaskKillerに手を出すのは意味がない。ほんとにちゃんと詰めた後だとTaskKillerを入れてもバッテリ消費は多分かえって増える。
ここまで来ると要するに端末長時間触りまくってるのが原因。端末を触っている状態ではバッテリはどうしても食ってしまう。端末弄ってるってことはバックライトがずっとついてるわけだしAndroidアプリは通信を使うものが多いし動画とかFlashとか使うとなおさら。
バックライトの輝度を下げてみるとか、Flashをオフにしてみるとか、頑張る余地はあるにはあるけど、最終的には予備のバッテリ(eneloopのアレとか)を持っておくしかないんじゃないかなぁ。

“オカルトTaskKiller” への1件の返信

  1. もう、オカルトTaskKillerという設定見直しアプリを公開するしかない・・・
    タスクキル系は(ほとんどの場合)なんのメリットもないどころか、
    なにより、他のアプリの正常動作を妨害する可能性だって大いにある

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です