メモリスワップでさくさくホーム復帰
AndrodがWM(Windows Mobile)と根本的に異なる点に、アプリケーションのメモリ管理があります。
いくつもアプリを起動するとメモリから追い出されたアプリが自動終了する点は同じなのですが、WMではその仕組みがうまくいってるとは言えません。WMユーザーが最初に覚えることは、タスクマネージャを導入して小まめにアプリを終了することでした。
逆に、Androidに詳しい――少なくともアプリ作成入門記事に目を通したユーザは、「タスクマネージャ? いらないんじゃね?」と口をそろえて言います。
画面遷移による状態変化が体系化され、それこそがアプリ作成入門者のABCとなっているからです。ならば、アプリ使用者側で気にする問題じゃないなあ・・・と。
○
しかし、前々エントリーで紹介したようにWebショートカットを多用してると、メモリ不足を痛感します。
Webブラウザはメモリを圧迫するので、ちょっと前に使ってたアプリも(ホーム画面でさえ!)すぐに終了してしまい、復帰に時間がかかるからです。・・・ホーム復帰に時間がかかると、モッサリ感を強く抱かざるを得ません。
○
そんわけで、巷で流行のrootの奪取とメモリスワップを導入してみました。
Swapper for Root usersは、画面遷移で退くアプリをSDカード上にスワップさせることで、アプリが自動終了するのを防ぐものです。名前の通り、rootユーザになれる端末でないと動作せず、HTC-Magic (HT-03A)では使えないハズだったアプリです。

以下、そのメモです。
■ root権限の奪取
- setupsu.apkをダウンロードしてインストールし、一度実行する。
これにより/system/xbin/su が作成される。
以下の作業で、/system/bin/suにシンボリックリンクを作成する。 - デバッグモードをONにして、PCにUSBで接続(SDカードはマウントしない)
- PCのコマンドプロンプトからshellを起動する。
adb shell - 1で作成されたコマンドでsuになる。
/system/xbin/su - /systemを書き込み可で再マウントする。
mount -o rw,remount /dev/block/mtdblock3 /system - binに移動。
cd /system/bin - シンボリックリンクを作成。
ln -s /system/xbin/su su
ln -s /system/xbin/busybox mkswap
ln -s /system/xbin/busybox swapon
ln -s /system/xbin/busybox swapoff
ln -s /system/xbin/busybox free - リードオンリーで再マウントする。
mount -o ro,remount /dev/block/mtdblock3 /system
これにより、いつでもsuでrootになれ、root権限を必要とするアプリも動作するようになります。
とういうことは、セキュリティ的にはとても惰弱な状態だということです。意味の分かる人以外、お奨めしないことを今さら忠告しておきます(笑
■ Swapper for Root users
マーケットでダウンロードしてインストールしスワップをONにするだけ。
※ USBケーブルでSDカードにアクセスするときは、事前にスワップOFFにしなければならない。
使用しているSDカードは、最初から付いていた2GBのものです。
スワップサイズはあまり大きくしても、かえってスワップでもたつきます。標準で32MBでしたが、現在は48MBで運用しています。
Webブラウザで大きなページを読み込んでいても、ホーム画面が裏で終了しなくなりました。
○
■ おまけ
rootを奪取したついでにカメラのシャッター音を無音のものに変更しました。
使用したデータnosound.oggは、こちらのサイトから。
- nosound.oggにSDカードのルートに保存。
- 書き込み可で再マウント。
mount -o rw,remount /dev/block/mtdblock3 /system - camera_click.oggをバックアップして、nosound.oggで上書き。
cd /system/media/audio/ui
dd if=./camera_click.ogg of=/sdcard/camera_click.ogg
dd if=/sdcard/nosound.ogg of=./camera_click.ogg - リードオンリーで再マウント。
mount -o ro,remount /dev/block/mtdblock3 /system
