えっと、ちょっと難しい?話を。
Andoroid OSはマルチタスクです。
マルチタスクをザックリ説明すると、複数のアプリケーションを同時に動かすことが出来るってことです。
例えば、twitterを使いながら、裏でEvanoteにファイルをアップしているとか、XPERIA arc で言えば、常にメーラーが動いているのに、ブラウザでネットサーフィンしながら、twitterもみたいな感じですね。
当たり前の様ですが、アプリが小さいとはいえ、少ないメモリで複数のアプリを同時に動かすのは結構大変なことなんだと思います。
一世代前のモバイルガジェットはシングルタスクといって、一つのアプリが動いて入る時は他のアプリは中断して動かないというのが当たり前でした。
iPhoneもマルチタスクになったのはOS4.0からです。
で、Andoroid OSの場合、どういう構造になっているかというと、まず Andoroid OSで常にバックグランドで処理してものをServiceといいます、それに付け加えて、アプリを立ち上げた時に利用されるものをActivityといいます。
Serviceは基本的に常時動いていますが、Activityは必要な時のみ動き、バックに入ると中断します。
この二つの動きが基本になり、Activityを利用するアプリは、メモリが足りなくなると、復元状態を記憶して、一番使っていないアプリを終了させ、メモリを確保します。
理論的にいうと、バックグラウンドに回ったタスクが増え手動きがもっさりとすることはないわけです。
Ver.1.x時代には、全くといっていいほどまともなメモリ管理が出来ていなかったため、タスクマネージャーやタスクキラーは必須アプリといって良いほどでした。
しかし、Ver.2.x 以降はかなり良いメモリ管理をしてくれます。
つまり、基本的にはタスクマネージャーやタスクキラーを使って、メモリを確保する必要はないワケです。理論的には。
ここからは個人的な思い込み。
理論は素晴らしいし、確かにOSのバージョンが上がる度に、メモリ管理は良くなっています。普通に使うならタスクマネージャーやタスクキラーは必要ない?
と思いたいんですが・・・。
問題がOS側なのかアプリ側なのかよくわかりませんが、バックグランドに入ってもメモリを使ってしまうアプリが結構ある気がします。
自動更新や通知をするアプリは基本的にServiceを使っています。
本来なら、アラームサービスという機能を使って、このアプリはこういう時、こういう動きをしてねという命令を登録して利用するわけなんですが、この機能がちゃんと動いていない気がします。
事実、Service系のアプリをいくつも立ち上げているとフリーズすることも多々あります。
Andoroidの場合、アプリの審査もあってない様なものだし、あまりにも早いOSのバージョンアップに、アプリの制作がちゃんと対応出来ていないという気もします。
まぁ、そういった意味でタスクマネージャーやタスクキラーを使うのはやぶさかではないかと。
精神衛生上の意味が大きいかもしれませんが。(^^A
あまり複雑なタスクマネージャーとかじゃなく、ウィジット系でただメモリを確保するだけのものが良いかもですね。
ちなみに私もフリーのウィジット系のタスクマネージャーを使ってます。
最近、どうもよくフリーズする、動作が緩慢になったという方は一度試してみては?
まぁ、使ってもあまり害になることはないと思います。
ただし、基本のService(メールなど)も一緒に終了させます。まぁ、Service系の常駐アプリはまた勝手にすぐ立ち上がりますので問題はないんですが。
from tt-bear's iPhone
0 コメント:
コメントを投稿