One of the features provided by the Play Store on Android is the ability to report crashes to the developer when an app crashes. Whenever you are using an app which crashes, I know the tendency and easier thing to do is to dismiss the dialog and move on with your life. There are several reasons for this, some are too busy to report the error, others are worried about privacy, etc. That’s ok, but doesn’t really help anyone.

I want to shed some more light on what happens when you click that button. Android collects some information about the crash, things like the application version, your Android version, system state and the logs of the application just before it crashed and sends to the developer. You can also include a note if you wish (please do) describing what was happening when the crash occurred. This helps your developer to quickly fix this problem. Android also offers you the ability to review the information that will be sent before sending it.

As a developer, when you log in to the Google Play Developer console, you get to see a view like the one in the picture. There is little if any identifying information there, but the crash logs are invaluable for fixing bugs.

You might say instead of reporting, you could just file a new bug in the issue tracker. That’s also good, but often times, a bug is not easily reproducible on another device. In the case of Android, there are thousands of different devices out there and it is impossible to test for all. Including the crash report created by Android enables the developer to quickly trace where the error is coming from on your device, even if he/she cannot reproduce it on his/her own device.

So dear User, the next time you think about dismissing the crash report, please think again. Sending that report will make life easier for the developer, and for you (as in the bug gets fixed faster) and everyone else.

Bring on the comments

I find that I have used to send tracebacks and crash reports much more commonly when they weren’t so nicely automated.

This way, they collect a plethora of information that I rarely have time to review, and thus I am less likely to submit it (how much of a core dump does the report contain? will it perhaps have bits of memory that contain some sensitive data like my passwords or account details).

Sorry, but as a software engineer, I will never trust a system-wide framework for reporting tracebacks, because it can’t special-case any privacy filtering that a more specific solution tied to a particular program could.

As a developer, I only see the output of System.printstackTrace() – the hierarchy of method invocations – from my app at the point of crash. As well as the app version you are using.

It is healthy to be paranoid when it comes to privacy. But the thing is, if you are using Android connected to the Play store and Google services, there is little which Google doesn’t already know (what apps you have installed, and the ton of other data collected by Google Play services).

So I can only speak about what I see as a dev, and that is logs from my app which help me easily identify problems. I have no idea what else Google collects and what they do with it.