The Android Developer Challenge is back! Submit your idea before December 2.

Android Studio の概要

Android Studio は、IntelliJ IDEA をベースとした、Android アプリ開発用の公式の統合開発環境(IDE)です。IntelliJ の強力なコード エディタと開発ツールに加えて、Android アプリ作成の生産性を高めるさまざまな機能を利用できます。たとえば、以下のような機能があります。

  • Gradle ベースの柔軟なビルドシステム
  • 豊富な機能を備えた高速なエミュレータ
  • あらゆる Android デバイス向けの開発が可能な統合環境
  • Apply Changes を使用すると、アプリを再起動せずに実行中のアプリに対してコードやリソースの変更をプッシュすることができます。
  • アプリの共通機能の作成やサンプルコードのインポートに役立つコード テンプレートおよび GitHub との統合
  • 多彩なテストツールとフレームワーク
  • パフォーマンス、ユーザビリティ、バージョン互換性などの問題を検出する lint ツール
  • C++ と NDK のサポート
  • Google Cloud Messaging と App Engine の統合を容易にする、Google Cloud Platform の組み込みサポート

このページでは、Android Studio の基本的な機能をご紹介します。最新の変更の概要については、Android Studio リリースノートをご覧ください。

プロジェクトの構造

図 1. Android ビューのプロジェクト ファイル

Android Studio の各プロジェクトには、ソースコード ファイルとリソース ファイルを格納した 1 つ以上のモジュールが含まれています。モジュールの種類は次のとおりです。

  • Android アプリ モジュール
  • ライブラリ モジュール
  • Google App Engine モジュール

Android Studio ではデフォルトで、図 1 に示すようにプロジェクト ファイルが Android プロジェクト ビューに表示されます。このビューはモジュールごとに整理されており、プロジェクトの主なソースファイルにすばやくアクセスできます。

ビルドファイルはすべて [Gradle Scripts] の直下の階層に表示され、各アプリ モジュールには次のフォルダが含まれています。

  • manifests: AndroidManifest.xml ファイルがあります。
  • java: JUnit テストコードを含む Java ソースコードのファイルがあります。
  • res: XML レイアウト、UI 文字列、ビットマップ画像など、コード以外のすべてのリソースがあります。

実際のディスク上の Android プロジェクト構造は、ここで示した階層化されていない構造とは異なります。プロジェクトの実際のファイル構造を参照するには、[Project] プルダウンでプロジェクトを選択します(図 1 では [Android] と表示されています)。

アプリ開発の特定の側面に重点的に取り組むために、プロジェクトのファイルの表示をカスタマイズすることもできます。たとえば、プロジェクトの [Problems] ビューを選択すると、コードや構文上に認識されているエラー(レイアウト ファイルで XML 要素の終了タグが欠落しているなど)があるソースファイルへのリンクが表示されます。

図 2. [Problems] ビューのプロジェクト ファイル(問題のあるレイアウト ファイルが示されている)

詳しくは、プロジェクトの概要をご覧ください。

ユーザー インターフェース

Android Studio のメイン ウィンドウは、図 3 に示すようにいくつかの論理領域で構成されています。

図 3. Android Studio のメイン ウィンドウ

  1. ツールバーでは、アプリの実行、Android ツールの起動など、さまざまな種類の操作が可能です。
  2. ナビゲーション バーでは、プロジェクト内を移動したり、編集するファイルを開いたりすることができます。[Project] ウィンドウよりもコンパクトに構成が表示されます。
  3. エディタ ウィンドウではコードの作成や編集を行います。作業中のファイル形式に応じてエディタが変化します。たとえば、レイアウト ファイルを表示すると、エディタがレイアウト エディタになります。
  4. ツール ウィンドウ バーは IDE ウィンドウの周囲にあるバーです。このバーに表示されたボタンで、個々のツール ウィンドウを展開または折りたたむことができます。
  5. ツール ウィンドウでは、プロジェクト管理、検索、バージョン管理など、特定のタスクにアクセスできます。ツール ウィンドウは展開または折りたたむことができます。
  6. ステータスバーにはプロジェクトと IDE 自体のステータスのほか、警告やメッセージが表示されます。

ツールバーやツール ウィンドウを非表示にしたり移動したりして、メイン ウィンドウの構成を変更し、画面を広く使うこともできます。IDE のほとんどの機能は、キーボード ショートカットを使ってアクセスすることもできます。

Shift キーを 2 回押すか、Android Studio ウィンドウの右上にある虫メガネをクリックすると、ソースコード、データベース、アクション、ユーザー インターフェースの要素などをいつでも検索できます。この機能は、呼び出し方を忘れた IDE の特定の操作を見つけたいときなどに便利です。

ツール ウィンドウ

Android Studio にはプリセットされたパースペクティブはありません。作業状況に応じて関連するツール ウィンドウが自動的に表示されます。デフォルトでは、アプリケーション ウィンドウの端のツール ウィンドウ バーに最も一般的なツール ウィンドウがピン留めされています。

  • ツール ウィンドウを展開する、または折りたたむには、ツール ウィンドウ バーでツール名をクリックします。ツール ウィンドウは、ドラッグ、ピン留め、ピン留め解除、アタッチ、デタッチすることもできます。
  • デフォルトのツール ウィンドウのレイアウトに戻すには、[Window] > [Restore Default Layout] をクリックします。デフォルトのレイアウトをカスタマイズする場合は、[Window] > [Store Current Layout as Default] をクリックします。
  • ツール ウィンドウ バー全体の表示、非表示を切り替えるには、Android Studio ウィンドウの左下にあるウィンドウ アイコン をクリックします。
  • + 特定のツール ウィンドウを探すには、ウィンドウ アイコンの上にカーソルを合わせ、メニューからツール ウィンドウを選択します。

キーボード ショートカットを使用してツール ウィンドウを開くこともできます。最も一般的なウィンドウのショートカットを表 1 のリストに示します。

表 1. 便利なツール ウィンドウを開くキーボード ショートカット

ツール ウィンドウ Windows と Linux Mac
プロジェクト Alt+1 Command+1
バージョン管理 Alt+9 Command+9
実行 Shift+F10 Control+R
デバッグ Shift+F9 Control+D
Logcat Alt+6 Command+6
エディタに戻る Esc Esc
ツール ウィンドウをすべて非表示にする Control+Shift+F12 Command+Shift+F12

すべてのツールバー、ツール ウィンドウ、エディタのタブを非表示にするには、[View] > [Enter Distraction Free Mode] をクリックします。この操作によって、Distraction Free Mode が有効になります。Distraction Free Mode を終了するには、[View] > [Exit Distraction Free Mode] をクリックします。

Android Studio のほとんどのツール ウィンドウでは、Speed Search を使って検索およびフィルタ処理を実行できます。Speed Search を使用するには、ツール ウィンドウを選択して検索クエリを入力します。

詳しくは、キーボード ショートカットをご覧ください。

コード補完

Android Studio には 3 種類のコード補完機能があり、キーボード ショートカットを使ってアクセスできます。

表 2. コード補完のキーボード ショートカット

タイプ 説明 Windows と Linux Mac
基本的な補完 変数、型、メソッド、式など、基本的な候補を提示します。基本的な補完を 2 回連続して呼び出すと、プライベート メンバーやインポートされていない静的メンバーなど、さらに多くの候補が表示されます。 Ctrl+Space control+space
スマート補完 状況に応じた関連オプションを表示します。スマート補完では、予測される型とデータフローを認識したうえで候補が提示されます。スマート補完を 2 回連続して呼び出すと、チェーンなど、さらに多くの候補が表示されます。 Ctrl+Shift+Space control+shift+space
文補完 不足している丸かっこ、角かっこ、波かっこ、書式などを追加して、現在作業中の文を補完します。 Ctrl+Shift+Enter shift+command+enter

Alt+Enter キーを押して、クイック修正を実行し、目的のアクションを表示することもできます。

サンプルコードの検索

Android Studio のコードサンプル ブラウザでは、プロジェクトで現在ハイライトされているシンボルに基づいて、Google が提供する高品質な Android コードサンプルを検索することができます。詳しくは、サンプルコードの検索をご覧ください。

ここでは、Android Studio のおすすめのナビゲーション方法をご紹介します。

  • Recent Files 操作では、最近アクセスしたファイルを切り替えます。Recent Files 操作を呼び出すには、Ctrl+E(Mac では command+E)キーを押します。デフォルトでは、最後にアクセスしたファイルが選択されます。この操作では、左の列から任意のツール ウィンドウにアクセスすることもできます。
  • File Structure 操作では、現在のファイル構成を表示します。File Structure 操作を呼び出すには、Ctrl+F12(Mac では command+F12)キーを押します。この操作では、現在のファイルの任意の場所にすばやく移動できます。
  • Navigate to Class 操作では、プロジェクト内の特定のクラスを検索して移動します。この操作を呼び出すには、Ctrl+N(Mac では command+O)キーを押します。Navigate to Class は、キャメルハンプ、パス、ライン ナビゲーション、ミドルネーム マッチングなどの高度な式に対応しています。2 回連続で呼び出すと、プロジェクト外部のクラスの検索結果が表示されます。
  • Navigate to File 操作では、ファイルまたはフォルダに移動します。Navigate to File 操作を呼び出すには、Ctrl+Shift+N(Mac では command+Shift+O)キーを押します。ファイルではなくフォルダを検索するには、式の末尾に / を付けます。
  • Navigate to Symbol 操作では、指定した名前のメソッドまたはフィールドに移動します。Navigate to Symbol 操作を呼び出すには、Ctrl+Shift+Alt+N(Mac では command+option+O)キーを押します。
  • 現在のカーソル位置にあるクラス、メソッド、フィールド、パラメータ、文を参照するすべてのコードを検索するには、Alt+F7(Mac では option+F7)キーを押します。

スタイルと形式

編集中、Android Studio はコードスタイル設定で指定された書式とスタイルを自動的に適用します。プログラミング言語ごとに、このコードスタイル設定をカスタマイズすることができます。たとえば、タブとインデント、スペース、改行と波かっこ、空行などの規則を指定できます。コードスタイル設定をカスタマイズするには、[File] > [Settings] > [Editor] > [Code Style](Mac では [Android Studio] > [Preferences] > [Editor] > [Code Style])をクリックします。

作業中、IDE は自動的に書式を適用しますが、Control+Alt+L(Mac では Opt+Command+L)キーを押して、Reformat Code 操作を明示的に呼び出すこともできます。または、Control+Alt+I(Mac では Control+Option+I)キーを押して、すべての行のオートインデントを実行できます。

図 4. 書式設定前のコード

図 5. 書式設定後のコード

バージョン管理の基本

Android Studio は、Git、GitHub、CVS、Mercurial、Subversion、Google Cloud Source Repositories など、さまざまなバージョン管理システム(VCS)をサポートしています。

アプリを Android Studio にインポートした後、Android Studio の VCS メニュー オプションで、目的のバージョン管理システムに対する VCS サポートの有効化、リポジトリの作成、新しいファイルのバージョン管理へのインポート、その他のバージョン管理操作を実行できます。

  1. Android Studio の [VCS] メニューで [Enable Version Control Integration] をクリックします。
  2. プルダウン メニューで、プロジェクトのルートに関連付けるバージョン管理システムを選択し、[OK] をクリックします。

選択したシステムに基づいて、VCS メニューにさまざまなバージョン管理オプションが表示されます。

注: [File] > [Settings] > [Version Control] メニュー オプションを使用して、バージョン管理の設定や変更を行うこともできます。

Gradle ビルドシステム

Android Studio のビルドシステムは Gradle が基盤になっています。さらに、Android plugin for Gradle が提供する Android 固有の機能も使用できます。このビルドシステムは、Android Studio のメニューから統合ツールとして実行することも、コマンドラインから単独で実行することもできます。ビルドシステムの機能を使用すると、以下の操作を実行できます。

  • ビルドプロセスをカスタマイズ、構成、拡張する。
  • 同じプロジェクトやモジュールを使って、アプリ向けに機能の異なる APK を複数作成する。
  • ソースセット全体でコードやリソースを再利用する。

柔軟性の高い Gradle の採用によって、アプリの中核的なソースファイルに手を加えることなく、上記のすべてを実行できます。Android Studio のビルドファイルは build.gradle という名前の書式なしテキスト ファイルであり、Groovy の構文を使用します。ビルドの構成には、Android plugin for Gradle から提供される要素を使用します。各プロジェクトには、プロジェクト全体を対象とするトップレベルのビルドファイルが 1 つ存在し、それとは別にモジュール レベルのビルドファイルがモジュールごとに存在します。既存のプロジェクトをインポートすると、Android Studio は必要なビルドファイルを自動的に生成します。

ビルドシステムとその構成方法について詳しくは、ビルドの設定をご覧ください。

ビルド バリアント

ビルドシステムを使うと、1 つのプロジェクトから同じアプリの異なるバージョンを作成できます。アプリの無料版と有料版を作成する場合や、Google Play でデバイスの構成ごとに複数の APK を配信する場合に便利です。

ビルド バリアントの設定について詳しくは、ビルド バリアントの設定をご覧ください。

複数 APK のサポート

複数 APK のサポートにより、画面密度または ABI に基づいて複数の APK を効率的に作成することができます。たとえば、あるアプリの APK を hdpi と mdpi の各画面密度用に個別に作成することができます。さらに、それらを 1 つのバリアントとみなし、テスト用 APK、javac、dx、ProGuard の設定を共有することもできます。

複数 APK のサポートについて詳しくは、複数 APK の作成をご覧ください。

リソースの圧縮

Android Studio のリソース圧縮機能は、パッケージ化アプリとライブラリの依存関係から使用されていないリソースを自動的に削除します。たとえば、アプリが Google Play 開発者サービスを使用して Google ドライブの機能にアクセスしており、現在 Google ログインを使用していない場合、リソース圧縮によって SignInButton ボタン用の各種のドローアブル アセットが削除されます。

注: リソース圧縮は、ProGuard などのコード圧縮ツールと連携して動作します。

コードとリソースの圧縮について詳しくは、コードとリソースの圧縮をご覧ください。

依存関係の管理

プロジェクトの依存関係は、build.gradle ファイルで名前を指定して設定します。Gradle が依存関係を調べて、ビルドで利用できるようにします。build.gradle ファイルでは、モジュールの依存関係、リモート バイナリの依存関係、ローカル バイナリの依存関係を宣言できます。Android Studio はデフォルトで、Maven Central Repository を使用するようにプロジェクトを設定します(この設定は、プロジェクトのトップレベルにあるビルドファイルに含まれています)。依存関係の設定について詳しくは、ビルド依存関係の追加をご覧ください。

デバッグツールとプロファイル ツール

Android Studio では、インライン デバッグやパフォーマンス分析ツールを使用したコードのデバッグとパフォーマンス改善が可能です。

インライン デバッグ

インライン デバッグを使用すると、Debugger ビューでリファレンス、式、変数の値をインラインで確認できるため、コードを詳しく検証することができます。インライン デバッグでは、次のような情報を利用できます。

  • 変数値のインライン表示
  • 選択したオブジェクトを参照しているオブジェクト
  • メソッドの戻り値
  • ラムダ式と演算子式
  • ツールチップの値

図 6. インライン変数値

インライン デバッグを有効にするには、[Debug] ウィンドウで設定アイコン をクリックし、[Show Values Inline] チェックボックスをオンにします。

パフォーマンス プロファイラ

Android Studio のパフォーマンス プロファイラを使用すると、アプリのメモリおよび CPU 使用率を容易にトラッキングできるほか、割り当てが解除されたオブジェクトの検出、メモリリークの特定、グラフィックのパフォーマンスの最適化、ネットワーク リクエストの分析を行うことができます。パフォーマンス プロファイラを使用するには、デバイスまたはエミュレータでアプリを実行しているときに [Android Profiler] タブを開きます。

パフォーマンス プロファイラについて詳しくは、パフォーマンス プロファイリング ツールをご覧ください。

ヒープダンプ

Android Studio でメモリ使用率をプロファイリングしながら、同時にガベージ コレクションを開始したり、Android 固有の HPROF バイナリ形式ファイルのヒープ スナップショットに Java ヒープをダンプしたりすることができます。HPROF ビューアには、クラス、各クラスのインスタンス、参照ツリーが表示されます。これらは、メモリ使用率のトラッキングやメモリリークの特定に役立ちます。

ヒープダンプの使用について詳しくは、ヒープとメモリ割り当ての検査をご覧ください。

Memory Profiler

Memory Profiler では、メモリ割り当てをトラッキングして、特定の操作を実行したときにオブジェクトが割り当てられる場所を監視することができます。この割り当てを把握することで、操作に関連するメソッド呼び出しを調整して、アプリのパフォーマンスやメモリの使用を最適化できます。

割り当てのトラッキングと分析について詳しくは、ヒープとメモリ割り当ての検査をご覧ください。

データファイルへのアクセス

Android SDK ツール(Systracelogcat など)は、アプリの詳細な分析に使用できるパフォーマンス データやデバッグデータを生成します。

生成された利用可能なデータファイルを表示するには、[Captures] ツール ウィンドウを開きます。生成されたファイルの一覧で目的のファイルをダブルクリックすると、データを参照できます。.hprof ファイルを右クリックすると、標準のファイル形式への変換を行い、RAM の使用状況の調査などに使用できます。

コード インスペクション

Android Studio は、プログラムをコンパイルするたびに設定済みの lint およびその他の IDE インスペクションを自動的に実行するため、コードの構造上の品質に関する問題を容易に特定して修正できます。

lint ツールでは、Android プロジェクトのソースファイルをチェックして、潜在的なバグを検出するほか、正確性、セキュリティ、パフォーマンス、ユーザビリティ、アクセシビリティ、国際化について最適化するための改善点を特定します。

図 7. Android Studio での lint インスペクションの結果

Android Studio では、lint チェックに加えて IntelliJ コード インスペクションも実行し、アノテーションを検証してコーディングのワークフローを効率化することができます。

詳しくは、lint チェックによるコードの改善をご覧ください。

Android Studio でのアノテーション

Android Studio は、変数、パラメータ、戻り値のアノテーションをサポートしており、これらを通じて null ポインタ例外やリソースタイプの不一致などのバグを検出することができます。Support-Annotations ライブラリは、Android SDK Manager の Android Support Repository に格納されているため、Android Studio で使用することができます。Android Studio はコード インスペクションを行う際に、設定済みのアノテーションを検証します。

Android のアノテーションについて詳しくは、アノテーションによるコード インスペクションの改善をご覧ください。

ログ メッセージ

Android Studio でアプリをビルドして実行する場合、[Logcat] ウィンドウで adb の出力とデバイスのログメッセージを参照できます。

パフォーマンス プロファイリング

アプリの CPU、メモリ、ネットワーク パフォーマンスをプロファイリングするには、[View] > [Tool Windows] > [Android Profiler] をクリックして Android Profiler を開きます。