Best practices are typically kinda obvious. Your application is most likely going to have specific unique bottlenecks. Check the android logs while your phone checks (Set a filter up) as the application runs. Check when the operating system is calling the garbage collector and how much information its removing.
If you are loading any files into memory be aware that android places (At least used to) a limit on the max size a file is (4mb) that can be loaded into memory.
What type of sensors are you using, if any... and if so in what way and is there a better way you can be using said sensors.
Are you storing to much / to little state in the application lifecycle steps.