Question

I noticed that a DropBoxManager has been introduced in Android API since FroYo (API 8).

It looks like an alternative logger capable of logging not only text but also files or byte arrays, but I could not find any detailed doc anywhere about how and when we should use it.

The latest android dev blog post introducing StrictMode talks about it, StrictMode can append data to the DropBox, and we are given a shell command to retrieve these data.

Please share here your knowledge about this! Why has it been implemented in addition to the usual logcat? Can we use this to share data across apps? What kind of apps use it?

Was it helpful?

Solution

There are basically three logs on the system:

Log:

  • for short, textual data
  • in-memory ringbuffer, fast
  • ephemeral (you'll lose it on a crash, or the ringbuffer scrolls)
  • intended for app developers

EventLog is:

  • for short, binary data
  • in-memory ringbuffer, fast
  • ephemeral (you'll lose it on a crash, or the ringbuffer scrolls)
  • intended for platform developers to collect statistics

DropBox:

  • for long text or binary data
  • persistent, written to disk
  • kinda slow (disk)
  • meant for platform developers too, mostly to collect crashes & large statistics
  • subject to limits, deleted by tag if a tag's count and/or size get too large

DropBox is what we used during development to capture all the StrictMode violations in Gingerbread.

You can use DropBox for one-off debugging, but it's not really recommended. It's definitely not recommended as a way to share data between apps. It's not reliable enough, and you can't put permissions on the data. You should just use a shared userid and use the normal filesystem with appropriate permissions.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top