Gingerbread Gets New StrictMode API

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 […]

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.

[Source]