As a developer, the better you understand your tools, the more productive you get.
In the series, I’m going to cover some essential and helpful tips and tricks based on our daily usage scenarios, to help you to get the most out of Android Studio.
Key concept: Mouseless-Driven Developement
An over-dependence on using your mouse while coding can have results of being lower productivity. That is why that we emphasize the Mouseless-Drive Development. Try to use the keyboard shortcut as much as possible can help you be more productive. The keyboard shortcuts in this article are based on default keymaps on MacOS. Linux and Windows equivalents can be found here. And I use the following symbols to represent key.
- ⌘ = Command Key
- ⌥ = Option (Alt) Key
- ⇧ = Shift Key
- ⌃ = Control Key
Navigation
During the time we develop a great Android app, we may spend more time nagivating in our code than you can image, so I choose Navigation as the first topic in this series. Let’s get started to learn how to navigate code efficiently.
Search Everywhere: Double ⇧Shift
The most wild and powerful search from your entire project. If you don’t have any idea how to find the thing you want, just type double SHIFT to search everywhere.

Navigate -> File (or Class, Symbol)
The Shortcut keys for Navigate -> File / Class / Symbo are [⌘ + ⇧ + O] / [⌘ + O] / [⌘ + ⌥ + O] respeatively. You can browse any file in your project, such Java file, xml layout, drawable, string resource file…etc. Or if you know that is a class or symbol in advance, please use Navigate -> Class / Symbol
.
File structure: ⌘ + F12
Use Navigate -> File Structures
.This will list all the constants, instance / static variables, methods, inner classes…etc in the file. I usually use this to jump to a specific methods in a class file.

Go to Line: ⌘ + L
When opening a file, you can go to a exact line by Navigate -> Line/Column
.
Recent Files: ⌘ + E
I often copy / check code / do some stuff from other file, after performing whatever I do, how can I go back to the original file right away? Use View -> Recent FIles
.

Call Hierarchy: ⌥ + ⌃ + H
How do I find all the caller of a specific method? Use Navigate -> Call Hierarchy
. You can find the whole calling path from the start of the method.
Type Hierarchy: ⌃ + H
How do I find the class inheritance hierarchy? How can I find which classes extends another class and vice versa? Or how can I find which classes implement this interface? Use Nagivate -> Type Hierarchy
.

Find Usages: ⌥ + F7
How do I find where/who uses a field / method / class / file? Use Edit -> Find -> Find Usages
. The result will be shown grouped by value read and write.

Find in Paths: ⌘ + ⇧ + F
The alternative way to find usages is Find in Paths with more powerful searching. Use Edit -> Find -> Fine in Paths
. You can specify where to search, how to match your keyword.
Android Studio supports different search modes:
- Match case: The search is cast-sensitive.
- Words: The search results must match the whole word only (and case-sensitive).
- Regex: The search term will be perceived as a regular expression.
- File mask: You can specify the file matching pattern, such as
*.kt
for searching kotlin source code files.

In the next article, we will take a look at some useful tips when we write the code.
Happy coding!!
helpfull
thanks for sharing! I had not seen the `Call Hierarchy` view before. very useful
I just can’t use a efficient way to find the caller of a method until I find out “Call Hierarchy”. I used to use “Find Usages” before.
Fu*k non Mac users.
I provide a equivalent reference for different OS, my personal development os is Linux, not mac at all.
What do you use for moving forward or backward or up or down a single character? Like Vim has hjkl or Emacs has Ctrl+F, Ctrl+B, and so on.
I just use arrow keys to move, in this case, I don’t set any extra config for that.