【Androidレポート】僕がタスクキラーを使わない理由

December 15 [Sat], 2012, 23:57
GX買った直後くらいにいつか書こうと思い立ったまますっかり忘れてたことを思い出しました。
この日にもちょっとだけ触れています。

AndroidスマートフォンはCPU/メモリ/ストレージなどを搭載することにより、パソコンとほとんど変わらない動作が可能となっています。
が、その使い方がパソコンと大きく異なります。

パソコンの場合、使い終わった際は電源を落としますよね。
Androidはスマートフォンです。電話機能がついている為、使わなくなったからといっておいそれと電源を切ることができませんよね。
この違い故かどうかは知りませんが、Androidを考えた人は中で動くソフトウェア(アプリ)にもこれと同じようなことをさせようとしました。
パソコンの場合、一度起動したソフト(例えばブラウザ)を使い終わったら閉じますよね。
しかし、Androidに標準搭載されたブラウザに終了ボタンはありません。Chromeにもありませんよね。
僕も最初はこれは不便だと思っていたのですが、最近そうでもないのかなと思うようになりました。
この後ちゃんと書きますが、見方を変えるとAndroidは終了を自動化することに成功しています。

Androidはマルチタスクでの動作が可能です。
PCと全く同じとはいきませんが、ブラウザを開いてネットを見ながらメールを読んだり、151に電話して相談しながら対処方法をその場で試したりなんてこともできます。
その際、端末の中のメモリは回り車に乗ったハムスター並に大わらわ。
次から次へと新しいプロセス、不要なプロセスを切り替えています。

基本的にAndroidに搭載されたRAMメモリ(一時ストレージ)は複数の方法でプロセスを管理します。
人の手によってアプリケーションが起動された場合、起動したアプリをフォアグラウンド(前面)で表示すると同時に、それまでフォアグラウンドに存在したアプリをバックグラウンド(背面)に移行させます。
この際、アプリによっては実行時のデータをRAMに残したままバックグラウンドに移行します。
これはバックグラウンドに居るアプリを再度フォアグランドに表示させる際の読み込みを軽減する目的から行われるもので、Androidの標準機能の1つです。

バックグラウンドに移行したばかりのアプリは「とりあえず」という感じでRAMに残ります。

Android 4.0以上のスマートフォンに搭載された「開発者オプション」より「アクティビティを保持しない」にチェックを入れた場合、このキャッシュの処理が廃止され、バックグラウンドに移行した時点でRAM上のデータが全てクリアされます。
※同様に「バックグラウンドプロセスの上限」を指定した際もキャッシュするプロセスの量を制限できます。

ところが、実行中のプロセスによって新たに領域が必要になった場合、キャッシュとして保存されているデータは即座に破棄されるようになっています。
キャッシュはRAM上にあっても他を圧迫することがありません。

つまり、一旦起動されたアプリは使い終わる(別のアプリに切り替える=バックグラウンドに移行する)と同時にそのデータは全て一時的なものとみなされ、RAM容量が減ってきたら即座に終了されます。
自動で再起動された場合も、フォアグラウンドで表示していない限りはキャッシュとして一時的にRAM上に置かれています。
というわけで、Androidスマートフォンには標準でタスクキラー機能が搭載されています。それもキルではなく管理目的として、かなりよくできたやつが。

じゃどうして重くなるのか?

スマートフォンを長時間使い続けていると動作が緩慢になります。画面のスクロールがもたつき、カクつき、一瞬固まったりもします。
本体設定より「アプリ」 → 「実行中」を見ると、稼働中のプロセスがギッシリ。
フォアグラウンドには1つしか表示していない(この場合「設定」アプリのみ)のに、どうしてこんなにたくさん実行しているのか?

これが常駐アプリの正体です。
以前も書きましたが、アプリによっては常に稼働し続けることによって「情報を最新に保つ」または「その状態を維持する」目的を持ったものが存在します。
ウィジェットやキーボード(IME)、アラームなどです。
余談ですが、IMEが常駐するのは起動に非常に時間がかかる為との推測情報を見つけました。変換候補や先読み機能なんかに使う辞書部分が重たいんでしょうかね。
常駐アプリの多くは必要があって常駐しているので、メモリ使用量を削減したい場合はアプリを消すしかありません。
タスクキラーによっては、定期的な自動KILLなどを行う為に常駐するものもあるようです。メモリ使用率を減らす為に常駐を増やすような矛盾したアプリを使うのは、あんまり意味がありませんよね。(全部がそうってわけじゃないです)
悪名高い「ecoモード」も、節電の為に常駐しているせいで電力を余計に使っているとの声が一時期目立ちました。
これも余談ですが、稼働するアプリが多ければ多いほどバッテリーも早く消費されます。

これ以外に、以前書いた「メモリリーク」というものもメモリ圧迫の一因です。

アプリの終了時に何らかの問題が発生し、データを一部残したまま終了されてしまう現象です。
基本的に実行中としてRAM上に存在するデータは上書きできません。
凄く大雑把なたとえになりますが、あるアプリ(A/B/Cの3つとします)があると思ってください。

Aは起動時にRAMの30%の領域を使用します。
Bは起動時にRAMの85%の領域を使用します。
Cは起動時にRAMの12%の領域を使用します。

パッと見でわかる通り、AとBは同時に使用することはできません。
Aが稼働中にBを起動したい場合は、一旦AをKILLする必要があります。
が、このKILL操作時に何らかの要因によって5%ほどの領域が解放されずにRAM上に残ってしまうのがメモリリークです。
このメモリリークが発生した場合、B起動後にRAMの使用率は90%となり、普段ならば同時に使えるはずのCが起動できなくなります。
訂正。普段ならば同時に使えるはずのCを起動した際、BがKILLされます


メモリリークが重なると、それだけRAMが圧迫され空き容量が減っていくことになります。
あくまでも僕の個人的なイメージですが、OSやアプリごとの起動に強制停止を割り込ませるタスクキラーアプリはメモリリークを誘発する可能性を高める気がしてなりません。
ただでさえアプリの切り替え頻度を増やしているのに、ガベージコレクションなども無視されていそうな気がしますし。
メモリリークによってRAMが圧迫された場合、再起動などによってRAMを完全に解放してやる必要があります。
頻繁に再起動するのが面倒な場合、疑似的なメモリ全開放手段としてFMR Memory Cleanerはオススメです。

FMR Memory Cleaner:


これも以前何度も書いてますが、FMR Memory Cleanerは他のタスクキラーとはKILL方法が異なります。
通常のタスクキラーが稼働中のアプリやプロセスを個別に削除していくのに対し、FMRはメモリ領域を一旦全て奪うことによって前述したAndroid標準のKILL機能を呼び出し、Android標準機能によって自身を削除させることでメモリを解放する仕組みになっています。
単純なイメージになりますが、この際、順番的にいって最後にKILLされるものが「RAMを占有したFMR」1つだけなので、メモリリークの発生する可能性は極めて低いと思われます。
既にメモリリークの発生によってゴミが溜まった状態でFMRを起動した場合、そのゴミの溜まっている部分(ヒープメモリ)も奪い取ってくれるのかについても調べてみましたが、わかりませんでした。
これができれば更に便利だと思うんですよね。

というわけで、僕はタスクキラーアプリに必要性を感じず、疑問を持っています。
どうもAndroidはアプリの管理を「起動⇔終了」といったスイッチ式ではなく、メモリ容量によって自動で切り替える循環式のような方式を目的としているっぽいので、頻繁に行われる強制停止はその流れを大きく乱す要因となりかねません。
アプリの強制停止は暴走対策と緊急時(怪しい動きをした時など)にのみ行えるように、稼働アプリリストは必要最低限に保ったほうが、結果として端末の健康は良くなると思います。

はぁ……RAM4GBほしいや(ぇ

PICで楽しむAndroidアクセサリの自作
  • URL:http://yaplog.jp/tom-and-kery/archive/163
買ったものリスト





プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:Tom&Kery
  • アイコン画像 性別:男性
  • アイコン画像 誕生日:1984年7月27日
  • アイコン画像 血液型:B型
  • アイコン画像 職業:その他
  • アイコン画像 趣味:
    ・映画-SF!SF!SF!
    ・音楽-とにかく四六時中。
    ・漫画-壁一面に積んでます。
読者になる
 ヘ○ヘ
   |∧ <にゃー!
  /    
2012年12月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
サイト内検索



ページ別 週刊アクセスランキング

1位:
【Androidレポート】僕がタスクキラーを使わない理由

2位:
【Customization】電池、メモリ、CPUの効率的な使い方を追求してスマートフォンを快適に

3位:
【Xperiaレポート】Xperia A SO-04Eが発売。買ったらとりあえずこれだけはやっておこう