Android Studioでコーディングしていて、「このメソッドどういう処理するんだっけ?」と思った時に便利なQUICK DOCUMENTATIONがあります。
F1押すと出てきますが、標準だとFloating Modeで表示されて邪魔です(設定によって違うかもしれませんけど)。
これは右上の歯車マークをクリックして、Floating Modeを押して解除してやれば他の枠に収まってくれます。
私の場合毎回右側にDocumentationが収まるのですが、右側は個人的に見づらい。このDocumentationはドラッグすることで表示位置を移動することができます。
個人的には右下に置いておくのが好みです。
こうすることでQuick Documentation機能がぐっと使いやすくなります。
これでめでたしめでたしなんですが、このままではDocumentationの表示位置は現在開いているプロジェクト固有の設定にしかなりません。
つまり、別のプロジェクトを作成してQuick Documentationを利用した時に、再びFloating Modeで開かれてしまいます。プロジェクトごとに毎回この設定をするのは面倒なので、これを標準のレイアウトとして設定してしまいましょう。
方法はAndroid StudioのWindowメニュー→Store Current Layout as Defaultを選べばOKです。
これで毎回設定せずともすみます。
最近になってようやくサンプルなどのソースコードを読むようになったのですが、「あ、こんな便利な機能あったのね」というのを紹介します。
ショートカットキーはMacのものを書いてます。メニューにショートカットキーも表示してくれているので、Windowsの方はそこで調べてください。
Find Usages 調べたい変数やメソッドにカーソルを合わせてOpt+F7
Edit > Find > Find Usages
変数やメソッドがどこでどう使われているか調べるのに使います。今まで右クリック→Find Usagesで表示させてました。もしくはIdeaVim使っているので「/文字列」で検索してました。
メンバ変数(フィールド変数)だとValue readでどこで参照されているかが、Value writeでどこで変更されているかが表示されます。
メソッドだと、どこで呼ばれているかが表示されます。
プライベートフィールドに対して特に効果を発揮する機能です。
ちなみにFind Usagesで使われ方を表示した後は、Cmd+Shift+↓(↑)で次に出てくるところに飛んでくれます。さらにいうとCmdとOptを押し間違えると、表示させてる行の位置が入れ替わったりするので注意してくださいね。
戻る Cmd+[
Navigate > Back
日本語キーボードだと[ではなく@になります。
Find Usagesなどを使ってジャンプした場合に、ジャンプ前に読んでた場所に戻ってくれます。今まで「前読んでたところどこだ・・・」とイライラしながら探してました。
戻りすぎたらCmd+](日本語キーボードなら[)で1つ先へ飛びます。
この機能を使わずしてソースコードは読めない。
とりあえずこの2つの存在を知っているだけで格段にソースコードを読む辛さが緩和されます。
Declaration Cmd+b もしくはCmd押しながらクリック
Navigate > Declaration
私はDeclarationの意味をよく分かってないのですが、宣言先に飛ぶってことなんだと思います。
親クラスで定義されてるメソッドを呼んでる時に、そのソースコードに飛ぶときに使ってます。例えば何気なく使ってるfindViewById()はいったい何やってんだって調べたりする感じです。Cmdキー押しながらクリックするだけなんで、ショートカットキー覚えてなくても行けそうな気はします。
Android Support Libraryのクラスだとソースコードまで付属してないのでそのままでは見れないんですけどね(見れないわけではないようです)。
Android標準のクラスならソースコードもインストールしてあれば確認することができます。Android SDK ManagerでSources for Android SDKをインストールしておく必要がありますが、開発する上ではないと困ると思うのでインストールしておいた方がいいでしょう。
Javadoc表示 Javadocを確認したいメソッド等にカーソルを合わせてF1(Shift+F1でブラウザで見れます)
View > Quick Documentation
私の場合、読む時より書くときによくお世話になってる機能です。
知らずに使っていると損 ソースコードを読むのはものすごく勉強になるのに、今まで避けてきていたのはひとえに読むのが大変だったからでした。こういった便利な機能を知らなければ、そりゃ億劫になるのも当然と言えます。
使いこなしている人にとっては当然の知識かもしれませんが、初心者にとってはこんなこともわからないことなのです・・・。
調べてみるともっと便利な機能があるのかもしれません。「こんな便利な機能もあるよ」というのがあったら教えていただけると助かります。
例えば<Button>タグのブロックを選択したりだとか、LinearLayoutの中身を選択したりだとか、そういう選択の仕方をする際に覚えておくと便利なショートカットです。
opt + ↓で選択範囲を1段階狭くし、opt + ↑で選択範囲を1段階広くします。
XMLだけでなく、Javaのコードでifブロックだけを選択したりするのにも利用できます。これでまた1つマウスの呪縛から解き放たれましたね。
Android Studioで使われているショートカットキーは、Preference > Keymapで確認することができます。
cmd + ,でPreferencesを開き、Keymapを選択すると、Android Studioで使われているショートカットキーを確認したり、自分でカスタマイズしたりすることができます。
ちなみにこのキーマップの設定ですが、「間違えて押してしまったショートカットキーで何か動作したけど、一体何をやっているのかわからない」というものを調べることにも使えます。
検索窓の隣にある虫眼鏡のアイコンを押すと、ショートカットキーから機能を検索することができます。逆引き検索ができるんですね。
この機能を利用することで、ショートカットキーが割り当てられている機能を探したり、何も割り当てられていないショートカットキーを探したりすることができます。
エディタタブがたくさん開かれていくと、編集したい対象を探すのに苦労します。タブを1つずつショートカットキー使って移動していくのもいいのですが、それはそれで現在地を見失いがちで困りモノです。
Android Studioで現在開かれているファイルの一覧を表示したりできないのかなと思ったのですが、そのものズバリな機能は見当たりませんでした。とり得る対策は以下の2つかなと思います。
隠れているタブを表示する Android StudioのメニューのWindow > Editor tabsの中にshow hidden tabsというものがあります。これを選択することで、ウィンドウ中に表示しきれていないタブを表示させることができます。
ちなみに初期設定ではショートカットが割り当てられていないので、私はcmd + shift + Pを割り当ててみました。タブの移動ショートカットの隣にあるので押しやすいかなと思っただけなんですけどね。
ファイル一覧から選択する cmd + oを押すとこのような検索窓が開きます。ここで編集したいクラス名を入力してやると、対象のクラスに移動することができます。
レイアウトXMLをいじりたいといった場合には、検索対象をクラスではなくファイルにしてやると選べます。ショートカットはcmd + shift + oです。ただしファイルにすると、画像ファイルなども引っかかるようになるので、逆に探しにくいかもしれません。
さらにcmd + opt + oではSymbol検索になります。これはメソッド名やフィールド名などで検索を行うことができます。いじりたいメソッド名がはっきりしている場合はこれを使うと楽かもしれません。
Android Studioで作業していると、エディタのタブがどんどん増えていきます。タブが画面内に収まりきらなくなったらマウスで選択するのが非常に面倒くさくなります。そんなときはキーボードショートカットを利用しましょう。
cmd + ,でPreferencesを開き、キーマップを選択します。そのままだとキーマップ全てが表示されて非常に見づらいので、検索窓にtabと入力してやると、タブ関連のキーマップのみに表示を絞ることができます。
キーマップの表示上はcmd + shift + ]で順送り、cmd + shift + [で逆送りですが、キーボードの配列がJIS配列の場合この通りに動きません。これはAndroid StudioのベースとなっているIntelliJ IDEAのキーマップがUS配列に依存しているからだそうです。(他のキーマップでも同様のことが起こる)
実際にキーマップを変更してみるとわかりますが、[を入力すると]が表示され、]を入力すると\が表示されます。なんとややこしいことか・・・。
JIS配列のキーボードの場合、タブの移動のショートカットはcmd + shift + [が順送りで、cmd + shift + @が逆送りになります。
Android Studioでコーディングしている時に、何らかのメソッドを叩くと引数の一覧が表示されます。
これが非常に便利なんですが、能動的にこれを出す方法が分かりませんでした。コード補完で入力していると勝手に出てきてくれて便利なんですが、ちょっとカーソルをよそにやると消えてしまう。再度出す方法が分からないので、いちいち今まで入力したものを消してメソッド部分から再入力してました。
すごい便利なのにこれなんなんだろう・・・とモヤモヤしていたのですが、ようやく正体がわかりました。この機能はParameter Infoという機能で、Android Studioの上部メニューのViewの部分から呼び出せます。
ショートカットキーはCmd + pです。これでコーディングがかなり捗ります。