2011/01/22 (Sat)

Android メモリー管理とタスクキラー

REGZA Phone T-01Cドコモレグザフォンを安定して使うために。
というかAndroid共通の話題だと思いますが。

いわゆるタスクキラーについてまとめてみます。

警告
タスクキラーはその操作や設定をあやまるとAndroidの動作がおかしくなるかもしれません。
ある程度の知識がありトラブっても自分で解決できる能力がない人は導入すべきではありません。
自分でタスクキラーを入れて設定しておきながらその説明もなくインターネットの掲示板等でT-01Cの動作がおかしいと質問するなど目に余る状況(質問者自体その影響が理解できてないから質問してるんですが)があるようなので、強く警告しておきます。

※2011/02/26追記
自分はタスクキラーアプリを必要のないモノと判断しアンインストールしました。
→Androidにタスクキラーは要らない!
http://skierbasser.blog62.fc2.com/blog-entry-197.html


タスクキラーを紹介した文章は山ほど転がっていると思うので、どのような考え方でタスクキラーを活用したらよいか前置き部分に重点を置いてまとめます。

以前に次のようなことを書いています。

Androidって、使ったアプリはほとんどそのまま起動したままの状態で残ってます。
Windowsパソコンでも同じですが、Windowsの場合はタスクバーで起動しているアプリが一目でわかるし切り替えられる。そのタスクバーが常に見えているので非常にわかりやすい。
自分は結構余計な窓は閉じていく性格なんですが、会社で会議などしてるときにプロジェクターで人のPC画面が映し出されると異常なほどに窓を開いてる人がたまにいます。メーラーとエクスプローラ起動し、エクセル・ワードファイルが10個くらい開いてありその上にIEが5個あって、パワーポイントでプレゼンするとか。だいたいそういう人はことある毎にPCがロックしてます(笑)。

話がすっ飛びましたが、Androidにはタスク管理が非常に弱い。
なので、そういったAndroidアプリが多数出てます。

でも、これもT-01C標準で一応あるんです。
今実行中のアプリケーションを確認するには
ホーム画面で、MENUキー>設定>アプリケーション>アプリケーションの管理
MENUキー>フィルタ>実行中
一つのアプリを選ぶと「強制停止」ボタンがあり、終了させることが出来ます。

わからないアプリを停止させると意図しない挙動になるかも知れません。


ちょっと補足するとWindowsではプログラムの「終了」ってのがどれでもメニューの中にありますので普通もう使わないなら終了しますよね。
ところがAndroidでは、ほとんどのアプリに「終了」メニューがありません。
これはサクサク感を演出するために一度起動したアプリは殺さずに裏で活かしておこうとAndroid開発者が考えたためらしいです。

ついでにいうと、パソコン自体終了させますが、携帯はよほどのことがないかぎりスリープさせるだけで電源OFFにはしません。飛行機乗る時も機内モードにするだけになっちゃったしね。ということで何日も連続稼働しているAndroidで何日も前に起動したアプリがそのままメモリー食ってることになりかねないわけです。


Androidのメモリー管理に詳しくないので詳細はわかりませんが、WindowsPCの場合は積んでいるメモリー以上(仮想メモリー含む)のメモリー要求があるとメモリーが足りないとメッセージ出て起動出来なくなります。
そういう時はユーザーが起動している要らないプログラムを終了させ空きメモリーを増やすわけですね。


Androidの場合は、メモリーが足りなくなると勝手にプロセスを落とすようになっているらしい。
そのルールは、現在のユーザ体験にとってそのプロセスがどれだけ重要であるかと、ユーザが最後にそのプロセスを必要としてからどれくらい時間が経過したかに基づいている。

マルチタスキング、Androidのやり方
http://www.textdrop.net/soft/multitasking-android-way/


これはおもしろい考えですね。Windowsでは起動しているプログラムもタスクバーで明示されておりこれを勝手に落とされたら困りますが、Androidの場合もともと起動しているアプリは明示されていないのでこのような発想ができる。

上記「マルチタスキング、Androidのやり方」はちょっと難解ですが、他にもおもしろいことがいろいろ書かれてます。
例えばゲームアプリなど、保存してないのに、というかSaveメニュー自体ないのに、以前の状態が保持されている。(これは、アプリが終了しておらず裏で保持されてたアプリが表に出てきただけでなく、Android【再起動後】でも保持されている。)
「ユーザがアプリケーションのその部分を離れるたびに作られる。」と書かれている部分ですが、上の例でいうとゲームの画面から他の画面に移動した時点で自動的にセーブされているということです。パソコンになれた自分にはとてもユニークな考え方です。
メモリー管理の為に、もともとアプリやサービスを勝手に殺せるような作りになっているというのです。

※2011/01/23追記
上記「マルチタスキング、Androidのやり方」を今回のテーマであるタスクキラー関連で要約すると、
①Androidではアプリはいつでもすぐに呼び出せるよう起動したアプリは終了しないでメモリー食わせておくのが基本。
②メモリーが逼迫する(たりなくなる)と、現在のユーザ体験にとってそのプロセスがどれだけ重要であるかと、ユーザが最後にそのプロセスを必要としてからどれくらい時間が経過したか、を判断基準に容赦なくOSがアプリを強制終了する。
③強制終了したアプリをユーザーが再び呼び出した時、あたかもずっと起動し続けてるように見せるため、各アプリの状態は画面がアプリ間を移動する度に保存されている。

衝撃の事実。タスクキラーって要らないんじゃない?
実際に、タスクキラーを無効にすることでバッテリーの持ちが格段に向上したというブログも見つけた。
http://d.hatena.ne.jp/hanahi/20100609/p3
丁寧にキルするアプリを選ばないと逆効果になると書かれている。
そもそもメモリーをいっぱい使ってもちょっとだけ使っても(メモリー空き容量が大きくても小さくても)消費電力に変わりはないはず。空きメモリでも空きであることを保持しているわけで、データが入っているのと空っぽで消費電力に違いがある訳じゃない。CPUを回すか回さないか:CPU処理を多いと電力を消費する。他にも周辺機器:液晶表示およびバックライト、無線LAN、GPS、ワンセグ受信なども電力消費が多いと推測できる。
タスクキラーはメモリー空き容量を広げるには効果が見込めるがバッテリーの省エネに効果があるのか?
むしろウィジェットなどで定期的にネットにアクセスして情報を更新するようなアプリをなるべく使わないことが省エネ効果が見込めると思われる。

追加実験
実際に多数のアプリを起動し続けていくとメモリーの空き容量がどんどん減っていきます。空き容量が30MB前後(T-01Cの中の設定を見るとどうやら16MBが正解)になると自動的にアプリを殺していくことが確認できました。ただしメモリーの空き容量がそれくらい少なくなると動作が遅くなることも同時に確認しました。つまり上記②の動作でメモリー空き容量は自動的に確保されますが動作がモッサリしてくる。

Android OS自体の機能により自動的に不要と判断されたアプリが落とされていくけど、そのような処理が必要となるくらい空きメモリーが不足してくるとモッサリ動作になるので、このような状況になる前にユーザーが自分の判断で(タスクキラーを使って自動で処理させるか、手動で処理するか問わず)アプリを終了させることはモッサリ→サクサク効果が見込めるようです。

いずれにせよ、この話は端末運用全体のバランス(個々人の使い方)の中でチューニングされるべきで、どのアプリが常駐(タスクキラーやAndroid OS自体による強制終了から外すか)にふさわしいのか、どのアプリが使い終わったら終了させたいか、ウィジェットなどで定期的に稼働するアプリは適切か、などなどを考慮していく必要があるでしょう。



ということで前書きが異常に長くなりましたが、Android OSが自動でやってくれているらしいメモリー管理ですが、これの発動前に自分でコントロールすることでもっさり感:動作が重くなったり、フリーズしたり、再起動するなどの問題が発生する可能性を低減できるんじゃないの?って話です。
(フリーズや再起動に効果あるかは疑問。というか多分効果無い。結構メモリー空き容量に気をつけて使っててもspモードメールアプリなど出来の悪いアプリ使ってると平気で再起動するし。変なアプリを入れない方が効果あるはず。)


わたしはAdvanced Task Cleaner Proってのを入れてみましたが、タスクキラー系のアプリならどれも同じ考え方で運用すればよろしいかと思います。
最初からこのようなアプリを入れる必要はありません。まずは冒頭に書いたような手順で一個ずつ殺していけばよいのです。
(※むやみやたらとアプリを入れない方が絶対によいです。アプリをインストールするということは何らかのリスクを背負うと考えています。つまりアプリの異常終了や下手するとAndroid OS自体を異常終了させ、結果的に予期せぬ再起動を起こしたり、メモリーリーク(どんどんメモリーを食っていって最後はOS停止)したり、OSをクラッシュさせたりするかも知れません。厳選した必要なアプリのみで運用した方が絶対に安定性が高いと考えます。)


Advanced Task Cleaner Pro
http://jp.androlib.com/android.application.com-bright-taskcleaner-ptxt.aspx



いずれにしてもタスクキラー系アプリを導入して最初に悩むのは、なんだかわからないアプリがリストアップされると思うのでどのアプリを落として良いのかわからないって事だと思います。

基本的に殺して良いのは、以下のアプリかなと思います。
・自分でインストールしたアプリ
・カメラ、ビデオプレーヤ、ミュージックなど、他のシステムに影響なさそうなアプリ

まぁAndroidの思想を理解されているアプリ開発者なら、落とされても影響の無いようにアプリを作っているはずなんですが。

逆に、殺しても勝手にまた起動されているアプリはどこからか呼び出されているアプリなので、呼び出し元が起動されている時点で殺しても無駄です。
具体的にはホーム画面に置かれたウィジェットなどが該当します。

常駐アプリは基本的に殺さないでおくのが正解でしょう。
常駐アプリとは、アンチウイルスとかクリップボードビューアなど、通知バーにいるアプリです。これらを殺してしまうと機能しません。

常用するアプリ例えば、ブラウザ、メールなどは殺しても良いけど微妙です。
微妙とは次のような意味です。ブラウザはタブでいっぱい開いていると結構メモリー食います。ブラウザを開きなおした時に前に見ていた画面をそのまま残しておきたいなら殺してはいけない。でもたまにはリセットもしたい。手動で時折終了させるくらいで良いかな?



ここらへんのチューニングをしていて気に入らないのは、テレビ・Google検索・お天気。これらはいくら殺してもゾンビのように復活します(笑)。
テレビはメモリー使っていないようなのでどうでもいいかもしれないが、Google検索・お天気はホーム画面のウィジェットから外してもダメ。
あきらめました。というか上でも書いたように自動的に復活するアプリはタスクキラーで自動的に殺す設定にすることで消費電力を増長させる可能性が高いです。

以下はAdvanced Task Cleaner Proでのお話。
アプリ一覧から、自動的に殺すアプリをAuto-kill Listに登録すればよいです。
逆に殺すリストに載せないようにするには、Ignore Listに登録。
「殺すリスト」って!(笑)
そのAuto-kill Listに登録したアプリは、定期的に殺したり、スリープ状態になった時に殺したり、Android起動10秒後に殺したり、設定で指定できます。


あとは手動で殺す。Advanced Task Cleaner Proの画面で一括してアプリを停止できます。
この際、Ignore Listに登録していない、起動されているアプリは全て選択された状態になっていますので、選択状態を確認の後に殺して下さい。
Advanced Task Cleaner Proを起動すると画面の一番上にAvailavle Memory(利用可能なメモリー量)とバッテリー残量が表示されます。このAvailavle Memoryを確認しつつ、End Taskボタンを押すとどれだけメモリーの空きが増えたか確認できます。



間違って殺しちゃって動作がおかしくなったのは「デジタル時計」。ホーム画面にデジタル時計ウィジェットを置いているのですが、こいつは殺しても復活しませんで、ホーム画面でのデジタル時計表示は再起動するまでずっと殺した時刻のままとなりました。

こういうアプリもありますので、このブログネタを実践される時には気をつけて下さいね。

Androidデビュー直後はいろんなアプリを起動して楽しむと思いますが、使い込んでいくと使う(使える)アプリ数は限られてくるので使い方が落ち着いてくると、Android開発者が考えた図式にはまり、タスクキラーも不要になるかも知れません。タスクキラー自体もメモリー使って常駐するわけで使わない方が良いですからね。




KING JIM タブレット専用タッチパネルクリーナー「iCOLOCOLO」 シロ C1810シロ
by カエレバ



Transcend microSDHCカード 32GB Class10 永久保証 [フラストレーションフリーパッケージ(FFP)] TS32GUSDHC10E
by カエレバ



[Amazon.co.jp限定] PLANEX スマートフォンで簡単設定! 高速300Mbps WiFiマルチポケットルータ FFP-PKR03 [フラストレーションフリーパッケージ(FFP)]
by カエレバ



PLANEX「充電万能」2ポートUSB充電器ブラック PL-WUCHG01-B (iPod/iPhone5/4s/4/3GS/3G/Xperia/Galaxy/au/docomo/SoftBank/ウォークマン/PSP/DS/DSLite/Dsi 全ポート合計1A )
by カエレバ



ELECOM Micro-USB(A-MicroB)ケーブル 巻き取り式 0.7m ブラック MPA-AMBIRL07BK
by カエレバ



Panasonic USBモバイル電源パック リチウムイオン 5,400mAh 白 QE-QL201-W
by カエレバ



ここのリンクからこの商品でも他の商品でも買ってくれるとうれしいかも。



それではまた。ノシ
関連記事

ブログ内検索


テーマ : スマートフォン
ジャンル : 携帯電話・PHS

tag : スマートフォン

コメント

非公開コメント

凄く為になりました。ありがとうございます。
is04使いですが、同じくテレビググるお天気がゾンビ化してます。ずーっと気になってたんですが、スッキリしました。

Re: タイトルなし

2/3のアップデート後、さらにマップも常駐になりましたよ。
プロフィール

skierbasser

Author:skierbasser
神奈川県横浜市
FITに乗ってます。
最近は近所でメバリングばかりです
AQUOS PhoneSH-02Eユーザーになりました

メバリング行ってみる?は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

最新記事
全記事
最新コメント
counter
Calender
カテゴリ
tag cloud
Pictlayer
Google+
つぶやいてみる?
amazonレビュー
ブログでレビューしたアマゾン商品 マウスを合わせるとその商品を紹介してるブログのURLが表示されますよ。