Android Studio 他人に自慢したくなる便利機能10選

Eclipseにない便利機能や、見逃しがちな便利機能を紹介します。

[Android Studio の各ショートカットをほぼ完璧に Eclipse と揃えて使っている](http://qiita.com/arai-wa/items/30eed1d617d1f12dd42d)のですが、知らないことが意外とありました。

# 1. Search Everywhere（なんでも検索）
クラス、ファイル、変数、設定項目、メニューまで、何でもかんでも検索してくれます。
何かを探したいときはとりあえずこれで探せます。

* Eclipse のクイック検索と違って、変数やメソッドまで検索対象になります。
* 前方一致とか部分一致とかいうレベルではない賢さで単語の境目を認識してくれています。たとえばクラス名の単語を一つ抜かしても検索でヒットします。
    * 「gitmodule」で「GitHubModule」がヒットしたり。

![search.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/352762ea-2b6b-f834-8666-fa0f86c58e47.jpeg)
ウィンドウ右上の検索ボタンで使えます。

# 2. Find Usages（使用箇所を検索）
変数やメソッドを使用している箇所を検索してくれます。

* 変数の場合は、 read している箇所と write している個所を区別して検索結果を表示してくれます。
    * だから、（どこで値を代入しているんだろう？）というのを早く探すときに、read の方は見なくて済むので、早いです。

![find.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/d08a1879-f504-f99e-bd82-93831a617126.jpeg)
Edit -> Find -> Find Usages で使えます。

# 3. Analyze Data Flow to Here（変数に値が代入されるまでのデータの流れ）
変数版の「呼び出し階層を開く」です。
変数に値を代入しにいくまでの階層です。

* どの行を経由して変数に値が代入されているかがわかります。
* Eclipseの「呼び出し階層を開く」はどのメソッドが呼ばれたかの階層を開くだけですが、この機能は、さらに細かくて、どの行を通ってきたかを教えてくれます。

![dataflow_to.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/011a2a47-70e5-db46-f21a-366b33f4fc6f.jpeg)
Analyze -> Analyze Data Flow to Here で使えます。

# 4. Analyze Data Flow from Here（変数に値が代入されてから参照されていくデータの流れ）
変数版の「呼び出し階層を開く」です。
変数が参照されていく流れをみることができます。

* 単に参照箇所を探すだけではなく、メソッドのパラメータとして変数が渡されていく流れを見ていくことができます。
* Eclipseの「呼び出し階層を開く」はメソッド単位で階層を開くだけですが、この機能は、行単位でデータの流れを見ることができます。

![dataflow_to.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/68b5be0c-b162-01c9-61d8-1a6c453297ac.jpeg)
Analyze -> Analyze Data Flow from Here で使えます。

# 5. Local Changes（変更したファイルを表示）
たとえば git を使っているとして、コミットしていないファイルの
一覧と diff を表示させられます。

* 変更したファイルとそもそも add していないファイルとをわけて一覧表示させられます。
* Eclipse も Git のプラグインで同じことができますが、あれとは違って、自動的にリアルタイムで一覧を更新してくれます。

![changes_local.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/5a6a3c64-7352-3aa7-a5fe-1813781180e1.jpeg)
View -> Tool Windows -> Local Changes で使えます。

# 6. Version Control（GUI で行った git の操作を、git のコマンドで表示
GUIで行った git の操作を、コマンドで見せてくれます。
トラブったときに操作ログとして見ることができます。

![git.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/af1266e8-4dc7-da9c-932d-cb1ad30bf242.jpeg)
View -> Tool Windows -> Version Control で使えます。

# 7. Project とか Android とか Problem の切り替え
下の画像の赤い四角形で囲ってある場所で色々と切り替えられます。
![project.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/fa5bf144-c9d1-075e-08b6-fe2951eb0de2.jpeg)

いくつかありますが、主なものは下の通りだと思います。

* Project : 普通にディレクトリやファイルを表示してくれます。
* Android : Androidアプリの開発でよく使うファイルをいい感じに表示してくれます。
* Packages : リソースファイルをいい感じに見つけやすくなります。
* Problems : エラーの一覧を表示してくれます。これに関しては、Eclipse の類似機能の方が優れていると思います。より詳細まで表示してくれたり、エラーと警告を分けてくれたりしてくれるので。

# 8. Terminal
ターミナルを開いてくれます。
Windows なら cmd.exe です。これは設定で powershell.exe などに変更できます。
![terminal.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/1d728c31-b9d9-1785-341f-335616bedd3a.jpeg)
View -> Tool Windows -> Terminal で使えます。

# 9. Hightlight Usages in File
変数やメソッドにハイライトをつけることができます。
しかもそのハイライトを維持できます。

![highlight.jpg](https://qiita-image-store.s3.amazonaws.com/0/44676/d8727ce5-80a7-aaa4-cc47-442ff56d1a8d.jpeg)
Edit -> Find -> Highlight Usages in File で使えます。
解除するには Esc キーか、もう一度同じ操作です。

# 10. マクロ機能
色々な操作のマクロを作って、ショートカットを割り当てられます。
使い方は[Android Studioでファイル保存時にコードを最適化したい](http://qiita.com/chocomelon/items/46810763a5be0a433158)で解説してくださっています。

# その他
スクリーンショットに写っているコードは[https://github.com/forkhubs/android](https://github.com/forkhubs/android)です。[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)だそうです。