It's unfortunate to hear you had a bad experience with our SDK :(
We've actually fixed a few ANR deadlocks in this last release [1], as well as a few others in the releases since 1.8.0 [2].
If you can supply reproduction steps, we'd love to be able to fix this issue as I'm sure you're not the only one experiencing it. In addition, we're more than happy to accept fixes as contributions :D
I think the guy on the ticket didn't really understand what I was saying. I'm happy to provide any extra info necessary (what I can remember anyway).
From looking through the code, the issue still appears to exist. [1] is called on the Main Thread. It eventually calls to a synchronized block [2]. [3] is called from a background thread and uses the same synchronised lock.
--> Main Thread + Background Thread using same lock == Trouble
One other annoying issue I reported (#937744189590638 - private) was not being able to update the GCM token. The field is readonly, even though the GCM docs explicitly state that the key changes over time. Meaning you have to delete and recreate the Installation - and what happens if you have other objects linked to that installation? Super annoying. Could be easily solved by making that field writable.
I've responded to both your tickets. The deviceType issue seems be resolved now, but please ping me on Twitter at @grantland if the deadlock issue fails to re-open. I just need the SDK version you were using since your thread dump was obfuscated.
WRT the ParseCommandCache links you sent, you're right that there is some trouble using the same lock on a background thread and UI thread. It would possibly cause some UI stuttering, but it wouldn't necessarily cause a deadlock on it's own. There's probably a bit more to it and I'd love to dig deeper and find out why.
For any others reading this - can confirm, deviceToken issue is resolved. It is actually possible to update a pushToken, but you need to have an installationId set (otherwise you'll get an error saying it's not possible).
Posted more info for the ParseCommandCache ANR in the ticket.
We've actually fixed a few ANR deadlocks in this last release [1], as well as a few others in the releases since 1.8.0 [2].
If you can supply reproduction steps, we'd love to be able to fix this issue as I'm sure you're not the only one experiencing it. In addition, we're more than happy to accept fixes as contributions :D
[1]: https://github.com/ParsePlatform/Parse-SDK-Android/releases/...
[2]: https://parse.com/docs/downloads