2012/01/10

StrictMode:画面遷移の度に表示される赤枠を抑止する方法

GingerBreadから追加された機能StrictMode(厳格モード)について。

Android4.0(3.xから?)のエミュレータ等でStrictMode機能をONにしていなくても
StrictMode機能がONの状態となります。
この状態でUIスレッド上でDBにアクセスする等推奨ルールに違反すると画面
全体に赤枠が点滅表示されます。


設定アプリの[開発者向けオプション]→[厳格モードを有効にする]ON/OFFに
関わらず、engビルドされた環境では強制的にStrictModeがONになります。


userビルドの場合は、アプリが明示的にStrictModeをONに設定しない限り
StrictModeはOFFとなり赤枠点滅による通知は行われません。

しかし、engビルド環境と言えど赤枠が表示されるのは少々邪魔なものです。
赤枠表示をOFFにしたい場合は下記の方法が有効です。

【Dev toolsを使用した方法】
1.Dev Tool→StrictMode visual indicator:off に設定する
2.プロセスを再起動する

【システムプロパティを設定する方法】
1.adb shell setprop persist.sys.strictmode.visual 0
2.プロセスを再起動する

StrictModeの設定値を変更した後は、赤枠を表示したくないプロセスの再起動
が必要です。

ちなみに、StrictModeのログを抑止したい場合はadb logcatコマンドで
adb logcat StrictMode:S *:V
とします。

以上です。