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

Android Studio リリースノート

Android Studio は Android 開発用の公式 IDE で、Android アプリの開発に必要なものがすべて含まれています。

最新版を入手するには、[Help] > [Check for updates](Mac の場合、[Android Studio] > [Check for updates])をクリックします。

こちらから Android Studio をダウンロードすることもできます。

Android Studio で問題が発生した場合は、既知の問題トラブルシューティングをご覧ください。

各プレビュー リリースにおける重要な修正のリストなど、リリースに関する最新情報については、リリース アップデート情報をご覧ください。

Android Plugin for Gradle の新機能については、リリースノートをご覧ください。

3.4(2019 年 4 月)

Android Studio 3.4 はメジャー リリースで、さまざまな新機能や改善措置が組み込まれています。

3.4.2(2019 年 7 月)

このマイナー アップデートには、さまざまなバグ修正やパフォーマンス改善措置が組み込まれています。主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。

3.4.1(2019 年 5 月)

このマイナー アップデートには、さまざまなバグ修正やパフォーマンス改善措置が組み込まれています。主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。

3.4.0 に関する既知の問題

  • Android Q ベータ版を搭載しているデバイスにアプリをデプロイする場合、プロファイリングが無効になります。

  • Data Binding ライブラリを使用しているときに、NPE により LiveDataListener.onChanged() が失敗することがあります。この問題は、Android Studio 3.4.1 で修正されており、Android Studio 3.5 の最新のプレビュー版でも対応済みです(issue #122066788 を参照)。

IntelliJ IDEA 2018.3.4

IntelliJ IDEA 2018.3.4 リリースによる改善に伴い、コアの Android Studio IDE が更新されました。

Android Gradle Plugin 3.4.0 アップデート

Android Gradle Plugin 3.4.0 の新機能については、リリースノートをご覧ください。

新しい [Project Structure] ダイアログ

新しい [Project Structure] ダイアログ(PSD)を使用すると、依存関係の更新や、モジュール、ビルド バリアント、署名設定、ビルド変数といった各種プロジェクト要素の設定を簡単に行うことができます。

PSD を開くには、メニューバーから [File] > [Project Structure] を選択します。また、Windows や Linux の場合は Ctrl+Shift+Alt+S を、macOS の場合は Command+;(セミコロン)を押すことで、PSD を開くこともできます。以下では、PSD の新しいセクションや更新されたセクションについて説明します。

Variables

PSD の新しい [Variables] セクションでは、ビルド変数を作成、管理することで、たとえば、依存関係のバージョン番号をプロジェクト全体で一貫させるように設定できます。

  • プロジェクトの Gradle ビルド スクリプト内にすでに存在しているビルド変数を簡単に表示して編集できます。
  • プロジェクト レベルやモジュール レベルの新しいビルド変数を、直接 PSD で追加できます。

Modules

[Modules] セクションでは、既存のモジュール内のすべてのビルド バリアントに適用されるプロパティを設定したり、新しいモジュールをプロジェクトに追加したりすることができます。たとえば、defaultConfig プロパティの設定や署名設定の管理を行うことができます。

Dependencies

プロジェクトの同期中に Gradle によって解決された各依存関係を、プロジェクトの依存関係グラフに基づいて検査、視覚化することができます。手順は次のとおりです。

  1. PSD の左パネルで、[Dependencies] を選択します。
  2. [Modules] パネルで、解決済み依存関係を検査するモジュールを選択します。
  3. PSD の右側に [Resolved Dependencies] パネルが開きます(下記を参照)。

また、依存関係を検索して、プロジェクトに追加することも簡単にできます。PSD の [Dependencies] セクションでモジュールを選択し、[Declared Dependencies] セクションの [+] ボタンをクリックして、追加する依存関係のタイプを選択してください。

選択した依存関係のタイプに応じて、以下のようなダイアログが表示され、依存関係をモジュールに簡単に追加できます。

Build Variants

PSD のこのセクションでは、プロジェクト内の各モジュールのビルド バリアントやプロダクト フレーバーを作成し、設定することができます。マニフェスト プレースホルダの追加、ProGuard ファイルの追加、署名鍵の割り当てなどを行うことができます。

Suggestions

[Suggestions] セクションでは、下記のようにプロジェクトの依存関係やビルド変数の推奨アップデート情報が表示されます。

新しい Resource Manager

Resource Manager は、アプリ内のリソースをインポート、作成、管理、使用するための新しいツール ウィンドウです。メニューバーから [View] > [Tool Windows] > [Resource Manager] を選択すると、ツール ウィンドウを開くことができます。Resource Manager では、次のことができます。

  • リソースを可視化: ドローアブル、色、レイアウトをプレビューし、必要なリソースを簡単に見つけることができます。
  • 一括インポート: [Resource Manager] ツール ウィンドウにまとめてドラッグ&ドロップするか、[Import drawables] ウィザードを使用することで、複数のドローアブル アセットを一度にインポートすることができます。ウィザードにアクセスするには、ツール ウィンドウの左上隅にある [+] ボタンを選択して、プルダウン メニューから [Import Drawables] を選択します。
  • SVG を VectorDrawable オブジェクトに変換: [Import Drawables] ウィザードを使用すると、SVG 画像を VectorDrawable オブジェクトに変換できます。
  • アセットをドラッグ&ドロップ: [Resource Manager] ツール ウィンドウから Layout Editor のデザインビューや XML ビューにドローアブルをドラッグ&ドロップできます。
  • 代替バージョンを表示: [Tool] ウィンドウ内でリソースをダブルクリックすると、リソースの代替バージョンを表示できます。このビューには、作成した各種のバージョンと、それぞれに含まれている限定子が表示されます。
  • タイルビューとリストビュー: ツール ウィンドウ内のビューを変更して、リソースをさまざまな配置で視覚化できます。

詳細については、アプリのリソースを管理するをご覧ください。

APK のプロファイリング時やデバッグ時にビルド ID をチェックする

APK 内の .so 共有ライブラリ用のデバッグ シンボル ファイルを指定すると、Android Studio は、指定されたシンボル ファイルのビルド ID と APK 内の .so ライブラリ内のビルド ID が一致しているか検証します。

ビルド ID を使用して APK 内にネイティブ ライブラリをビルドした場合、Android Studio は、シンボル ファイルのビルド ID とネイティブ ライブラリのビルド ID が一致しているかチェックし、一致していない場合はシンボル ファイルを拒否します。ビルド ID を使用してビルドしていない場合、不適切なシンボル ファイルを指定すると、デバッグ時に問題が発生することがあります。

R8 がデフォルトで有効になっている

R8 は、desugar や、圧縮、難読化、最適化、dex 変換をすべて 1 つのステップに統合し、ビルド パフォーマンスを大幅に改善します。Android Gradle Plugin 3.3.0 で導入された R8 は、Android Gradle Plugin 3.4.0 以降では、アプリ プロジェクトと Android ライブラリ プロジェクトの両方に対してデフォルトで有効になっています。

R8 が導入される前のコンパイル プロセスの概要を下記の図に示します。

R8 より前の ProGuard では、dex 変換や desugar がそれぞれ異なるコンパイル ステップでした。

現在では下記の図のように、R8 により、desugar、圧縮、難読化、最適化、dex 変換(D8)がすべて 1 つのステップで完了します。

R8 により、desugar、圧縮、難読化、最適化、dex 変換がすべて 1 つのコンパイル ステップで完了します。

R8 は既存の ProGuard ルールと連携するように設計されているため、通常は、R8 を活用するうえで必要となる措置はありません。ただし、Android プロジェクト専用に設計された ProGuard とは異なるテクノロジーであるため、圧縮や最適化により、ProGuard では発生しないコードの削除が生じる可能性があります。そのため、ごくまれにこのような状況が生じた場合は、ビルド出力内にそのコードを保持するための追加ルールが必要となることがあります。

R8 を使用して問題が発生した場合は、R8 互換性に関するよくある質問をご覧になり、当該問題の解決策がないかご確認ください。解決策が記載されていない場合は、バグを報告してください。R8 を無効にするには、次の行のいずれかをプロジェクトの gradle.properties ファイルに追加します。

# Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    

Navigation コンポーネントでサポートされているすべての引数タイプが、Navigation Editor でサポートされるようになりました。サポートされるタイプの詳細については、デスティネーション間でデータを渡すをご覧ください。

Layout Editor の改善

Layout Editor の [Attributes] パネルが簡素化されて単一ページになり、各セクションを展開することで、設定可能な属性が表示されるようになりました。また、[Attributes] パネルでは以下の点も更新されています。

  • 新しい [Declared Attributes] セクションには、レイアウト ファイルで指定されている属性がリスト表示され、新しい属性も簡単に追加できます。
  • [Attributes] パネルで、各属性の横にインジケーターが表示されるようになりました。属性の値がリソース参照である場合は「中身あり」()、それ以外の場合は「中身なし」()になります。
  • エラーや警告のある属性がハイライト表示されるようになりました。赤色のハイライト表示はエラーを示し(たとえば、無効なレイアウト値を使用した場合)、オレンジ色のハイライト表示は警告を示します(たとえば、ハードコーディングされた値を使用した場合)。

依存関係を簡単にインポートするための新しいインテンション アクション

コード内で特定の Jetpack クラスや Firebase クラスの使用を開始する際に、必要な Gradle ライブラリ依存関係をプロジェクトに追加していなかった場合、追加するよう推奨する新しいインテンション アクションが表示されるようになりました。たとえば、必要な android.arch.work:work-runtime 依存関係をインポートせずに WorkManager クラスを参照した場合、下記のように、インテンション アクションを通じてワンクリックで簡単に設定できます。

特に Jetpack の場合、管理や更新を簡素化するためにサポート ライブラリが個別パッケージに再パッケージ化されているため、このインテンション アクションにより、使用する Jetpack コンポーネントに必要な依存関係だけを簡単に追加することができます。

3.3(2019 年 1 月)

Android Studio 3.3 はメジャー リリースで、さまざまな新機能や改善措置が組み込まれています。

3.3.2(2019 年 3 月)

このマイナー アップデートには、さまざまなバグ修正やパフォーマンス改善措置が組み込まれています。主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。

3.3.1(2019 年 2 月)

このマイナー アップデートには、さまざまなバグ修正やパフォーマンス改善措置が組み込まれています。

IntelliJ IDEA 2018.2.2

IntelliJ IDEA 2018.2.2 リリースによる改善に伴い、コアの Android Studio IDE が更新されました。

Android Gradle Plugin のアップデート

Android Gradle Plugin の新機能については、リリースノートをご覧ください。

Navigation Editor では、Navigation Architecture コンポーネントを使用することで、簡単にアプリ内を視覚化し、ナビゲーションを作成することができます。

詳細については、Navigation Architecture コンポーネントを使用してナビゲーションを実装するをご覧ください。

使用されていない Android Studio ディレクトリを削除する

Android Studio のメジャー バージョンを初めて実行する際、Android Studio は、対応するインストールが見つからない Android Studio バージョンのキャッシュ、設定、インデックス、ログを格納しているディレクトリがないか探します。未使用ディレクトリが見つかった場合、その場所やサイズ、最終更新日時が [Delete Unused Android Studio Directories] ダイアログに表示され、削除オプションが表示されます。

Android Studio が削除対象と見なすディレクトリは以下のとおりです。

  • Linux: ~/.AndroidStudio[Preview]_X.Y_
  • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]_X.Y_
  • Windows: %USER%\.AndroidStudio[Preview]_X.Y_

lint の改善

lint は、Gradle から呼び出すと非常に高速になります。大規模なプロジェクトで lint を実行した場合、最大で 4 倍速くなります。

[Create New Project] ウィザード

[Create New Project] ウィザードの外観が更新され、新しい Android Studio プロジェクトを効率的に作成できるようになりました。

詳細については、プロジェクトを作成するをご覧ください。

プロファイラのアップデート

Android Studio 3.3 では、一部のプロファイラが更新されています。

パフォーマンスの向上

ユーザーからのフィードバックに基づいて、プロファイラ使用時のレンダリング パフォーマンスが大幅に改善されました。パフォーマンスの問題が引き続き発生する場合は、引き続きフィードバックをお寄せください

プロファイラ メモリ割り当てトラッキング オプション

プロファイリング時のアプリ パフォーマンスを改善するため、Memory Profiler がデフォルトでメモリ割り当てを定期的にサンプリングするようになりました。Android 8.0(API レベル 26)以降を搭載しているデバイス上でテストを行う際は、必要に応じて、[Allocation Tracking] プルダウンを使用してこの動作を変更できます。

[Allocation Tracking] プルダウンを使用すると、以下のいずれかのモードを選択できます。

  • Full: すべてのオブジェクト メモリ割り当てをキャプチャします。多数のオブジェクトを割り当てるアプリの場合、プロファイリング時に深刻なパフォーマンス上の問題が発生する可能性があります。
  • Sampled: オブジェクト メモリ割り当てのサンプルを定期的にキャプチャします。これはデフォルトの動作で、プロファイリング時のアプリ パフォーマンスへの影響は比較的軽微です。ただし、短時間に多数のオブジェクトを割り当てるアプリの場合は、パフォーマンス上の問題が発生することがあります。
  • Off: メモリ割り当てをオフにします。このモードを選択していない場合でも、CPU 記録中はこのモードが自動的に有効になり、記録が完了すると以前の設定に戻ります。この動作は [CPU recording configuration] ダイアログで変更できます。

    トラッキングは、Java オブジェクトと JNI 参照の両方に影響します。

フレーム レンダリング データを検査する

CPU Profiler により、Java アプリがメイン UI スレッドや RenderThread の各フレームをレンダリングする際にかかる時間を検査できるようになりました。このデータは、UI ジャンクや低フレームレートの原因となるボトルネックを調査するときに役立ちます。たとえば、スムーズなフレームレートを維持するうえで必要とされる 16 ms よりも時間のかかる各フレームは赤色で表示されます。

フレーム レンダリング データを確認するには、[Trace System Calls] の使用を許可する構成を使用してトレースを記録します。トレースを記録したら、[FRAMES] セクション(下記を参照)で、記録用タイムラインに沿って各フレームに関する情報を確認します。

フレームレートの問題の調査と修正については、低速レンダリングをご覧ください。

イベント タイムライン内のフラグメント表示

イベント タイムラインに、フラグメントのアタッチやデタッチのタイミングが表示されるようになりました。また、フラグメントにカーソルを合わせると、フラグメントのステータスがツールチップに表示されます。

Network Profiler 内で接続ペイロードを書式付きテキストで表示する

これまで Network Profiler は、接続ペイロードを未加工テキストだけで表示していました。Android Studio 3.3 以降は、JSON、XML、HTML など、特定の書式付きテキストをデフォルトで表示できるようになりました。[Response] タブや [Request] タブで、[View Parsed] をクリックすると書式付きテキストで表示され、[View Source] をクリックすると未加工テキストで表示されます。

詳細については、Network Profiler を使用してネットワーク トラフィックを検査するをご覧ください。

SDK コンポーネントを自動ダウンロードする

プロジェクトが SDK プラットフォームや NDK、CMake の SDK コンポーネントを必要としている場合、事前に SDK Manager を使用して関連ライセンス契約に同意していれば、必要なパッケージを Gradle が自動的にダウンロードするようになりました。

詳細については、不足しているパッケージを Gradle で自動ダウンロードするをご覧ください。

clang-tidy のサポート

Android Studio が clang-tidy をサポートするようになり、ネイティブ コードを含むプロジェクトに対して clang-tidy を使用して静的コード分析を実行できるようになりました。clang-tidy のサポートを有効にするには、NDK を r18 以降にアップデートしてください。

検査機能を有効化(再有効化)するには、[Settings] ダイアログまたは [Preferences] ダイアログを開いて、[Editor] > [Inspections] > [C/C++] > [General] > [Clang-Tidy] に移動します。また、[Settings] ダイアログまたは [Preferences] ダイアログでこの検査をオンにした場合、右端のパネルの [Option] セクションで、clang-tidy チェックの有効化 / 無効化リストを確認できます。追加のチェックを有効にするには、リストに追加して [Apply] をクリックします。

追加オプションを使用して clang-tidy を設定するには、[Configure Clang-Tidy Checks Options] をクリックして、表示されたダイアログに追加します。

C++ カスタマイズ用オプションの削除

[Customize C++ Support] ダイアログから以下のオプションが削除されました。

  • Exceptions Support(-fexceptions)
  • Runtime Type Information Support(-ftti)

今後、上記の各動作は、Android Studio を使用して作成されたすべてのプロジェクトで有効になります。

CMake バージョン 3.10.2

CMake バージョン 3.10.2 が SDK Manager に含まれるようになりました。ただし、Gradle は引き続きバージョン 3.6.0 をデフォルトで使用します。

Gradle が使用する CMake バージョンを指定するには、モジュールの build.gradle ファイルに以下を追加します。

android {
        ...
        externalNativeBuild {
            cmake {
                ...
                version "3.10.2"
            }
        }
    }
    

build.gradle 内で CMake を設定する方法については、Gradle を手動で設定するをご覧ください。

CMake の最小バージョンを指定するための新しい「+」構文

メイン モジュールの build.gradle ファイル内で CMake のバージョンを指定する際、「+」を追加することで、CMake の cmake_minimum_required() コマンドの動作に一致させることができるようになりました。

Android App Bundle が Instant App をサポートする

Android Studio で、Google Play Instant を完全にサポートする Android App Bundle を作成できるようになりました。その結果、インストール型アプリとインスタント エクスペリエンスの両方を、単一の Android Studio プロジェクトからビルドしてデプロイし、単一の Android App Bundle に格納できるようになりました。

[Create New Project] ダイアログを使用して新しい Android Studio プロジェクトを作成する場合は、[Configure your project] > [This project will support instant apps] チェックボックスをオンにします。Android Studio が通常どおりに新しいアプリ プロジェクトを作成しますが、アプリのベース モジュールに Instant App サポートを追加するため、マニフェスト内に以下のプロパティが追加されています。

<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    

メニューバーから [File] > [New] > [New Module] を選択して、[Create New Module] ダイアログで [Instant Dynamic Feature Module] をオンにすると、インスタント対応動的機能モジュールを作成できます。なお、このモジュールを作成すると、アプリのベース モジュールもインスタント対応になります。

アプリをインスタント エクスペリエンスとしてローカル デバイスにデプロイするには、実行構成を編集して、[General] > [Deploy as instant app] チェックボックスをオンにします。

シングル バリアント プロジェクト同期

ビルド設定とプロジェクトを同期することは、プロジェクトがどのように構成されているのかを Android Studio に認識させるうえで重要なステップとなります。ただし、大規模なプロジェクトでは、この処理に時間がかかることがあります。プロジェクト内で複数のビルド バリアントを使用している場合は、現在選択しているバリアントだけをプロジェクトと同期することで、この処理を最適化できます。

この最適化を有効にするには、Android Studio 3.3 以降と、Android Gradle Plugin 3.3.0 以降を使用する必要があります。要件を満たすと、プロジェクトの同期時に、この最適化を有効にするか尋ねるプロンプトが表示されます。また、新しいプロジェクトの場合、デフォルトで最適化が有効になっています。

手動でこの最適化を有効にするには、[File] > [Settings] > [Experimental] > [Gradle](Mac の場合は [Android Studio] > [Preferences] > [Experimental] > [Gradle])をクリックして、[Only sync the active variant] チェックボックスをオンにします。

詳細については、シングル バリアント プロジェクト同期を有効にするをご覧ください。

クイック フィードバックを提供する

使用統計情報の共有を有効にして Android Studio の改善にご協力いただいている場合は、IDE ウィンドウの下部にあるステータスバーに 2 つの新しいアイコン()が表示されるようになりました。

IDE の現在の操作性を示すアイコンをクリックしてください。IDE から使用統計情報が送信され、Android Studio チームがユーザーの意見を正確に把握できるようになります。また、IDE に不具合があった場合などは、追加のフィードバックをお寄せください。

使用統計情報の共有を有効にしていない場合は、[Settings] ダイアログ(Mac の場合は [Preferences] ダイアログ)を開いて、[Appearance & Behavior] > [System Settings] > [Data Sharing] に移動し、[Send usage statistics to Google] チェックボックスをオンにすると、使用統計情報の共有を有効にできます。

3.2(2018 年 9 月)

Android Studio 3.2 はメジャー リリースで、さまざまな新機能や改善措置が組み込まれています。

3.2.1(2018 年 10 月)

この Android Studio 3.2 のアップデートでは、以下の変更や修正が行われています。

  • バンドルされた Kotlin のバージョンが 1.2.71 になりました。
  • デフォルト ビルドツールのバージョンが 28.0.3 になりました。
  • Navigation ライブラリで、引数タイプの名前が type から argType に変更されました。
  • 以下のバグが修正されました。
    • Data Binding ライブラリを使用している際、アンダーバー付きの変数名が原因で、コンパイル エラーが発生していました。
    • CMake が原因で、IntelliSense などの CLion 機能が失敗していました。
    • SliceProvider を追加すると、androidx.* ライブラリを使用していないプロジェクト内でコンパイル エラーが発生していました。
    • 一部の Kotlin 単体テストが実行されていませんでした。
    • データ バインディングの問題により、PsiInvalidElementAccessException が発生していました。
    • <merge> 要素が原因で、Layout Editor がクラッシュすることがありました。

3.2.0 の既知の問題

注: 以下の問題は Android Studio 3.2.1 で解決されています。

  • Kotlin バージョン 1.2.70 を使用しないことを強くおすすめします。

    Kotlin バージョン 1.2.61 では、Android Studio がハングアップする可能性のあるバグが修正されていますが、Kotlin 1.2.70 にはこの修正が組み込まれていません

    ただし、Kotlin バージョン 1.2.71 以降にはこの修正が組み込まれています。

  • Android Gradle Plugin 3.2.0 を使用し、renderscriptSupportModeEnabledtrue に設定している場合、通常はビルドツールのバージョンを指定する必要はありませんが、各モジュールの build.gradle ファイル内に次の行を追加する必要があります。

    android.buildToolsVersion "28.0.3"

新機能を通知するアシスタント

新しいアシスタント機能が Android Studio の最新の変更内容について通知するようになりました。

新規インストールやアップデートを行った後に Android Studio を起動したときに、お知らせする新しい情報があった場合、アシスタントが開きます。また、[Help] > [What's new in Android Studio] を選択して、アシスタントを開くこともできます。

Android Jetpack

Android Jetpack は、Android アプリ開発の効率化に役立つコンポーネント、ツール、ガイダンスの集合です。繰り返し発生するタスクを削減できるため、テスト可能な高品質アプリを簡単に短時間で作成できるようになります。Jetpack をサポートするため、Android Studio には以下のアップデートが組み込まれています。詳細については、Jetpack のドキュメントをご覧ください。

新しい Navigation Editor は、Android Jetpack の Navigation コンポーネントと統合し、アプリのナビゲーション構造の作成をグラフ表示できます。Navigation Editor により、アプリ内のデスティネーション間のナビゲーションのデザインと実装が簡素化されます。

Android Studio 3.2 では、Navigation Editor は試験運用機能です。Navigation Editor を有効にするには、[File] > [Settings](Mac の場合は [Android Studio] > [Preferences])をクリックして、左パネルで [Experimental] カテゴリを選択し、[Enable Navigation Editor] チェックボックスをオンにします。

詳細については、Navigation Editor のドキュメントをご覧ください。

AndroidX 移行

Jetpack の一環として、androidx 名前空間を使用して Android Support Library を新しい Android 拡張ライブラリに移行しました。詳細については、AndroidX の概要をご覧ください。

Android Studio 3.2 では、この処理に新しい移行機能を利用できます。

既存のプロジェクトを AndroidX に移行するには、[Refactor] > [Migrate to AndroidX] を選択します。AndroidX 名前空間に移行されなかった Maven 依存関係がある場合は、Android Studio ビルドシステムによってこのプロジェクト依存関係も自動的に変換されます。

Android Gradle Plugin には、gradle.properties ファイル内で設定できる以下のグローバル フラグが用意されています。

  • android.useAndroidX: このフラグを true に設定した場合は、AndroidX を今すぐ使い始めることを示します。このフラグがない場合は、false に設定されているものと見なされます。
  • android.enableJetifier: このフラグを true に設定した場合は、既存のサードパーティ ライブラリを AndroidX 向けに作成されたもののように自動的に変換する Android Gradle Plugin ツールサポートが必要であることを示します。このフラグがない場合は、false に設定されているものと見なされます。

[Migrate to AndroidX] コマンドを使用すると、両方のフラグが true に設定されます。

AndroidX ライブラリをすぐに使い始めたいが、既存のサードパーティ ライブラリの変換は必要ない場合は、android.useAndroidX フラグを true に設定し、android.enableJetifier フラグを false に設定します。

Android App Bundle

Android App Bundle は新しいアップロード形式で、アプリのコンパイル済みコードとリソースはすべてここに格納されますが、APK の生成と署名は Google Play ストアで行います。

そして、Google Play の新しいアプリ配信モデルである「Dynamic Delivery」が、アプリバンドルを使用して、個々のユーザーのデバイス設定に合わせて最適化した APK を生成、配信します。このため、各ユーザーは、アプリの実行に必要なコードとリソースをダウンロードするだけで済みます。デベロッパー側は複数の APK を生成、署名、管理する必要がなくなり、ユーザー側はダウンロードのサイズを抑え、最適化できます。

また、アプリ プロジェクトに動的機能モジュールを追加して、アプリバンドルに組み込むこともできます。Dynamic Delivery により、ユーザーはアプリの動的機能をオンデマンドでダウンロードし、インストールできます。

アプリバンドルを作成するには、[Build] > [Build Bundle(s) / APK(s)] > [Build Bundle(s)] を選択します。

Android App Bundle のビルド方法や分析方法などについては、Android App Bundle をご覧ください。

Layout Editor のサンプルデータ

多くの Android レイアウトにはランタイム データが含まれているため、アプリ開発の設計段階でレイアウトのデザインを可視化することが難しい場合があります。そこで、Layout Editor のサンプルデータを利用して、ビューのプレビューを簡単に確認できるようになりました。ビューを追加すると、[Design] ウィンドウで、ビューの下部に ボタンが表示されます。このボタンをクリックすると、設計時ビュー属性を設定できます。さまざまなサンプルデータ テンプレートの中から選択し、さまざまなサンプル項目を指定して、ビューを生成することができます。

サンプルデータを使用するには、新しいレイアウトに RecyclerView を追加して、ビューの下部にある設計時属性ボタン()をクリックし、サンプルデータ テンプレートのカルーセルから 1 つのテンプレートを選択します。

スライス

スライスは、Android の他のユーザー インターフェース サーフェスにアプリの機能の一部を埋め込む新しい方法です。たとえば、スライスを使用すると、Google 検索の候補にアプリの機能やコンテンツを表示することができます。

Android Studio 3.2 には、新しい Slice Provider API を使用してアプリを拡張する際に役立つビルトイン テンプレートが用意されています。また、新しい lint チェックを使用すると、ベスト プラクティスに沿ってスライスを作成することができます。

開始するには、プロジェクト フォルダを右クリックして、[New] > [Other] > [Slice Provider] を選択します。

スライスの動作をテストする方法などについては、スライス スタートガイドをご覧ください。

Kotlin 1.2.61

Android Studio 3.2 には Kotlin 1.2.61 がバンドルされており、新しい Android SDK は Kotlin との統合性が向上しています。詳細については、Android デベロッパー ブログをご覧ください。

IntelliJ IDEA 2018.1.6

IntelliJ IDEA 2018.1.6 リリースによる改善に伴い、コアの Android Studio IDE が更新されました。

Android Profiler

Android Studio 3.2 では、次の Android Profiler 機能が新しく追加されています。

セッション

プロファイラのデータを「セッション」として保存し、後で再確認したり検査したりできるようになりました。IDE を再起動するまで、プロファイラはセッション データを保持します。

メソッド トレースを記録した場合やヒープダンプを取得した場合、IDE は、そのデータをアプリのネットワーク アクティビティと一緒に個別エントリとして現在のセッションに追加します。そのため、記録内容を簡単に切り替えてデータを比較することができます。

システム トレース

CPU Profiler で、新しい [System Trace] 設定を選択すると、デバイスのシステム CPU やスレッドのアクティビティを検査できます。このトレース設定は systrace をベースとしており、UI ジャンクなど、システムレベルの問題を調査する場合に役立ちます。

このトレース設定を使用している場合、ネイティブ トレース API を使用して C / C++ コードをインストルメント化するか、Trace クラスを使用して Java コードをインストルメント化することで、重要なコードルーチンをプロファイラのタイムライン内で視覚的にマーキングできます。

Memory Profiler 内で JNI 参照を検査する

Android 8.0(API レベル 26)以降を搭載しているデバイスにアプリをデプロイする場合、Memory Profiler を使用してアプリの JNI コードのメモリ割り当てを検査できるようになりました。

アプリを実行している状態で、検査対象のタイムライン部分を選択し、下記のように、クラスリストの上部にあるプルダウン メニューから [JNI heap] を選択します。これで、通常のようにヒープ内のオブジェクトを検査できます。[Allocation Call Stack] タブでオブジェクトをダブルクリックすると、コード内のどこで JNI 参照の割り当てと解除が行われるのか確認できます。

メモリヒープ ダンプファイルをインポート、エクスポート、検査する

Memory Profiler を使用して作成した .hprof メモリヒープ ダンプファイルをインポート、エクスポート、検査できるようになりました。

.hprof ファイルをインポートするには、プロファイラの [Sessions] パネルで [Start new profiler session]()をクリックして、[Load from file] を選択します。インポートしたデータは、他のヒープダンプと同じように Memory Profiler 内で検査できます。

ヒープダンプ データを保存して後で検証するには、[Sessions] パネルの [Heap Dump] エントリの右側にある [Export Heap Dump] を使用します。[Export As] ダイアログが表示されるので、ファイル名拡張子を .hprof にしてファイルを保存します。

アプリ起動時の CPU アクティビティを記録する

アプリ起動時に CPU アクティビティを記録できるようになりました。手順は次のとおりです。

  1. メインメニューで、[Run] > [Edit Configurations] を選択します。
  2. 目的の実行構成の [Profiling] タブで、[Start recording a method trace on startup] チェックボックスをオンにします。
  3. プルダウン メニューで、使用する CPU 記録構成を選択します。
  4. [Run] > [Profile] を選択して、Android 8.0(API レベル 26)以降を搭載しているデバイスにアプリをデプロイします。

CPU トレースをエクスポートする

CPU Profiler を使用して CPU アクティビティを記録した場合、そのデータを .trace ファイルとしてエクスポートして、他のデベロッパーと共有したり後で検査したりすることができます。

CPU アクティビティの記録後にトレースをエクスポートする手順は次のとおりです。

  1. CPU タイムラインからエクスポートする記録を右クリックします。
  2. プルダウン メニューで [Export trace] を選択します。
  3. ファイルの保存先に移動し、[Save] をクリックします。

CPU トレース ファイルをインポート、検査する

Debug APICPU Profiler を使用して作成した .trace ファイルをインポートして検査できるようになりました(現在のところ、システム トレースの記録をインポートすることはできません)。

トレース ファイルをインポートするには、プロファイラの [Sessions] パネルで [Start new profiler session]()をクリックして、[Load from file] を選択します。CPU Profiler でこのデータを検査する方法は通常とほぼ同じですが、以下の点が異なります。

  • CPU タイムラインに CPU アクティビティは表示されません。
  • スレッド アクティビティのタイムラインには、実際のスレッド状態(実行中、待機中、スリープ中など)ではなく、各スレッドのトレースデータを利用できる場所だけが示されます。

Debug API を使用して CPU アクティビティを記録する

Debug API を使用してアプリをインストルメント化することで、CPU Profiler 内で CPU アクティビティの記録を開始、停止できるようになりました。デバイスにアプリをデプロイした後、アプリが startMethodTracing(String tracePath) を呼び出すと、プロファイラが CPU アクティビティの記録を自動的に開始します。アプリが stopMethodTracing() を呼び出すと、記録は停止されます。この API を使用してトリガーされた CPU アクティビティを記録している場合、CPU Profiler 内では、選択された CPU 記録構成として [Debug API] が表示されます。

Energy Profiler

Energy Profiler は、アプリの推定エネルギー使用量のグラフや、エネルギー使用量に影響するシステム イベント(ウェイクロック、アラーム、ジョブなど)を表示します。

Android 8.0(API 26)以降を搭載しているコネクテッド デバイスや Android Emulator 上でアプリを実行すると、[Profiler] ウィンドウの下部に Energy Profiler が新しい行として表示されます。

[Energy] 行をクリックすると、[Energy Profiler] ビューが最大化されます。マウスポインタをタイムライン内のバーに置くと、エネルギー使用量の内訳が CPU 別や、ネットワーク別、地域(GPS)リソース別、関連システム イベント別に表示されます。

エネルギー使用量に影響するシステム イベントは、[Energy] タイムラインの下部にある [System] タイムライン内に表示されます。[Energy] タイムライン内で期間を選択すると、指定した期間内のシステム イベントの詳細が [Event] パネルに表示されます。

[Event] パネルで、ウェイクロックなどのシステム イベントを選択すると、コールスタックや各種詳細情報が表示されます。システム イベントのコードに移動するには、コールスタック内のエントリをダブルクリックします。

lint チェック

Android Studio 3.2 では、lint チェック向けに、さまざまな機能の追加や改善が行われています。

新しい lint チェック機能を使用すると、潜在的なユーザビリティ問題に関する警告から、潜在的なセキュリティ脆弱性に関連する優先度の高いエラーに至るまで、よくあるコード問題を発見、識別することができます。

Java / Kotlin 相互運用性に関する lint チェック

Java コードと Kotlin コードの相互運用性を確保するため、新しい lint チェックは、Kotlin Interop Guide に記載されているベスト プラクティスを適用します。チェックの例としては、null 可能性アノテーションが存在しているかどうか、Kotlin ハード キーワードが使用されているかどうか、lambda パラメータが末尾に配置されているかどうかなどがあります。

各チェック機能を有効にするには、[File] > [Settings](Mac の場合は [Android Studio] > [Preferences])をクリックして [Settings] ダイアログを開き、[Editor] > [Inspections] > [Android] > [Lint] > [Interoperability] > [Kotlin Interoperability] に移動して、有効にするルールをオンにします。

コマンドライン ビルドに対してチェック機能を有効にするには、build.gradle ファイルに以下の行を追加します。

android {
        lintOptions {
            check 'Interoperability'
        }
    }
    

スライス用 lint チェック

スライス用の新しい lint チェックを使用すると、スライスが正しく作成されているかチェックできます。たとえば、スライスに対してメイン アクションを割り当てていないと、lint チェックで警告が表示されます。

新しい Gradle ターゲット

新しい lintFix Gradle タスクを使用すると、lint チェックで推奨されたすべての安全な修正措置をソースコードに直接適用することができます。適用すべき安全な修正措置を推奨する lint チェックの例としては、SyntheticAccessor があります。

メタデータのアップデート

サービス キャスト チェックなど、各種のメタデータが更新され、Android 9(API レベル 28)で lint チェックを実行できるようになりました。

新しいバリアントに対して lint を実行すると警告を表示する

どのバリアントやバージョンを使用してベースラインを記録したのかを lint が記録するようになったため、ベースラインを作成したバリアントとは異なるバリアントに対して lint を実行すると、警告が表示されます。

既存の lint チェックの改善

Android Studio 3.2 では、さまざまな点で既存の lint チェックが改善されています。たとえば、リソース サイクル チェックを適用できるリソースタイプが追加されました。また、翻訳検出機能では、エディタ内で訳抜けをすぐに検出できるようになりました。

Issue ID の表示方法の改善

Issue ID がさまざまな場所に表示されるようになりました([Inspection Results] ウィンドウなど)。これにより、build.gradle 内の lintOptions を通じて各チェックの有効化 / 無効化を指定する際に必要となる情報を見つけやすくなりました。

詳細については、Gradle を使用して lint オプションを設定するをご覧ください。

Data Binding V2

Data Binding V2 がデフォルトで有効になりました。Data Binding V2 は V1 と互換性があります。そのため、V1 でコンパイルしたライブラリ依存関係を、Data Binding V2 を使用しているプロジェクトでも使用することができます。ただし、V2 でコンパイルした依存関係を、V1 を使用しているプロジェクトで使用することはできません。

D8 の desugar

Android Studio 3.1 では、全体的なビルド時間を短縮できるように、試験運用機能として desugar ステップが D8 ツールに統合されました。Android Studio 3.2 では、D8 の desugar がデフォルトで有効になっています。

新しいコード圧縮ツール

R8 はコードの圧縮と難読化を行うための新しいツールで、ProGuard の後継となります。R8 プレビュー版の使用を開始するには、プロジェクトの gradle.properties ファイル内に次の行を追加します。

android.enableR8 = true
    

マルチ APK 向けのデフォルト ABI の変更

それぞれ異なる ABI をターゲットとする複数の APK を作成する場合、プラグインは、mipsmips64armeabi の ABI 用の APK をデフォルトで生成しなくなりました。

各 ABI をターゲットとする APK を作成するには、NDK r16b 以前を使用して、下記のように build.gradle ファイル内で対象 ABI を指定する必要があります。

    splits {
        abi {
            include 'armeabi', 'mips', 'mips64'
            ...
        }
    }
    

CMake ビルドファイル用のエディタ機能の改善

CMake を使用してプロジェクトに C / C++ コードを追加した場合に CMake ビルド スクリプトを編集できるように、Android Studio のエディタ機能が以下のように改善されています。

  • 構文ハイライト表示とコード補完: IDE 内で、一般的な CMake コマンドがハイライト表示され、コード補完候補が提示されるようになりました。また、Ctrl キー(Mac の場合は command キー)を押しながらファイルをクリックすると、そのファイルに移動できます。
  • コードの再フォーマット: IntelliJ のコード再フォーマット オプションを使用して、CMake ビルド スクリプトにコードスタイルを適用できるようになりました。
  • 安全なリファクタリング: CMake ビルド スクリプト内で参照しているファイルの名前変更や削除をしていないか、IDE のビルトイン リファクタリング ツールで確認できるようになりました。

以前のバージョンの Android Studio の場合、[Project] ウィンドウ内で表示や検査を行うことができるのは、ローカル プロジェクトから作成したライブラリに属するヘッダー ファイルに限られていました。今回のリリースでは、アプリ プロジェクトにインポートする外部 C / C++ ライブラリ依存関係にインクルードされているヘッダー ファイルも表示、検査できるようになりました。

すでにプロジェクト内に C / C++ のコードやライブラリをインクルードしている場合は、メインメニューから [View] > [Tool Windows] > [Project] を選択して、IDE の左側にある [Project] ウィンドウを開き、プルダウン メニューから [Android] を選択します。下記のように、cpp ディレクトリ内で、アプリ プロジェクトの対象範囲内にあるすべてのヘッダーが、各ローカル C / C++ ライブラリ依存関係の include ノードの下に整理されます。

ネイティブ multidex がデフォルトで有効になっている

以前のバージョンの Android Studio では、Android API レベル 21 以降を搭載しているデバイスにアプリのデバッグ バージョンをデプロイした場合に、ネイティブ multidex が有効になっていました。今回のリリースでは、デバイスへのデプロイであるかリリース用 APK の作成であるかにかかわらず、minSdkVersion=21 以上に設定されているすべてのモジュールに対して、Android Plugin for Gradle がネイティブ multidex を有効にします。

AAPT2 を Google の Maven リポジトリに移動する

Android Studio 3.2 以降、AAPT2(Android Asset Packaging Tool 2)のソースが Google の Maven リポジトリになりました。

AAPT2 を使用するには、下記のように、build.gradle ファイル内で google() 依存関係を指定する必要があります。

      buildscript {
          repositories {
              google() // here
              jcenter()
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:3.2.0'
          }
      } allprojects {
          repositories {
              google() // and here
              jcenter()
      }
    

新しいバージョンの AAPT2 ではさまざまな問題が修正されており、たとえば、Windows 上の非 ASCII 文字の処理が改善されています。

オンデマンド設定の削除

Android Studio から [Configure on demand] が削除されました。

Android Studio から Gradle への --configure-on-demand 引数の受け渡しは行われなくなりました。

ADB Connection Assistant

新しい ADB Connection Assistant により、Android Debug Bridge(ADB)接続経由でデバイスをセットアップ、使用する際、詳細な手順を確認できるようになりました。

このアシスタントを起動するには、[Tools] > [Connection Assistant] を選択します。

ADB Connection Assistant を使用すると、[Assistant] パネルの各ページに、手順や、状況に沿った操作方法、コネクテッド デバイスのリストが表示されます。

エミュレータの改善

Android Emulator を使用すると、AVD(Android 仮想デバイス)のスナップショットの保存やロードをいつでも行うことができるようになりました。エミュレート デバイスを簡単に短時間で以前の状態に戻してテストすることができます。AVD Manager を使用して AVD を編集する場合、AVD の起動時にロードする AVD スナップショットを指定できます。

今後、AVD スナップショットの保存、ロード、管理は、エミュレータの [Extended controls] ウィンドウ内にある [Snapshots] タブで行うことができます。

詳細については、スナップショットをご覧ください。

エミュレータの新機能や変更点については、エミュレータ リリースノートをご覧ください。

3.1(2018 年 3 月)

Android Studio 3.1.0 はメジャー リリースで、さまざまな新機能や改善措置が組み込まれています。

3.1.4(2018 年 8 月)

この Android Studio 3.1 のアップデートでは、以下の変更や修正が行われています。

  • バンドルされた Kotlin のバージョンが 1.2.50 になりました。
  • 新しいプロジェクトは、サポートが終了した kotlin-stdlib-jre* アーティファクトではなく、kotlin-stdlib-jdk* artifacts で作成されるようになりました。
  • ProGuard ルールの R8 解析が改善されました。
  • 以下のバグが修正されました。
    • Kotlin メインクラスを実行しようとすると、エラー「"Error: Could not find or load main class..."」により失敗していました。
    • R8 が、特定の最適化の実行中に無限ループに入っていました。
    • [Run] ウィンドウで [Rerun failed tests] コマンドを使用したときに、誤って「No tests were found」というメッセージが返されることがありました。
    • D8 が invoke-virtual インスタンスを正しく処理せず、VerifyError: invoke-super/virtual can't be used on private method によりクラッシュを引き起こしていました。
    • Data Binding コンパイラが、古いバージョンの com.android.tools:annotations に依存していました。今後、コンパイラは、ベース プロジェクトのツール アノテーションを使用するようになりました(利用可能な場合)。
    • プロファイラを使用していると、フラグメントの遷移中に Android Studio がクラッシュしていました。
    • テキスト ボックスを使用しているレイアウトをデバッグすると、デバッガがクラッシュしていました。
    • D8 が、特殊文字を含む ZIP ファイルのロードを失敗することがありました。

3.1.3(2018 年 6 月)

この Android Studio 3.1 のアップデートでは、以下のバグが修正されています。

  • Layout Editor を使用した後、メモリリークにより Android Studio が遅くなり、応答しなくなっていました。今回のアップデートでは、この問題の大半が修正されています。別のメモリリークに対処したアップデートが間もなくリリースされる予定です。
  • D8 を使用してビルドされた一部のアプリが、Verizon Ellipsis タブレット上でクラッシュすることがありました。
  • D8 を使用してビルドしたアプリを、Android 5.0 / 5.1(API レベル 21 / 22)を搭載しているデバイスにインストールしようとすると、INSTALL_FAILED_DEXOPT エラーにより失敗していました。
  • OkHttp ライブラリを使用し、D8 でビルドされた一部のアプリが、Android 4.4(API レベル 19)を搭載しているデバイス上でクラッシュしていました。
  • Android Studio が、ProcessCanceledException により起動に失敗することがありました。このバグは、com.intellij.psi.jsp.JspElementType のクラス初期化中に発生していました。

3.1.2(2018 年 4 月)

この Android Studio 3.1 のアップデートでは、以下のバグが修正されています。

  • Android Studio を終了する際、無期限にハングアップすることがありました。
  • Instant Run を有効にしている場合、ソースセットを使用して設定したビルドが失敗し、次のメッセージが表示されていました。

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • Instant Run を有効にしている場合、[Run] コマンドによって新しい Kotlin プロジェクトのビルドをトリガーしても、失敗していました。
  • build.gradle ファイルの編集中に、文字を入力してから画面に文字が表示されるまで、顕著な遅延が発生することがありました。
  • 多数のモジュールや外部の依存関係を持つプロジェクト内で dex 変換を行うと、ビルドエラーが発生し、次のエラー メッセージが表示されていました。

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • D8 メイン dex リストの計算で、一部のリフレクション呼び出しが考慮されていませんでした。

今回のアップデートには、一部のシナリオにおいて Gradle から実行する lint チェックを高速化する変更も組み込まれています。

3.1.1(2018 年 4 月)

この Android Studio 3.1 のアップデートでは、以下のバグが修正されています。

  • Android Studio 3.0 内で作成したプロジェクトを Android Studio 3.1 内で初めて開いたときに、Gradle 対応の Make タスクが、[Run/Debug Configurations] の [Before launch] エリアから削除されることがありました。その結果、[Run] ボタンや [Debug] ボタンをクリックしてもプロジェクトがビルドされず、Instant Run を使用したときに、誤った APK のデプロイやクラッシュなどのエラーが発生していました。

    この問題を解決するため、Android Studio 3.1.1 では、このエントリのないプロジェクトの実行構成に対して Gradle 対応の Make タスクが追加されます。この修正措置は、プロジェクトをロードして最初の Gradle 同期を実行した後に行われます。

  • 高度なプロファイリングを有効にしているときに、テキスト ボックスを使用しているレイアウトをデバッグすると、デバッガがクラッシュしていました。
  • [Build Variants] をクリックすると、Android Studio フリーズしていました。
  • AAR(Android アーカイブ)ファイルが 2 回抽出されていました(Gradle 同期プロセス中に 1 回、Gradle ビルドプロセス中にもう 1 回)。
  • SVG ファイルからインポートしたベクター型ドローアブルから要素が欠落することがありました。
  • compile 依存関係コンフィグレーションのサポート終了に関する警告が更新され、implementation コンフィグレーションと api コンフィグレーションに関するガイドが強化されました。compile コンフィグレーションから移行する方法については、新しい依存関係コンフィグレーションのドキュメントをご覧ください。

コーディング / IDE

IntelliJ 2017.3.3

IntelliJ IDEA 2017.3.3 リリースによる改善に伴い、コアの Android Studio IDE が更新されました。改善点としては、コレクションや文字列の制御フロー分析の改善、null 可能性推定の改善、新しいクイック フィックスなどがあります。

詳細については、IntelliJ IDEA バージョン 2017.2 / 2017.3 の JetBrains リリースノートや、バグ修正アップデートに関する JetBrains リリースノートをご覧ください。

Room による SQL 編集の改善

Room データベース ライブラリを使用すると、次のような SQL 編集機能の改善措置を活用できます。

  • Query 内のコード補完において、SQL テーブル(エンティティ)、列、クエリ パラメータ、エイリアス、結合、サブクエリ、WITH 句が認識されます。
  • SQL 構文のハイライト表示が機能するようになりました。
  • SQL 内のテーブル名を右クリックして名前を変更すると、対応する Java コードや Kotlin コードも書き換えられます(たとえば、クエリの戻り値のタイプなど)。この名前変更機能は反対方向でも機能し、Java クラスや Java フィールドの名前を変更すると、対応する SQL コードが書き換えられます。
  • [Find usages] を使用すると、SQL の使用法が表示されます(右クリックして、コンテキスト メニューから [Find usages] を選択します)。
  • Java コードまたは Kotlin コード内の SQL エンティティの宣言に移動するには、Ctrl キー(Mac の場合は command キー)を押しながらエンティティをクリックします。

Room を活用して SQL を使用する方法については、Room を使用してローカル データベースにデータを保存するをご覧ください。

データ バインディングのアップデート

このアップデートでは、データ バインディングに関して次のように改善されています。

  • LiveData オブジェクトを、データ バインディング式内で監視可能フィールドとして使用できるようになりました。ViewDataBinding クラスに、LiveData オブジェクトの監視に使用する新しい setLifecycle() メソッドが追加されました。

  • ObservableField クラスが、コンストラクタ内で他の Observable オブジェクトを受け入れることができるようになりました。

  • データ バインディング クラス用の新しい増分コンパイラをプレビューできるようになりました。この新しいコンパイラの詳細と有効化の手順については、Data Binding Compiler V2 をご覧ください。

    新しいコンパイラの主なメリットは次のとおりです。

    • ViewBinding クラスが、Java コンパイラの前に Android Plugin for Gradle によって生成されます。

    • ライブラリは、バインディング クラスを毎回生成するのではなく、生成されたバインディング クラスをアプリのコンパイル時に保持します。これにより、マルチモジュール プロジェクトのパフォーマンスが大幅に向上します。

コンパイラと Gradle

デフォルト dex コンパイラとなる D8

dex バイトコードを生成する際、D8 コンパイラがデフォルトで使用されます。

この新しい dex コンパイラには、主に次のようなメリットがあります。

  • 高速 dex 変換
  • メモリ使用量の削減
  • コード生成機能の改善(効率的なレジスタ割り当て、スマートな文字列テーブル)
  • コードをステップ実行する際のデバッグ エクスペリエンスの向上

以前に手動で D8 コンパイラを無効にしていない限り、このメリットを享受することができます。コードや開発ワークフローを変更する必要はありません。gradle.properties 内で android.enableD8false に設定した場合は、そのフラグを削除するか、true に設定してください。

android.enableD8=true
    

詳細については、新しい dex コンパイラをご覧ください。

増分 desugar

Java 8 言語機能を使用しているプロジェクトの場合、デフォルトで増分 desugar が有効になっており、ビルド時間を改善できます。

desugar は、糖衣構文を、コンパイラが効率的に処理できる形式に変換します。

増分 desugar は、プロジェクトの gradle.properties ファイル内で次のように指定すると無効にできます。

android.enableIncrementalDesugaring=false
    

簡素化された出力ウィンドウ

Gradle Console は、[Build] ウィンドウに置き換えられました。このウィンドウには、[Sync] タブと [Build] タブがあります。

簡素化された新しい [Build] ウィンドウの使用方法については、ビルドプロセスをモニタリングするをご覧ください。

バッチ更新とインデックス作成同時実行

Gradle 同期プロセスや IDE インデックス作成プロセスが大幅に効率化され、多数の冗長なインデックス作成処理に費やされる時間が削減されています。

C++ と LLDB

C++ 開発のコーディング、同期、ビルド、デバッグの各段階で、品質とパフォーマンスが大幅に改善されています。主な改善点は次のとおりです。

  • 大規模な C++ プロジェクトで、シンボル作成時間が大幅に削減されています。大規模プロジェクトの同期時間も大幅に短縮されています。

  • キャッシュ済みの結果を積極的に再利用することにより、CMake を使用してビルドや同期を実行する際のパフォーマンスが向上しています。

  • さまざまな C++ データ構造用のフォーマッタが追加され(「プリティ プリンタ」)、LLDB 出力が読みやすくなっています。

  • LLDB が機能するのは、Android 4.1(API レベル 16)以降に限られます。

Kotlin

Kotlin がバージョン 1.2.30 にアップグレードされる

Android Studio 3.1 には、Kotlin バージョン 1.2.30 が組み込まれています。

Kotlin コードをコマンドライン lint チェックで分析できるようになる

コマンドラインから lint を実行して、Kotlin クラスを分析できるようになりました。

lint を実行するプロジェクトごとに、最上位の build.gradle ファイルに Google の Maven リポジトリを含める必要があります。Maven リポジトリは、Android Studio 3.0 以降で作成したプロジェクトの場合はすでに含まれています。

パフォーマンス ツール

CPU Profiler を使用してネイティブ C++ プロセスをサンプリングする

CPU Profiler に、アプリのネイティブ スレッドのサンプル トレースを記録するデフォルト構成が追加されました。この構成を使用するには、Android 8.0(API レベル 26)以降を搭載しているデバイスにアプリをデプロイし、CPU Profiler の記録構成プルダウン メニューから [Sampled (Native)] を選択します。その後は、通常どおりトレースを記録して検査します。

記録構成を作成することで、サンプリング間隔などのデフォルト設定を変更できます。

Java スレッドのトレースに戻るには、[Sampled (Java)] または [Instrumented (Java)] 構成を選択します。

CPU トレース、メモリ割り当て結果、ヒープダンプをフィルタリングする

CPU ProfilerMemory Profiler に、メソッド トレースやメモリ割り当て、ヒープダンプの記録結果をフィルタリングする検索機能が搭載されています。

検索するには、パネルの右上隅にある [Filter]()をクリックして、クエリを入力し、Enter キーを押します。

ヒント: Ctrl+F(Mac の場合は command+F)を押して、検索フィールドを開くこともできます。

CPU Profiler の [Flame Chart] タブで、検索クエリに関連するメソッドを含むコールスタックがハイライト表示され、グラフの左側に移動します。

メソッドやクラス、パッケージ名に基づいてフィルタリングする方法については、メソッド トレースを記録して検査するをご覧ください。

Network Profiler の [Request] タブ

Network Profiler に [Request] タブが追加されました。選択したタイムライン内のネットワーク リクエストに関する詳細情報が表示されます。以前のバージョンでは、Network Profiler に表示されるのは、ネットワーク レスポンスに関する情報に限られていました。

Network Profiler のスレッドビュー

Network Profiler 内でタイムラインの一部を選択して、以下のいずれかのタブを選択すると、その期間中のネットワーク アクティビティに関する詳細情報を表示できます。

  • Connection View: 以前のバージョンの Android Studio と同じ情報が表示されます。アプリのすべての CPU スレッドを対象に、タイムラインの選択部分内で送受信されたファイルがリスト表示されます。リクエストごとに、サイズ、タイプ、ステータス、送信期間を検査することができます。
  • Thread View: アプリの各 CPU スレッドのネットワーク アクティビティを表示します。このビューでは、各ネットワーク リクエストがどのアプリのスレッドによるものなのかを検査できます。

Layout Inspector

Layout Inspector に新機能が追加されました。その中には、サポートが終了している Hierarchy Viewer ツールや Pixel Perfect ツールがこれまで提供していた機能も含まれます。

  • レイアウトを表示、検査するためのズームボタンやキーボード ショートカット
  • 参照グリッド オーバーレイ
  • 参照画像をロードしてオーバーレイとして使用する機能(レイアウトと UI モックアップを比較する際に便利です)
  • 複雑なレイアウトにおいてビューを分離できるサブツリー プレビューのレンダリング

Layout Editor

Layout Editor の [Palette] が、さまざまな点で改善されています。

  • ビューやレイアウトのカテゴリが再編成されました。
  • ビューとレイアウトに新しい [Common] カテゴリが追加されました。[Favorite] コマンドを使用して追加できます。
  • ビューやレイアウトの検索機能が改善されました。
  • 特定のビュー要素やレイアウト要素のドキュメントを開くための新しいコマンドが追加されました。

コンポーネント ツリーやデザイン エディタに追加された新しい [Convert view] コマンドを使用すると、ビューやレイアウトを別のタイプのビューやレイアウトに変換することができます。

[Attributes] ウィンドウの上部にあるビュー インスペクタ内の新しい [Create a connection] ボタン()を使用すると、選択したビューの近くのアイテムに対して簡単に制約を作成することができます。

Run と Instant Run

[Select deployment target] ダイアログの [Use same selection for future launches] オプションの動作に関して、整合性が向上しています。[Use same selection] オプションを有効にしている場合、[Run] コマンドを初めて使用したときに限り、選択したデバイスが接続解除されるまで、[Select deployment target] ダイアログが開きます。

Android 8.0(API レベル 26)以降を搭載しているデバイスをターゲットにしている場合、Instant Run により、アプリの再起動を引き起こすことなく、リソースに対する変更をデプロイできます。これが可能になるのは、リソースが分割 APK 内に格納されているためです。

エミュレータ

Android Studio 3.0 以降のエミュレータの新機能や変更点については、バージョン 27.0.2 からバージョン 27.1.12 までの Android Emulator リリースノートをご覧ください。

主な改善点は次のとおりです。

  • エミュレータの状態を保存して起動を高速化するクイックブート スナップショット。[Save now] コマンドを使用すると、カスタム起動状態を保存できます。
  • ウィンドウのないエミュレータ画面。
  • Android 8.0(API レベル 26)、Android 8.1(API レベル 27)、Android P デベロッパー プレビュー版用のシステム イメージ。

ユーザー インターフェースおよびユーザー エクスペリエンスの改善

ツールチップ、キーボード ショートカット、便利なメッセージの追加

Android Studio 内のさまざまな場所に、ツールチップや便利なメッセージ オーバーレイが追加されています。

各種コマンドのキーボード ショートカットを表示するには、ツールチップが表示されるまで、ボタンの上にマウスポインタを置きます。

[Tools] > [Android] メニューの削除

[Tools] > [Android] メニューが削除されました。以前このメニューの下にあったコマンドは、各所へ移動しています。

  • 多くのコマンドは、[Tools] メニューの直下に移動しました。
  • [Sync project with gradle files] コマンドは、[File] メニューに移動しました。
  • [Device Monitor] コマンドは削除されました(下記を参照)。

Device Monitor はコマンドラインから利用可能になる

Android Studio 3.1 では、Device Monitor の役割が以前よりも少なくなりました。多くの場合、Device Monitor が提供してきた機能は、新しいツールや改善されたツールによって提供されています。

コマンドラインから Device Monitor を呼び出す方法や、Device Monitor を通じて利用できるツールの詳細については、Device Monitor ドキュメントをご覧ください。

3.0(2017 年 10 月)

Android Studio 3.0.0 はメジャー リリースで、さまざまな新機能や改善措置が組み込まれています。

macOS ユーザー: 以前のバージョンの Android Studio を更新する場合、「Some conflicts were found in the installation area」という更新エラー ダイアログが表示されることがあります。このエラーを無視して [Cancel] をクリックすると、インストールが再開されます。

3.0.1(2017 年 11 月)

Android Studio 3.0 のマイナー アップデートで、さまざまなバグ修正やパフォーマンス改善措置が組み込まれています。

Android Plugin for Gradle 3.0.0

新しい Android Plugin for Gradle にはさまざまな改善措置や新機能が組み込まれていますが、最大の目的は、多数のモジュールを持つプロジェクトのビルド パフォーマンスを高めることです。新しいプラグインを大規模なプロジェクトで使用すると、以下のメリットがもたらされます。

  • 新しい遅延型の依存関係解決により、ビルド設定時間が短縮されます。
  • バリアント認識型の依存関係解決により、ビルド対象のプロジェクトやバリアントだけを対象にすることができます。
  • コードやリソースに対してシンプルな変更を適用する際、増分ビルドが加速されます。

今回のバージョンでは、次の機能も追加されます。

  • Android 8.0 がサポートされるようになりました。
  • 言語リソースに基づく個別 APK の作成がサポートされるようになりました。
  • Jack コンパイラなしで、Java 8 ライブラリおよび Java 8 言語機能がサポートされるようになりました。
  • Android Test Support Library 1.0(Android Test Utility および Android Test Orchestrator)がサポートされるようになりました。
  • ndk-build と cmake のビルド速度が改善されました。
  • Gradle の同期速度が改善されました。
  • AAPT2 がデフォルトで有効になりました。
  • ndkCompile の使用が制限されるようになりました。代わりに、CMake または ndk-build を使用して、APK にパッケージ化するネイティブ コードをコンパイルするよう移行する必要があります。詳細については、ndkcompile から移行するをご覧ください。

変更点の詳細については、Android Plugin for Gradle リリースノートをご覧ください。

新しいプラグインにアップグレードする準備が整ったら、Android Plugin for Gradle 3.0.0 に移行するをご覧ください。

Kotlin のサポート

Google I/O 2017 でお知らせしたように、Android 上で Kotlin プログラミング言語が公式にサポートされるようになりました。そのため、今回のリリースでは、Android Studio に Android 開発用の Kotlin 言語サポートが組み込まれています。

Java ファイルを Kotlin に変換する([Code] > [Convert Java File to Kotlin File] をクリックする)か、[New Project] ウィザードを使用して新しい Kotlin 対応プロジェクトを作成することにより、Kotlin をプロジェクトに組み込むことができます。

詳細については、Kotlin をプロジェクトに追加するをご覧ください。

Java 8 言語機能のサポート

特定の Java 8 言語機能を使用して、Java 8 でビルドされたライブラリを使用できるようになりました。Jack は不要になったため、Jack を無効にしてから、デフォルト ツールチェーンにビルトインされている改良版 Java 8 サポート機能を使用してください。

新しい Java 8 言語ツールチェーンをサポートするようにプロジェクトをアップデートするには、[File] > [Project Structure] をクリックして表示される [Project Structure] ダイアログで、[Source Compatibility] と [Target Compatibility] を 1.8 に更新します。詳細については、Java 8 言語機能を使用するをご覧ください。

Android Profiler

新しい Android Profiler は、Android Monitor ツールに代わるもので、アプリの CPU、メモリ、ネットワーク使用状況をリアルタイムで測定するための新しいツールスイートを提供します。サンプルベースのメソッド トレースを実行することで、コードの実行時間の測定、ヒープダンプの取得、メモリ割り当ての表示、ネットワーク送信ファイルの詳細な検査を行うことができます。

このツールを開くには、[View] > [Tool Windows] > [Android Profiler] をクリックします(あるいは、ツールバーにある [Android Profiler]()をクリックします)。

ウィンドウの上部にあるイベント タイムラインには、タッチイベント、キープレス、アクティビティの変更が表示されるため、タイムライン内の他のパフォーマンス イベントを詳細に理解することができます。

Android Profiler の概要タイムラインで [CPU]、[MEMORY]、[NETWORK] のいずれかのタイムラインをクリックすると、対応するプロファイラ ツールにアクセスできます。

CPU Profiler

CPU Profiler を使うと、サンプル CPU トレースかインストルメント化 CPU トレースをトリガーして、アプリの CPU スレッド使用状況を分析することができます。そして、さまざまなデータビューやフィルタを利用して、CPU パフォーマンスに関する問題のトラブルシューティングを行うことができます。

詳細については、CPU Profiler ガイドをご覧ください。

Memory Profiler

Memory Profiler は、想定外の動作やフリーズ、さらにはアプリのクラッシュを引き起こす可能性があるメモリリークやメモリチャーンを特定するのに役立ちます。アプリのメモリ使用量のリアルタイム グラフが表示され、ヒープダンプの取得、ガベージ コレクションの強制実行、メモリ割り当てのトラッキングを行うことができます。

詳細については、Memory Profiler ガイドをご覧ください。

Network Profiler

Network Profiler を使用すると、アプリのネットワーク アクティビティのモニタリングや、各ネットワーク リクエストのペイロードの検査、ネットワーク リクエストを生成したコードの確認を行うことができます。

詳細については、Network Profiler ガイドをご覧ください。

APK のプロファイリングとデバッグ

Android Studio を使用すると、Android Studio プロジェクトからビルドすることなく、APK のプロファイルとデバッグができるようになりました。ただし、デバッグを有効にして APK をビルドし、デバッグ シンボルやソースファイルにアクセスできる必要があります。

開始するには、Android Studio のウェルカム画面で [Profile or debug APK] をクリックします。すでにプロジェクトを開いている場合は、メニューバーから [File] > [Profile or debug APK] をクリックします。パッケージ化されていない APK ファイルは表示されますが、コードの逆コンパイルは行われません。そのため、適切にブレークポイントを追加してスタック トレースを表示するには、Java ソースファイルとネイティブ デバッグ シンボルをアタッチする必要があります。

詳細については、事前ビルド APK のプロファイリングやデバッグを行うご覧ください。

Device File Explorer

新しい Device File Explorer を使用すると、コネクテッド デバイスのファイル システムを検査し、デバイスとパソコン間でファイルを転送することができます。これは、DDMS で利用可能なファイル システム ツールに代わるものです。

開くには、[View] > [Tool Windows] > [Device File Explorer] をクリックします。

詳細については、Device File Explorer ガイドをご覧ください。

Instant App のサポート

新しく Android Instant App がサポートされるようになったため、Instant App モジュールと Feature モジュールという 2 つの新しいモジュール タイプを使用して、プロジェクト内で Instant App を作成できます(2 つのモジュールを利用するには、Instant Apps Development SDK をインストールする必要があります)。

また、Android Studio には、既存のプロジェクトに Instant App のサポートを追加するための新しいモジュール化リファクタリング アクションも追加されています。たとえば、プロジェクトをリファクタリングして、一部のクラスを Instant App 機能モジュール内に配置する場合は、[Project] ウィンドウ内でクラスを選択して、[Refactor] > [Modularize] をクリックします。表示されるダイアログで、クラスを配置するモジュールを選択して、[OK] をクリックします。

また、Instant App をテストする準備が整ったら、実行構成の起動オプションで Instant App の URL を指定することで、コネクテッド デバイス上で Instant App モジュールをビルドして実行することができます。[Run] > [Edit Configurations] を選択して、Instant App モジュールを選択し、[Launch Options] で URL を設定してください。

詳細については、Android Instant App をご覧ください。

Android Things モジュール

[New Project] ウィザードや [New Module] ウィザード内の新しい Android Things テンプレートは、Android 搭載 IoT デバイスの開発を開始する際に役立ちます。

詳細については、Android Things プロジェクトを作成するをご覧ください。

アダプティブ アイコン ウィザード

Image Asset Studio が、ベクター型ドローアブルをサポートするようになりました。これにより、Android 8.0 用のアダプティブ ランチャー アイコンを作成しつつ、同時に旧式デバイス用の従来型アイコン(レガシー アイコン)も作成することができます。

開始するには、プロジェクト内の res フォルダを右クリックして、[New] > [Image Asset] をクリックします。[Asset Studio] ウィンドウで、アイコンタイプとして [Launcher Icons (Adaptive and Legacy)] を選択します。

詳細については、アダプティブ アイコンをご覧ください。

フォント リソースのサポート

Android 8.0 の新しいフォント リソースをサポートするため、Android Studio にフォント リソース セレクタが追加されました。これにより、フォントをアプリ内にバンドルしたり、必要に応じてフォントをデバイスにダウンロードするようプロジェクトを設定したりすることができます。また、Layout Editor も、レイアウト内でフォントをプレビューできるようになっています。

ダウンロード可能フォントを試すには、デバイスやエミュレータが Google Play Services v11.2.63 以降を実行している必要があります。詳細については、ダウンロード可能フォントをご覧ください。

Firebase App Indexing Assistant

Firebase Assistant が更新され、App Indexing をテストするための新しいチュートリアルが追加されました。このアシスタントを開くには、[Tools] > [Firebase] を選択します。次に、[App Indexing] > [Test App Indexing] を選択します。

チュートリアルには、公開コンテンツや個人コンテンツのインデックス作成をテストするための新しいボタンが用意されています。

  • ステップ 2 で、[Preview search results] をクリックすると、URL が Google 検索の検索結果に表示されるか検証できます。
  • ステップ 3 で、[Check for errors] をクリックすると、アプリ内のインデックス登録可能オブジェクトが個人コンテンツ インデックスに追加されているか検証できます。

App Links Assistant が更新され、次の新機能が追加されました。

  • 各 URL マッピングに URL テストを追加して、インテント フィルタが実際の URL を処理できるか検証できます。

    また、<tools:validation> タグを使用して(下記を参照)、各 URL テストを手動で定義することもできます。

  • Google Smart Lock をサポートする適切なオブジェクト エントリを持つ Digital Asset Links ファイルを作成し、対応する asset_statements <meta-data> タグをマニフェスト ファイルに追加します。

URL インテント フィルタ検証ツール

Android Studio が、インテント フィルタ URL をテストできる特別なタグをマニフェスト ファイル内でサポートするようになりました。このタグは、App Links Assistant が作成できるタグと同じです。

インテント フィルタのテスト URL を宣言するには、<tools:validation> 要素と、対応する <intent-filter> 要素を追加します。たとえば、次のようになります。

<activity ...>
        <intent-filter>
            ...
        </intent-filter>
        <tools:validation testUrl="https://www.example.com/recipe/1138" />
    </activity>
    

必ず、<manifest> タグ内に xmlns:tools="http://schemas.android.com/tools" も含めるようにしてください。

インテント フィルタ定義を渡さないテスト URL が 1 つでもあった場合、lint エラーが表示されます。このようなエラーがあった場合でも、デバッグ バリアントはビルドできますが、リリースビルドが破損します。

Layout Editor

Layout Editor が更新され、次のような機能強化が追加されています。

  • 新しいツールバーのレイアウトとアイコン。
  • コンポーネント ツリーのレイアウトが更新されました。
  • ドラッグ&ドロップ ビューの挿入が改善されました。
  • エディタの下に新たにエラーパネルが追加され、すべての問題と修正案(利用可能な場合)が表示されるようになりました。
  • ConstraintLayout を使用してビルドする際の UI が改善されました。主な改善点は次のとおりです。
    • 障壁の作成が新たにサポートされるようになりました。
    • グループの作成が新たにサポートされるようになりました。ツールバーで、[Guidelines] > [Add Group] を選択します(ConstraintLayout 1.1.0 beta 2 以降が必要です)。
    • チェーンを作成する UI が新たに追加されました。複数のビューを選択して、右クリックし、[Chain] を選択します。

Layout Inspector

Layout Inspector に、アプリ レイアウトに関する問題のデバッグを容易にする機能強化が追加されました。たとえば、プロパティをグループ化して、共通カテゴリに分類できるようになりました。ほかにも、[View Tree] パネルと [Properties] パネルの両方に新しい検索機能が追加されています。

APK Analyzer

apkanalyzer ツールにより、コマンドラインから APK Analyzer を使用できるようになりました。

また、APK Analyzer が更新され、以下の点で改善されています。

  • ProGuard を使用してビルドした APK の場合、ProGuard マッピング ファイルをロードすることで、以下のような機能を dex ビューアに追加することができます。
    • コードを圧縮するときにノードを削除しないことを示す太字のノード。
    • 圧縮プロセス中に削除されたノードを表示するボタン。
    • ProGuard によって難読化されたツリービュー内のノードの元の名前を復元するボタン。
  • dex ビューア内に、各パッケージ、クラス、メソッドの推定サイズの影響が表示されるようになりました。
  • 新しいフィルタリング オプションが上部に追加されました。フィールドやメソッドの表示 / 非表示を切り替えることができます。
  • dex ファイル内で定義されていない参照であるノードは、ツリービュー内で斜体で表示されるようになりました。

詳細については、APK Analyzer を使用してビルドを分析するをご覧ください。

D8 dex コンパイラのプレビュー

Android Studio 3.0 に、D8 と呼ばれる新しいオプション dex コンパイラが追加されました。将来的には DX コンパイラの後継となる予定ですが、現在のところ、新しい D8 コンパイラを使用するかどうかはオプトイン方式になっています。

dex コンパイルは、アプリのビルド時間、.dex ファイルのサイズ、ランタイム パフォーマンスに直接影響します。新しい D8 コンパイラと現在の DX コンパイラを比較すると、D8 は高速にコンパイルすることが可能で、出力される .dex ファイルのサイズも小さく、アプリのランタイム パフォーマンスも同等以上です。

R8 を試してみる場合は、プロジェクトの gradle.properties ファイル内で次のように設定してください。

android.enableD8=true
    

詳細については、D8 コンパイラに関するブログ記事をご覧ください。

Google の Maven リポジトリ

Android Studio は、Android SDK Manager に依存するのではなく、デフォルトで Google の Maven リポジトリを使用して、Android Support Library や Google Play 開発者サービス、Firebase などの依存関係のアップデートを取得できるようになりました。これにより、特に継続的インテグレーション(CI)システムを使用している場合に、簡単にライブラリを最新の状態に保つことができます。

新しいプロジェクトの場合は、すべてデフォルトで Google Maven リポジトリが含まれるようになりました。既存のプロジェクトを更新するには、最上位の build.gradle ファイルの repositories ブロックに google() を追加します。

allprojects {
        repositories {
            google()
        }
    }
    

詳細については、Google の Maven リポジトリをご覧ください。

他の変更点

  • Android Studio のネイティブ デバッグは、32 ビット Windows をサポートしなくなりました。このプラットフォームを使用しているデベロッパーは非常に少ないため、他のプラットフォームに集中することにいたしました。32 ビット Windows を使用していて、ネイティブ コードをデバッグする予定がある場合は、Android Studio 2.3 を使用してください。
  • ベース IDE が IntelliJ 2017.1.2 にアップグレードされました。Java 8 言語リファクタリングや、パラメータ ヒント、セマンティック ハイライト表示、ドラッグ可能なブレークポイント、インスタント検索結果など、2016.32017.1 にはなかったさまざまな新機能が追加されています。
  • さまざまな新しい lint チェックが追加されました。
  • 最新の Android Emulator アップデート情報もご覧ください。

2.3(2017 年 3 月)

Android Studio 2.3.0 は、主にバグ修正を対象とする安定版リリースですが、さまざまな新機能も追加されています。

2.3.3(2017 年 6 月)

これはマイナー アップデートで、Android O(API レベル 26)のサポートが追加されています。

2.3.2(2017 年 4 月)

これは Android Studio 2.3 のマイナー アップデートで、以下の点が変更されています。

  • AVD Manager が更新され、システム イメージ内の Google Play がサポートされるようになりました。
  • NDK r14 以降を使用した場合の NDK ビルドのバグが修正されています。

対応する Android Emulator 26.0.3 のアップデートもご覧ください。

2.3.1(2017 年 4 月)

これは Android Studio 2.3 のマイナー アップデートで、一部の物理 Android デバイス上で Instant Run が適切に機能しなかった問題が修正されています(Issue #235879 を参照)。

新機能

  • Android Studio で、PNG、BMP、JPG、静的 GIF ファイルを WebP 形式に変換できるようになりました。WebP は、Google が開発した画像ファイル形式で、非可逆圧縮モード(JPEG と同様)と透過モード(PNG と同様)があり、JPEG や PNG よりも圧縮率が優れています。詳細については、Android Studio 内で画像を WebP に変換するをご覧ください。
  • 新しい App Links Assistant を使用すると、手順ごとのウィザードを通じて、Android アプリリンクを簡単にアプリに追加できます。Android アプリリンクは、ユーザーを Android アプリ内の特定のコンテンツに直接誘導する HTTP URL です。
  • Layout Editor が、2 つの新しい ConstraintLayout 機能をサポートするようになりました。
    • アスペクト比に基づいて、ビューサイズを定義します。
    • 制約チェーンを使用して、パッケージ化グループ、分散グループ、加重線形グループを作成します。
    詳細については、ConstraintLayout を使用してレスポンシブ UI を作成するをご覧ください。
  • Layout Editor で、お気に入り属性のリストを作成できるようになりました。これにより、頻繁に使用する属性にアクセスする際、[View all attributes] をクリックする必要がなくなりました。
  • [Vector Import] ダイアログ([File] > [New] > [Vector Asset])を使用してマテリアル アイコンを追加する際、カテゴリやアイコン名に基づいて、利用可能なアイコンのリストをフィルタリングできるようになりました。詳細については、マテリアル アイコンを追加するをご覧ください。
  • 新しいアノテーションの追加や、既存のアノテーションの更新がありました。新しい @RestrictTo アノテーションは、メソッド、クラス、パッケージを対象に、API を制限できます。更新された @VisibleForTesting アノテーションには、オプションの otherwise 引数が追加されており、テスト用にメソッドを可視化する必要がない場合のメソッドの可視性を指定できます。lint は otherwise オプションを使用して、想定どおりのメソッドの可視性を適用します。
  • 新しい lint ベースライン サポートにより、プロジェクトの現在の警告セットのスナップショットを、将来の検査実行のベースラインとして使用できるようになりました。これにより、新しい問題だけが報告されるようになります。ベースライン スナップショットを使用すると、すべての既存の問題に戻って対処する必要がなくなり、新しい問題だけを対象に、lint を使用してビルドエラーをチェックできるようになります。
  • 以下のような新しい lint チェックが追加されています。
    • Obsolete SDK_INT Checks: Android Studio は、SDK バージョンをチェックするサポート終了済みコードを削除します。
    • Object Animator Validation: lint はコードを分析して、ObjectAnimator が、正しい署名を持つ参照有効メソッドを呼び出しているか確認し、そのメソッドに @Keep アノテーションが付けられているかチェックして、ProGuard がリリースビルド中にメソッドの名前を変更したりメソッドを削除したりしないようにします。
    • Unnecessary Item Decorator Copy: 以前のバージョンの RecyclerView ライブラリには、デバイダー デコレーター クラスは含まれていませんでしたが、サポートデモ内のサンプルとして提供されていました。最近のバージョンのライブラリには、デバイダー デコレーター クラスが含まれています。lint は、古いサンプルを探して新しいサンプルに置き換えます。
    • WifiManager Leak: Android 7.0(API レベル 24)より前の場合、Context.getSystemService() を使用して WifiManager を初期化すると、コンテキストがアプリ コンテキストでない場合にメモリリークが発生することがあります。lint はこのような初期化を探し、コンテキストがアプリ コンテキストであるか判断できない場合、Context.getApplicationContext() を使用して初期化向けの適切なコンテキストを取得するよう提案します。
    • Improved Resource Prefix: 既存の resourcePrefix lint チェックには、さまざまな制限がありました。今後は、android { resourcePrefix 'my_lib' } などのプレフィックスを使用してプロジェクトを設定できます。lint は、すべてのリソースがこのプレフィックスを使用しているか確認します。スタイルやテーマに応じて、さまざまな名前のバリエーションを使用できます。たとえば、my_lib プレフィックスの場合、MyLibThememyLibAttrmy_lib_layout などの名前のテーマを使用できます。
    • Switch to WebP: このチェックは、プロジェクトの minSdkVersion 設定に基づいて、WebP 形式に変換できる画像がプロジェクト内にないか判断します。関連付けられたクイック フィックスで自動的に画像を変換するか、手動で画像を WebP に変換できます。
    • Unsafe WebP: プロジェクト内にすでに WebP 画像が含まれている場合に、このチェックはプロジェクトを分析し、WebP 画像をサポートできるほど minSdkVersion 設定の値が大きいか確認します。Android および Android Studio の WebP サポートの詳細については、WebP をネイティブでサポートするブラウザAndroid Studio を使用して WebP 画像を作成するをご覧ください。

変更内容

  • Instant Run を使用して変更内容をプッシュする個別のボタン: アプリをデプロイした後、[Apply Changes]()をクリックすると、Instant Run を使用して実行中のアプリに増分変更内容を迅速にプッシュできます。[Run] ボタン()と [Debug] ボタン()はいつでも使用可能で、変更内容を確実にプッシュし、アプリを強制的に再起動することができます。
    • Instant Run は、Android 5.0(API レベル 21)以降を搭載しているターゲット デバイスにアプリをデプロイする場合に限りサポートされます。
    • CMake や ndk-build を使用して外部ネイティブ プロジェクトにリンクしているプロジェクトの場合でも、Instant Run は無効にならなくなりました。ただし、Instant Run を使用できるのは、ネイティブ コードではなく、Java コードに増分変更内容をプッシュする場合に限られます。
    • コールド スワップ([Run]()をクリックすることで、実行中のアプリに対して強制できます)の信頼性が向上しました。また、コールド スワップを強制すると、ターゲット デバイス上で通知やウィジェット UI の変更が更新されなかった問題も修正されます。
    • 最適化により、アプリの起動が大幅に高速化しています。この最適化はプロファイリングに影響する可能性があるため、アプリのプロファイリングを行う際は、Instant Run を一時的に無効にしてください。
  • [AVD Manager] ボタン()や [SDK Manager] ボタン()が、完全なツールバーだけでなく、小型のナビゲーション バーにも含まれるようになりました。小型ナビゲーション バーを使用するには、[View] をクリックして [View] メニューを開き、[Navigation Bar] をオンにして、[Toolbar] をオフにします。

  • 「ハイブリッド」デバッガの名前が「デュアル」デバッガに変更されました。
  • [Run/Debug Configurations] ダイアログの左パネルにある [Defaults] で、以下の実行構成名が変更されています(動作に変更はありません)。
    • JUnit の名前が Android JUnit に変更されました。JUnit 実行構成を使用しているプロジェクトがある場合、その構成は、Android Studio でプロジェクトを初めて開いたときに Android JUnit 実行構成に変換されます。名前の変更を知らせるダイアログが表示されます。
    • Android Tests の名前が Android Instrumented Tests に変更されました。
  • Android Studio バージョン 2.3 以降、GPU Debugger が削除されました。このツールのオープンソースのスタンドアロン バージョンが GitHub で利用できます。
  • *.gradle build スクリプトを右クリックしたときに、[Run/Debug] オプションが使用できなくなりました。
  • すべてのテンプレートで、ConstraintLayout がデフォルト レイアウトとして使用されるようになりました。
  • Layout Editor の [Widgets] パレットが再設計されました。

このリリースには、さまざまなバグ修正も組み込まれています。2.3.0 おけるすべてのバグ修正をご確認ください。

既知の問題: 一部のデバイス メーカーは、デバイスにインストールされたアプリが自動起動するのをブロックしています。Android Studio 2.3 を搭載している物理デバイスにアプリをデプロイした際にこの制限があると、Instant Run が想定どおりに動作せず、「Error: Not found; no service started」というエラー出力が表示されます。この問題を回避するには、エミュレータを使用するか、デバイスの設定でアプリの自動起動を有効にします。手順はデバイスごとに異なるため、メーカーから提供されたドキュメントをご確認ください。たとえば、影響を受ける一部の Asus デバイスの場合、自動起動マネージャーを使用してアプリをホワイトリストに登録する必要があります。この問題の詳細については、Issue #235879 をご覧ください。

2.2(2016 年 9 月)

2.2.3(2016 年 12 月)

これは Android Studio 2.2 のマイナー アップデートです。Gradle、コア IDE、lint を中心とするバグ修正が組み込まれています。

主なビルド変更点:

  • ProGuard バージョンのロールバック。ProGuard 5.3.1 で発見された正確性に関する問題のため、ProGuard 5.2.1 にロールバックされています。ProGuard チームと協力してすでに修正措置を検討しており、Android Studio 2.3 Canary 3 で ProGuard 5.3.2 にロール フォワードする予定です。
  • aaptOptions IgnoreAssetsPattern が正常に動作しないバグの修正(issue 224167
  • Constraint Layout ライブラリに対する Gradle 自動ダウンロードに関するバグの修正(issue 212128
  • JDK8 / Kotlin コンパイラと dx の問題に関するバグの修正(issue 227729

2.2.3 おけるすべてのバグ修正をご確認ください。

2.2.2(2016 年 10 月)

これは Android Studio 2.2 のマイナー アップデートです。以下のような軽微な変更やバグ修正が組み込まれています。

  • IDE を通じて Instant Run に関する問題を報告する場合に、InstantRun イベントの logcat 出力もレポートに含まれるようになりました。Instant Run を改善するため、追加ログを有効にして問題をご報告ください
  • Gradle に関するいくつかの軽微なバグ修正。
  • マルチ APK の生成に関する問題の修正。

2.2.1(2016 年 10 月)

これは Android Studio 2.2 のマイナー アップデートです。いくつかのバグ修正と、Instant Run に関する問題のトラブルシューティングに役立つ追加ログを有効にする新機能が組み込まれています。Instant Run を改善するため、追加ログを有効にして問題をご報告ください

新機能

  • 新しい Layout Editor は、ConstraintLayout をサポートするためのカスタムビルド ツールを備えています。
  • 新しい Layout Inspector を使用すると、エミュレータ上やデバイス上でアプリを実行しているときに、レイアウト階層のスナップショットを検査できます。
  • 新しい [Assistant] ウィンドウにより、Firebase サービスをアプリに統合できます。
  • 新しい APK Analyzer ツールを使用すると、パッケージ化アプリのコンテンツを検査できます。
  • 新しい Espresso Test Recorder ツール(ベータ版)を使用すると、独自のインタラクションを記録して UI テストを作成できます。
  • 新しいビルド キャッシュ(試験運用版)により、ビルド パフォーマンスを高速化できます。
  • C / C++ ビルドと、CMake や ndk-build との新しい統合。APK にパッケージ化されたライブラリに対して、新規または既存のネイティブ コードをコンパイルしてビルドし、lldb を使用してデバッグします。新しいプロジェクトの場合、Android Studio はデフォルトで CMake を使用しますが、既存のプロジェクトの場合は ndk-build もサポートされます。Android アプリにネイティブ コードを組み込む方法については、C / C++ コードをプロジェクトに追加するをご覧ください。lldb を使用してネイティブ コードをデバッグする方法については、ネイティブ コードをデバッグするをご覧ください。
  • 新しいサンプル ブラウザにより、Android Studio 内から Google Android サンプルコードを簡単に検索して、アプリ開発を迅速に開始できます。
  • 新しい Merged Manifest Viewer を使用すると、プロジェクト ビルド バリアントを横断して、マニフェスト ファイルとアプリ依存関係がどのようにマージされるのかを診断できます。
  • [Run] ウィンドウに、現在実行中のアプリのログメッセージが表示されるようになりました。logcat Monitor の表示は設定可能ですが、[Run] ウィンドウの表示は設定できません。
  • 新しい Android Emulator 機能:
    • 新しい仮想センサーと [Cellular] > [Signal Strength] コントロールが追加されました。
    • [Cellular] > [Network type] コントロールに [LTE] オプションが追加されました。
    • 上下のスワイプ シミュレーションが追加され、縦方向のメニューをマウスホイールでスクロールできるようになりました。
  • 新しい実行 / デバッグ構成機能:
    • Android App テンプレートや Android Tests テンプレートの [Debugger] タブに、LLDB を使用してデバッグするための新しいオプションが追加されました。
    • Android App テンプレートや Android Tests テンプレートの [Profiling] タブに、GPU トレースを有効にするための [Capture GPU Commands] オプションが追加されました。GPU Debugger(ベータ版機能)内で、GPU トレースを表示できます。
    • Android Tests テンプレートの [Deployment Target] に、[Firebase Test Lab Device Matrix] オプションが追加されました。
    • Native Application テンプレートはサポートが終了しました。プロジェクト内でこのテンプレートを使用していると、Android Studio によって自動的に Android App テンプレートに変換されます。
    • Android Application テンプレートの名前が、Android App テンプレートに変更されました。
  • GPU Debugger(ベータ版)のインストール、設定、パフォーマンス、UI 機能が改善されました。
  • Android Studio に OpenJDK 8 がバンドルされました。既存のプロジェクトでも、[File] > [Project Structure] > [SDK Location] で指定されている JDK が使用されます。新しいバンドル JDK を使用するように設定を切り替えるには、[File] > [Project Structure] > [SDK Location] をクリックして、[Use embedded JDK] チェックボックスをオンにします。
  • UI 内に新しいヘルプメニューとボタンが追加され、オンライン ドキュメントが簡単に見つかるようになりました。

変更内容

  • IDE コードベースが IntelliJ 15 から IntelliJ 2016.1 に更新されました。
  • Instant Run を使用するには、ターゲット デバイス API レベルに対応するプラットフォーム SDK をインストールする必要があります。
  • ユーザーが仕事用プロファイルでアプリを実行している場合やセカンダリ ユーザーとしてアプリを実行している場合、Instant Run は自動的に無効になります。
  • 変更内容がデプロイされない問題や、アプリがクラッシュする問題など、Instant Run の信頼性に関するさまざまな問題が修正されています。
    • 一部のアプリアセットが実行中のアプリにデプロイされていませんでした(バグ: #213454)。
    • Serializable クラスに対して serialVersionUID が定義されていない場合に、Instant Run セッションと非 Instant Run セッション間をユーザーが遷移すると、アプリがクラッシュしていました(バグ: #209006)。
    • Instant Run を使用していると、スタイルの変更が反映されませんでした(バグ: #210851)。
    • Instant Run セッションは信頼性が低く、FileNotFoundException が発生していました(バグ: #213083)。
    • ドローアブルに対する変更が、KitKat に対して完全な再ビルドを実行するまで反映されませんでした(バグ: #21530)。
    • カスタム sourceSets 内にネストパスが含まれる場合、リソースの変更が Instant Run に反映されませんでした(バグ: #219145)。
    • 変更したクラスに列挙値を持つアノテーションが含まれていると、ホットスワップやウォーム スワップが機能しませんでした(バグ: #209047)。
    • アノテーション データの変更が Instant Run に反映されませんでした(バグ: #210089)。
    • IDE の外部で変更を加えた場合、コードの変更が Instant Run に反映されませんでした(バグ: #213205)。
    • セキュリティ トークンが一致しないため、Instant Run セッションが信頼できませんでした(バグ: #211989)。
    • run-as を適切にサポートしていないデバイスの場合に、コールド スワップが失敗していました(バグ: #210875)。
    • Instant Run の再起動後にアプリがクラッシュしていました(バグ: #219744)。
    • Instant Run から Instant Debug に切り替える際、ClassNotFoundException が発生していました(バグ: #215805)。
  • 特に大規模プロジェクトの場合に、IDE 内の Gradle 同期のパフォーマンスが向上しました。
  • 新しいアプリ パッケージ化コードにより、フルビルドでも増分ビルドでも、ビルド時間が短縮されました。
  • アノテーション プロセッサやプロセス内 dex 変換のサポートなど、Jack コンパイラのパフォーマンスと機能が改善されました。詳細については、Android Plugin for Gradle 2.2.0 リリースノートをご覧ください。
  • 更新された AccelerometerPlay サンプルが追加されました。エミュレータの Accelerometer コントロールを試すことができます。プロジェクトをインポートするには、[File] > [New] > [Import Sample] を選択します。
  • AVD Manager から Scale AVD プロパティが削除されました。
  • Android Emulator の -port および -ports のコマンドライン オプションにより、エミュレータ インスタンスが使用しているポートとシリアル番号がレポートされ、指定した値に問題がある場合は警告が表示されるようになりました。
  • [Create New Class] ダイアログと、対応するファイル テンプレートが改善されました。注: 以前に AnnotationType や、ClassEnumInterfaceSingleton のファイル テンプレートをカスタマイズしていた場合、新しいテンプレートに準拠するようにテンプレートを編集する必要があります。準拠していないと、[Create New Class] ダイアログの新しいフィールドを使用できません。
  • Vector Asset Studio のユーザー インターフェースが改善され、Adobe Photoshop Document(PSD)ファイルのサポートが追加されました。
  • Image Asset Studio のユーザー インターフェースが改善されました。
  • Theme Editor のリソース選択ツールが改善されました。
  • Android Studio のメモリリークが修正され、全体的なメモリ使用量が削減されました。
  • SDK Manager に [Background] ボタンが追加されました。別の作業に戻った後に、バックグラウンドでパッケージをインストールすることができます。
  • スクリーン リーダーやキーボード ナビゲーションのサポートなど、ユーザー補助機能が改善されました。
  • コード分析機能が強化されました。Java 8 言語使用のコード品質チェックや、さまざまなクロスファイル分析が追加されています。
  • 一部のツールバー アイコンが変更されました。

2.1(2016 年 4 月)

このアップデートの主な変更点としては、Android N プレビュー版を使用した開発がサポートされるようになりました。

2.1.3(2016 年 8 月)

このアップデートでは、Gradle 2.14.1 との互換性が追加されます。Gradle 2.14.1 には、パフォーマンスの改善、新機能、重要なセキュリティ修正が組み込まれています。詳細については、Gradle のリリースノートをご覧ください。

Android Studio 2.1.3 の新しいプロジェクトは、デフォルトでは Gradle 2.14.1 を使用します。既存のプロジェクトの場合、Gradle 2.14.1 および Android Plugin for Gradle 2.1.3(Gradle 2.14.1 以降を使用する場合に必要)にアップグレードするよう促すプロンプトが表示されます。

2.1.2(2016 年 6 月)

このアップデートでは、いくつかの軽微な変更とバグ修正が組み込まれています。

  • Instant Run のアップデートとバグ修正。
  • LLDB パフォーマンス / クラッシュ通知の改善。
  • Android Studio 2.1.1 のセキュリティ アップデートによって git rebase が失敗するようになった問題の修正。

2.1.1(2016 年 5 月)

セキュリティ リリースのアップデート。

Android N プラットフォームでは、Java 8 言語機能のサポートが追加されています。そのために、Jack と呼ばれる新しい試験運用版コンパイラが必要になります。現在のところ、Jack の最新バージョンをサポートしているのは、Android Studio 2.1 に限られます。したがって、Java 8 言語機能を使用する場合は、Android Studio 2.1 を使用してアプリをビルドする必要があります。

注: Jack コンパイラを有効にすると、Instant Run が無効になります。現在のところ、Instant Run と Jack コンパイラには互換性がありません。

Android Studio 2.1 は安定版ですが、Jack コンパイラはまだ試験運用版であり、build.gradle ファイル内の jackOptions プロパティを使用して有効にする必要があります。

Android Studio 2.1 には、N プレビュー版をサポートするための変更以外に、軽微なバグ修正や以下の機能強化が組み込まれています。

  • N デバイスやエミュレータを使用している場合に、実行 / デバッグ構成の [Debugger] タブで [Native] デバッガモードを選択すると、デフォルトで Java 対応 C++ デバッガが有効になります。

増分 Java コンパイルやプロセス内 dex 変換など、他のビルド機能強化を利用する場合は、Android Plugin for Gradle をバージョン 2.1.0 に更新してください。

2.0(2016 年 4 月)

注: N デベロッパー プレビュー版向けに開発を行っている場合、Android Studio 2.1 プレビュー版を使用する必要があります。Android Studio 2.0 は、N プレビュー版をターゲットにするために必要となる機能を一部サポートしていません。詳細については、N プレビュー版向けにデベロッパー環境を適切にセットアップする方法をご覧ください。

Instant Run:

  • Android Studio は、これまでにない速さでクリーンビルドをデプロイできるようになりました。また、エミュレータや物理デバイスに対する増分コード変更のプッシュも、ほぼ瞬時に行われます。新しいデバッグビルドを再デプロイすることなく、あるいは、通常はアプリを再起動することなく、更新内容を検証できます。
  • Instant Run は、以下の変更に関して、実行中のアプリに対するプッシュをサポートしています。
    • 既存のインスタンス メソッドまたは静的メソッドの実装に対する変更
    • 既存のアプリリソースに対する変更
    • メソッド シグネチャや静的フィールドなどの構造コードに対する変更(API レベル 21 以降を搭載しているターゲット デバイスが必要)
  • 詳細については、Instant Run のドキュメントをご覧ください。

    注: Instant Run がサポートされるのは、デバッグビルド バリアントをデプロイし、Android Plugin for Gradle バージョン 2.0.0 以降を使用していて、アプリのモジュール レベル build.gradle ファイルで minSdkVersion 15 以上を設定している場合に限られます。最高のパフォーマンスを実現するには、アプリに対して minSdkVersion 21 以上を設定します。

lint に対する追加:

  • @IntDef アノテーション付き整数を使用して switch ステートメントを検査することで、すべての定数が処理されているか確認できます。不足しているステートメントをすばやく追加するには、インテンション アクション プルダウン メニューを使用して、[Add Missing @IntDef Constants] を選択します。
  • 文字列補間を使用して build.gradle ファイル内にバージョン番号を挿入しようとしたときの不適切な試行を示すフラグ。
  • Fragment クラスを拡張する匿名クラスを示すフラグ。
  • res/ フォルダや asset/ フォルダなど、安全でない場所にあるネイティブ コードを示すフラグ。このフラグにより、ネイティブ コードを libs/ フォルダに保存するよう促進されます。ここに保存したコードは、インストール時にアプリの data/app-lib/ フォルダ内にセキュアにパッケージ化されます。AOSP: #169950
  • Runtime.load() 呼び出しや System.load() 呼び出しに対する安全でない呼び出しを示すフラグ。AOSP: #179980
  • メニューバーから [Refactor] > [Remove Unused Resources] を選択すると、未使用のリソースを見つけて削除できます。未使用リソース検出機能は、未使用リソースや、未加工ファイル内の参照(.html 画像参照など)、Gradle リソース圧縮ツールが使用する tools:keep 属性および tools:discard 属性によって参照されるリソースだけをサポートするようになりました。その際、非アクティブなソースセット(他のビルド フレーバー内で使用されるリソースなど)が考慮され、静的フィールドのインポートが適切に処理されます。
  • 暗黙的 API 参照が、minSdkVersion のターゲットとなっているすべてのプラットフォームでサポートされているかチェックします。
  • RecyclerViewParcelable の不適切な使用を示すフラグ。
  • @IntDef@IntRange@Size の検査でも、int 配列や可変長引数についてチェックするようになりました。

他の改善点:

  • Android Emulator 2.0 向けに最適化されました。Android Emulator 2.0 は、これまでになく高速で、幅広い仮想デバイスをサポートし、UI が大幅に改善されています。新しいエミュレータの詳細については、SDK ツールのリリースノートをご覧ください。
  • Android Virtual Device Manager の改善:
    • システム イメージが、[Recommended]、[x86]、[Other] のタブに分類されるようになりました。
    • 詳細設定で、マルチコア サポートを有効にし、エミュレータが使用できるコアの数を指定できるようになりました。
    • 詳細設定で、次のいずれかのオプションを選択することで、エミュレータ上のグラフィックスのレンダリング方法を指定できるようになりました。
      • Hardware: パソコンのグラフィック カードを使用して、レンダリングを高速化します。
      • Software: ソフトウェア ベースのレンダリングを使用します。
      • Auto: 最適なオプションをエミュレータが判断します。これがデフォルト設定です。
  • アプリのビルド前にデプロイ ターゲットを指定することで、AAPT のパッケージ化時間が短縮されました。これにより、Android Studio は、指定したデバイスが必要とするリソースだけを効率的にパッケージ化できます。
  • クラウド サービスの利便性と拡張性を備えたオンデマンド アプリテストを実現するため、Cloud Test Lab 統合機能が追加されました。詳細については、Android Studio で Cloud Test Lab を使用する方法をご覧ください。
  • 新しい GPU Debugger のプレビューが追加されました。グラフィックを多用するアプリの OpenGL ES コードを視覚的にステップ実行することができ、アプリやゲームを最適化できます。
  • Google App Indexing Test が追加されました。URL やアプリ インデックス作成、検索機能のサポートをアプリに追加することで、アプリへのトラフィックを増やし、どのアプリ コンテンツが広く利用されているか発見して、新しいユーザーを引き付けることができます。アプリ内 URL のテストや検証をすべて Android Studio 内で行うことができます。Android Studio 内で URL やアプリ インデックス作成をサポートするをご覧ください。
  • 最新の IntelliJ 15 リリースにアップグレードされました。コード分析やパフォーマンスが改善されています。新機能や機能強化の詳細については、IntelliJ の新機能をご覧ください。
  • XML エディタのオートコンプリートで、属性を補完する際に引用符が追加されるようになりました。このオプションを有効にするには、[Setting] ダイアログまたは [Preferences] ダイアログを開き、[Editor] > [General] > [Smart Keys] に移動して、[Add quotes for attribute value on attribute completion] チェックボックスをオンにします。Issue: 195113
  • XML エディタが、データ バインディング式のコード補完をサポートするようになりました。

過去のリリース