StrictMode is a new API in Gingerbread which primarily lets you set a policy on a thread declaring what you’re not allowed to do on that thread, and what the penalty is if you violate the policy. Implementation-wise, this policy is simply a thread-local integer bitmask.
By default everything is allowed and it won’t get in your way unless you want it to. The flags you can enable in the thread policy include:
- detect disk writes
- detect disk reads
- detect network usage
- on a violation: log
- on a violation: crash
- on a violation: dropbox
- on a violation: show an annoying dialog
In addition, StrictMode has about a dozen hooks around most of the places that hit the disk (in java.io.*, android.database.sqlite.*, etc) and network (java.net.*) which check the current thread’s policy, reacting as you’ve asked.
StrictMode’s powerful part is that the per-thread policies are propagated whenever Binder IPC calls are made to other Services or Providers, and stack traces are stitched together across any number of processes.