Android Studio の概要

Android Studio は Android アプリ開発用の公式の統合開発環境(IDE)です。 IntelliJ IDEA の強力なコードエディタとデベロッパー ツールをベースとした Android Studio には、Android アプリを構築する際の生産性向上に役立つ次のような多くの機能が用意されています。

  • Gradle ベースの柔軟なビルドシステム
  • 豊富な機能を備えた高速なエミュレータ
  • あらゆる Android デバイス向けの開発が可能な統合環境
  • ライブ編集によりエミュレータと実機でコンポーザブルをリアルタイムに更新
  • アプリの共通機能の作成やサンプルコードのインポートに役立つコード テンプレートおよび 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 テストコードを含む Kotlin および Java ソースコードのファイルがあります。
  • res: UI 文字列、ビットマップ画像など、コード以外のすべてのリソースがあります。

実際のディスク上の Android プロジェクト構造は、ここで示した階層化されていない構造とは異なります。プロジェクトの実際のファイル構造を表示するには、[Project] メニューから [Android] ではなく [Project] を選択します。

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

Gradle ビルドシステム

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

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

柔軟性の高い Gradle の採用によって、アプリの中核的なソースファイルに手を加えることなく、上記のすべてを行えます。

Android Studio ビルドファイルの名前は、Kotlin(推奨)を使用する場合は build.gradle.ktsGroovy を使用する場合は build.gradle になります。これらは書式なしテキスト ファイルであり、Kotlin または Groovy の構文を使用ます。ビルドの構成には、Android Gradle プラグインから提供される要素を使用します。各プロジェクトには、プロジェクト全体を対象とするトップレベルのビルドファイルが 1 つ存在し、それとは別にモジュール レベルのビルドファイルがモジュールごとに存在します。既存のプロジェクトをインポートすると、Android Studio により必要なビルドファイルが自動的に生成されます。

ビルドシステムの詳細とビルド構成方法については、ビルドを構成するをご覧ください。

ビルド バリアント

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

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

複数 APK のサポート

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

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

リソースの圧縮

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

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

コードとリソースの圧縮について詳しくは、アプリの圧縮、難読化、最適化をご覧ください。

依存関係を管理する

プロジェクトの依存関係は、モジュール レベルのビルド スクリプトで名前を指定して設定します。Gradle は依存関係を検出し、ビルドで使用できるようにします。build.gradle.kts ファイルでは、モジュールの依存関係、リモート バイナリの依存関係、ローカル バイナリの依存関係を宣言できます。

Android Studio では、プロジェクトはデフォルトで Maven Central Repository を使用するように設定されます。この設定は、プロジェクトのトップレベルにあるビルドファイルに含まれています。

依存関係の設定について詳しくは、ビルド依存関係の追加をご覧ください。

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

Android Studio のインライン デバッグやパフォーマンス分析ツールなどは、コードのデバッグやパフォーマンスの改善に役立てることができます。

インライン デバッグ

インライン デバッグを使用すると、参照、式、変数の値をインラインで確認できるため、デバッガビューでのコードのウォークスルーがしやすくなります。

インライン デバッグでは、次のような情報を利用できます。

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

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

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

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

デバイスまたはエミュレータでアプリを実行した状態でパフォーマンス プロファイラを使用するには、[View] > [Tool Windows] > [Profiler] を選択して Android Profiler を開きます。

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

ヒープダンプ

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

ヒープダンプの使用について詳しくは、ヒープダンプをキャプチャするをご覧ください。

Memory Profiler

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

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

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

Android SDK Tools(SystraceLogcat など)からは、アプリの詳細な分析に使用できるパフォーマンス データやデバッグデータが生成されます。

生成済みの利用可能なデータファイルを表示するには:

  1. [Captures] ツール ウィンドウを開きます。
  2. 生成済みファイルの一覧で目的のファイルをダブルクリックすると、データを参照できます。
  3. HPROF ファイルを右クリックして、標準に変換します。
  4. RAM の使用状況のファイル形式を調査します。

コード インスペクション

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

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

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

Android Studio では、lint チェックに加え、IntelliJ コード インスペクションや、コーディング ワークフロー効率化のためのアノテーションの検証も行われます。

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

Android Studio でのアノテーション

Android Studio は、変数、パラメータ、戻り値のアノテーションをサポートしており、これらを通じて null ポインタ例外やリソースタイプの競合などのバグを検出できます。

Jetpack Annotations ライブラリは、Android SDK Manager の Android Support Repository に格納されているため、Android Studio で使用できます。Android Studio では、コード インスペクション中に、設定済みのアノテーションが検証されます。

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

ログ メッセージ

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

デベロッパー アカウントへのログイン

Android Studio でデベロッパー アカウントにログインすると、Firebase など、認証を必要とする追加のツールを利用できます。ログインすることにより、Google サービス全体にわたって自分のデータを表示し管理する権限を、これらのツールに与えることになります。

Android Studio でプロジェクトを開いたら、次のようにして、デベロッパー アカウントへのログインや、デベロッパー アカウントの切り替えを行えます。

  1. ツールバーの端にあるプロフィール アイコン をクリックします。

  2. 表示されたウィンドウで、次のいずれかの操作を行います。

    • まだログインしていない場合は、[Sign In] をクリックして、Android Studio からリストされたサービスにアクセスできるようにします。
    • すでにログインしている場合は、[Add Account] をクリックして別の Google アカウントにログインします。

      または、[Sign Out] をクリックしてから再び前のステップを行うことで、別のアカウントにログインすることもできます。