I want to know why my Android application service occasionally goes down (whether it's the OS killing it or a crasch) and therefore I want to save a log file on my phone. How can is this be done?
Basically you got two possibilities and normally the first one should help you finding already the reason for the crash without coding anything since the logcat should show up the error occurred that led to the service end.
1) Using the logcat command
Having Log.i("your tag", "output text")
you can intercept those messages using the Android Eclipse plugin or by calling adb logcat
from your command line, having your Android device connected and your service running.
See also http://developer.android.com/guide/developing/tools/adb.html#logat
2) Writing to stdout
Using the System.out.println("...")
command you can configure your device to write the stdout into a file:
adb shell stop
adb shell setprop log.redirect-stdio true
adb shell start
See also http://developer.android.com/guide/developing/tools/adb.html#stdout
Obviously you have to spread a lot of debug output messages over your application, mainly at the critical points.
Good luck for finding the error!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With