StrictMode クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。
[Android.Runtime.Register("android/os/StrictMode", DoNotGenerateAcw=true)]
public sealed class StrictMode : Java.Lang.Object
[<Android.Runtime.Register("android/os/StrictMode", DoNotGenerateAcw=true)>]
type StrictMode = class
inherit Object
- 継承
- 属性
注釈
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。
StrictMode は、アプリケーションのメイン スレッドで偶発的なディスクまたはネットワーク アクセスをキャッチするために最も一般的に使用されます。UI 操作が受信され、アニメーションが実行されます。 ディスク操作とネットワーク操作をメインスレッドから離しておくと、アプリケーションの応答性が大幅に向上します。 アプリケーションのメインスレッドの応答性を維持することで、ANR ダイアログがユーザーに表示されないようにすることもできます。
<p class="note">Android デバイスのディスクがフラッシュ メモリ上に存在することが多いにもかかわらず、多くのデバイスでは、コンカレンシーが非常に限られたメモリの上でファイルシステムが実行されることに注意してください。 多くの場合、ほぼすべてのディスク アクセスが高速ですが、特定の I/O が他のプロセスからバックグラウンドで発生すると、個々のケースで劇的に遅くなる可能性があります。 可能であれば、そのようなことが速くないと想定することをお勧めします。
、、またはその他のアプリケーション コンポーネントのメソッドのandroid.app.Application
android.app.Activity
早い段階から有効にするコード例android.app.Application#onCreate
:
public void onCreate() {
StrictMode.setThreadPolicy(new {@link ThreadPolicy.Builder StrictMode.ThreadPolicy.Builder}()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new {@link VmPolicy.Builder StrictMode.VmPolicy.Builder}()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
super.onCreate();
}
違反が検出された場合に何が起こるかを決定できます。 たとえば、 を使用するとThreadPolicy.Builder#penaltyLog
、 の出力adb logcat
をwatchし、アプリケーションを使用して違反が発生した場合に表示できます。
問題があると感じる違反が見つかると、解決に役立つさまざまなツール (スレッド、android.os.Handler
android.os.AsyncTask
android.app.IntentService
、など) があります。しかし、StrictModeが見つけたすべてのものを修正せざるを得ないと感じないでください。 特に、ディスク アクセスの多くの場合は、通常のアクティビティ ライフサイクル中に必要になります。 StrictMode を使用して、誤って行ったことを見つけます。 ただし、UI スレッドでのネットワーク要求は、ほとんどの場合問題です。
<p class="note">StrictMode はセキュリティ メカニズムではなく、すべてのディスクまたはネットワーク アクセスを検索する保証はありません。 呼び出しの実行時 android.os.Binder
にプロセス境界を越えて状態が伝達されますが、最終的にはベスト エフォート メカニズムです。 特に、JNI 呼び出しからのディスクまたはネットワーク アクセスによって必ずしもトリガーされるとは限りません。
の android.os.StrictMode
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
JniPeerMembers |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 |
PeerReference |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
ThresholdClass |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
ThresholdType |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
メソッド
AllowThreadDiskReads() |
から現在 |
AllowThreadDiskWrites() |
から |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Dispose() |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
Dispose(Boolean) |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
EnableDefaults() |
違反がログに記録されるだけで、推奨される StrictMode の既定値を有効にします。 |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetThreadPolicy() |
現在のスレッドのポリシーを返します。 |
GetVmPolicy() |
現在の VM ポリシーを取得します。 |
JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
NoteSlowCall(String) |
コードが低速であることに注意してください。 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetThreadPolicy(StrictMode+ThreadPolicy) |
現在のスレッドで検出する必要があるアクションのポリシーと、そのようなアクションが発生した場合のペナルティを設定します。 |
SetVmPolicy(StrictMode+VmPolicy) |
VM プロセス (任意のスレッド) で検出する必要があるアクションと、そのようなアクションが発生した場合のペナルティのポリシーを設定します。 |
ToArray<T>() |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<は、通知</em> または>< em 中断</em によって待機します>。> (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
IJavaPeerable.Finalized() |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 |
GetJniTypeName(IJavaPeerable) |
StrictMode は、誤って行っている可能性のあることを検出し、修正できるように注意を引く開発者ツールです。 |