Open source Android reverse-engineering tools are getting more sophisticated.

Two of these: