Techniques, Philosophy, and Tools for Android Performance Optimization