Langue

StrictMode Classe

Définition

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

[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
Héritage
StrictMode
Attributs

Remarques

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

StrictMode est le plus couramment utilisé pour intercepter l’accès accidentel au disque ou au réseau sur le thread principal de l’application, où les opérations d’interface utilisateur sont reçues et les animations ont lieu. La conservation des opérations de disque et de réseau hors du thread principal permet d’obtenir des applications beaucoup plus lisses et plus réactives. En gardant le thread principal de votre application réactif, vous empêchez également les boîtes de dialogue ANR d’être affichées aux utilisateurs.

Notez que même si le disque d’un appareil Android est souvent en mémoire flash, de nombreux appareils exécutent un système de fichiers sur cette mémoire avec une concurrence très limitée. C’est souvent le cas que presque tous les accès au disque sont rapides, mais qu’en cas individuels, ils peuvent être beaucoup plus lents lorsque certaines E/S se produisent en arrière-plan à partir d’autres processus. Si possible, il est préférable de supposer que ces choses ne sont pas rapides.

Exemple de code permettant d’activer dès le début de votre android.app.Applicationméthode , android.app.Activityou d’un autre composant d’application android.app.Application#onCreate :

override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                StrictMode.setThreadPolicy(
                    StrictMode.ThreadPolicy.Builder()
                    .detectAll()
                    .build()
                )
                StrictMode.setVmPolicy(
                    StrictMode.VmPolicy.Builder()
                    .detectAll()
                    .build()
                )
            }

Vous pouvez décider de ce qui doit se produire lorsqu’une violation est détectée. Par exemple, l’utilisation ThreadPolicy.Builder#penaltyLog de vous permet de regarder la sortie de adb logcat pendant que vous utilisez votre application pour voir les violations à mesure qu’elles se produisent.

Si vous trouvez des violations que vous sentez problématiques, il existe un large éventail d’outils pour les résoudre : threads, android.os.Handler, android.os.AsyncTaskandroid.app.IntentServiceetc. Mais ne vous sentez pas obligé de corriger tout ce que StrictMode trouve. En particulier, de nombreux cas d’accès au disque sont souvent nécessaires pendant le cycle de vie normal de l’activité. Utilisez StrictMode pour trouver les choses que vous avez faites par accident. Les requêtes réseau sur le thread d’interface utilisateur sont presque toujours un problème, cependant.

StrictMode n’est pas un mécanisme de sécurité et n’est pas garanti pour rechercher tous les accès au disque ou au réseau. Bien qu’il propage son état au-delà des limites de processus lors de l’exécution android.os.Binder d’appels, il s’agit toujours d’un mécanisme d’effort optimal. Notamment, l’accès disque ou réseau à partir d’appels JNI ne le déclenche pas nécessairement.

Documentation Java pour android.os.StrictMode.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
JniPeerMembers

Fournit des métadonnées de membre homologue JNI pour ce type.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)
ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)

Méthodes

Nom Description
AllowThreadDiskReads()

Un wrapper pratique qui prend le courant ThreadPolicy à partir de #getThreadPolicy, le modifie pour autoriser les lectures de disque et définit la nouvelle stratégie avec #setThreadPolicy, en retournant l’ancienne stratégie afin de pouvoir la restaurer à la fin d’un bloc.

AllowThreadDiskWrites()

Un wrapper pratique qui prend le courant ThreadPolicy à partir de #getThreadPolicy, le modifie pour autoriser les deux lectures de disque et les écritures, et définit la nouvelle stratégie avec #setThreadPolicy, en retournant l’ancienne stratégie afin de pouvoir la restaurer à la fin d’un bloc.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
EnableDefaults()

Active les valeurs par défaut strictMode recommandées, avec des violations juste enregistrées.

Equals(Object)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
GetThreadPolicy()

Retourne la stratégie du thread actuel.

GetVmPolicy()

Obtient la stratégie de machine virtuelle actuelle.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
NoteSlowCall(String)

Pour que le code sache qu’il est lent.

Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
SetThreadPolicy(StrictMode+ThreadPolicy)

Définit la stratégie pour les actions sur le thread actuel à détecter, ainsi que la pénalité si de telles actions se produisent.

SetVmPolicy(StrictMode+VmPolicy)

Définit la stratégie pour quelles actions du processus de machine virtuelle (sur n’importe quel thread) doit être détectée, ainsi que la pénalité si de telles actions se produisent.

ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

StrictMode est un outil de développement qui détecte les choses que vous pourriez faire par accident et les apporte à votre attention afin que vous puissiez les corriger.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à