2013年8月4日日曜日

[tips]Androidデバイス(ICS)のバックグラウンドアプリを減らしてパフォーマンス向上?

現実

まずは今日は厳しい現実に向きあいましょう。


Androidのバージョン履歴 Android 4.0.x Ice Cream Sandwich

メモリ512MBでも動作するが、メモリ1GB以上ないと快適(≒高速)に動作しない
はい、たくさんの中華パッド終了。


だから安物買う奴は困るんだよ(プ

すいません。

ATB701Aを始め多くの廉価品は512MBしかメモリ(SDRAM)を搭載していません。そのため、メーカ製のAndroid端末の殆どは1GB以上の搭載メモリを持つ機種以外、ICS(Android 4.0.x)へのアップデートは行われなかったのです。

今から買う人は値段もこなれてきたので512MB搭載機は目もくれず、1GB以上のメモリをつんだ機種を買いましょう(笑)

1GBオーバーのタブレットで一万円以下の機種といえば、たとえば…


その他、先日紹介した ANAPタブレットも1GBのSDRAMを積んでいるらしい。買いかもしれない。アウトレット扱いだけど。

さてATB701Aには512MBしかない。確かにモッサリしている。何とかならないか。

なぜそんなにメモリが要るのか

ICS以降のAndroidはマルチコアプロセッサへの対応強化など、機能的な強化が行われていたと聞きますが、どうやらハードウェアの革新にあわせてより快適にAndroidデバイスを使うために

一度実行したプログラムを可能な限りメモリ上に残す

ようになっているようです。

電力を食わないように設計するとなるとこれは多分当然のことで、CPUのマルチコア化はあってもクロック自体はほとんど変わっていないのも、CPUを強化するよりメモリを増やして、メモリの利用方法を工夫したほうが低消費電力を抑えたままでの性能向上に寄与しやすいということでしょう。

しかし、512MBだの1GBだの、一昔前の普及価格帯のPCの標準搭載メモリ(WindowsXPクラス)じゃないですか。どんだけメモリ要るねん。

それはさておき。最初に対処の私なりの結論書いておきます。

バックグラウンドで動くアプリの総数を減らす

これがこたえ。です。
ICSの設計思想から逆行しています(笑)

だからタイトルにも「?」を書きました。でも前より快適になった気がする。

やり方

淡々とあとは書きます。

「設定」から「開発者向けオプション」を開き、「バックグラウンドプロセスの上限」をクリック。

デフォルト状態はコレ、「標準の上限」です。これを…
「プロセスの上限:1」にしてみます。

Quadrant Standardでベンチマーク。性能は落ちてません。

Maxthon Browserをこの状態から起動して、System Infoでの表示を確認。
実は裏にUltrasonicが起動していたりしますが。
ブラウザの起動は13秒ほど…メモリは68%使用。

スクリーンショットとった場面が違うけれど、標準状態で上記とほぼ同じ状態。
83%がすでに使われている。
20%くらいメモリ残量は改善。以前だとブラウザ開いてSkype開いてブラウザに戻って…とかやっているとANR警告(応答しないアプリ)を出したりしてました。あるいはタップに反応しませんでした。

でもバックグラウンドプロセスを1にしてしまうと、Ultrasonicの通知領域表示が消えています。上のスクショ二つを比較してみてください。多分1つじゃダメなんです。

メモリー消費74%。まぁ最初よりはマシ。
Ultrasonicの通知領域表示も出ているし。これにしておこう。
…二つにします。

ちなみに、「開発者向けオプション」には「アクティビティを保持しない」というオプションもありました。「アクティビティ」というのは、普通のアプリケーションで言うところの画面かウィンドウみたいなものです。Androidは画面が小さいので何か操作を完了すると画面全体が切り替わることが多いですが、アクティビティを保持しているおかげでBackキーで前画面に戻れたりします。「アクティビティを保持しない」にすると全般的にBackキーの動作がおかしくなる上

メモリ的には改善せず

でした。メリットありません。

追補:Android 2.2 Froyoと比較

3.x(HoneyComb)のデバイスがないので、こういう比較になります。
ATB701Aの起動直後メモリは、全体で307MB、空きが125MBでした。60%のメモリ使用量。ただし、プリインストールソフトを削ったり、新しく後から常駐するタイプのアプリを入れたりしているので人によっては違うかもしれない。購入直後は…

ATB701Aのメモリ(買った直後の時)

これはQuadrant Standardの"System information"から拾ったものですが、上のMemory項目のInactiveがだいたいメモリ管理ソフトで表示されるのに近い値です。48MBくらいしか空きがありませんでした。要らないプリインストールソフトを凍結したり、アンインストールしたりして、起動直後125MBあいている状態にまで持ってきたわけですが(3Gカードとかデバイスとかつなぐわけでもないのにテレフォニーサービスは要らんだろ凍結、とかいうこともしてます。まだ削れる気もする)。

てか、Total 300MB程度って、何ゆえシステムが200MB以上もメモリを食ってるんだ…

手元にはAndroid2.2.1(Froyo)のデバイスが2つあります。
一つはau KDDIのIS-06というスマートフォン(PANTEC製)、そしてImpression i7こと恵安のGF12。

これらも搭載メモリはいずれも512MBなのですが、起動した直後の空きメモリ状態は、いくつかプリインストールソフトを削ったりあとで追加したソフトが常駐していたりしても、総メモリ(システムで使うぶん除く)400MBで空きは200MB程度あります。

ICSはFroyoと比べてシステムの予約メモリが倍になっている…。

これを何とかする、のは何かネタが拾えたら、ということで。


3 件のコメント:

  1. 見出しに脱字…というか誤字。深夜に記事書くもんじゃない…

    返信削除
  2. U25GTシングルコア+512MBが遅すぎて、対策を探していたらこのブログ発見。とてもためになりました。ありがとうございます。

    返信削除
    返信
    1. makoto0119さん
      最近すっかりブログサボっていてすいません…御礼恐縮です。
      Nexus7(古い方)を手に入れてから何もすることがなくてネタが切れてます。
      シングルコア+512MBはほんとに4.x系では辛いですね。クアッドコア+1GBは人間を堕落させますww

      削除