Android 11 デベロッパー プレビュー 2 が公開されました。ぜひお試しのうえ、フィードバックをお寄せください

Android Studio プレビュー版の新機能

Android Studio 3.4 は、Stable チャンネルにリリース済みです。 こちらからダウンロードできます。

Android Studio 4.0 は現在、Canary チャンネルと Dev チャンネルにリリースされています。

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

Android Studio プレビュー版を使用していて問題が発生した場合は、お知らせください。ご提出いただいたバグレポートを基に、今後も Android Studio の改善に取り組んでまいります。

Android Studio 4.0

このセクションでは、Android Studio 4.0 の新機能や変更内容の概要について説明します。

CPU Profiler の UI アップグレード

システム トレース UI のアップグレード

フィードバックに基づいて、CPU Profiler の UI が一新され、より直感的なワークフローを提供します。主な変更点は、以下のとおりです。

  • CPU の記録がメインのプロファイラのタイムラインから切り離され、分析が容易になりました。記録されたデータは、[Profiler] ウィンドウの左側にグループ別に整理されています。グループを上下に移動してリストを再編成するには、ウィンドウの右上にあるオプションの  プロファイラのオプション アイコン をクリックするか、グループ内の個々のアイテムをドラッグ&ドロップします。
  • スレッド アクティビティのタイムライン内にあるすべてのスレッド アクティビティ(メソッド、関数、イベントなど)を表示できるようにし、対比分析を容易にしています。
  • [Flame Chart] タブ、[Top Down] タブ、[Bottom Up] タブの分析が、右側の列になりました。[Threads] グループのスレッドについて、システム トレースの記録の場合は自動的に展開され、他の記録形式の場合はデフォルトで折りたたまれています。スレッド名をダブルクリックして、スレッドを展開または折りたたむことができます。
  • 上記のスクリーンショットに示されるように、システム トレース UI も改善されています。 たとえば、イベントは簡単に区別できるように色分けされています。

この機能はまだ開発中のため、引き続きフィードバックをお寄せください

個別アノテーション処理機能を削除

個別アノテーション処理を専用のタスクに分割する機能は削除されました。このオプションは、Java のみのプロジェクトで非増分アノテーション プロセッサが使用されている場合において、増分 Java コンパイルの維持に使用されていました。有効化には gradle.properties ファイルで android.enableSeparateAnnotationProcessingtrue に設定する必要がありましたが、この設定はすでにご利用いただけません。

ビルド パフォーマンスを向上させるには、代わりに増分アノテーション プロセッサを使用するよう移行する必要があります。

[Build Speed] ウィンドウ

Android Gradle プラグイン 4.0.0-alpha03 以降で Android Studio 4.0 Canary 3 を使用する場合、最適化の無効化やタスクの不適切な設定など、ビルドプロセスの問題を理解および診断するうえで [Build Speed] ウィンドウが役に立ちます。Android Studio 4.0 Canary 3 以降と Android Gradle プラグイン 4.0.0-alpha03 以降を使用している場合、[Build Speed] ウィンドウを開くには次の手順を行います。

  1. まだアプリのビルドを行っていない場合は、メニューバーから [Build] > [Make Project] を選択してアプリをビルドします。
  2. メニューバーから [View] > [Tool Windows] > [Build] を選択します。
  3. [Build] ウィンドウで、次のいずれかの方法により [Build Speed] ウィンドウを開きます。
    • Android Studio でプロジェクトのビルドが完了したら、[Build Speed] タブをクリックします。
    • Android Studio でプロジェクトのビルドが完了したら、[Build Output] ウィンドウの右側のリンクをクリックします。

[Build Speed] ウィンドウの左側のツリーには、起こり得るビルドの問題がまとめられます。各問題をクリックすると、右側のペインで詳細を調べることができます。Android Studio を使ってビルドを分析すると、ビルド時間を決定付けたタスクセットを求め、各タスクの影響を可視化して把握しやすいようにできます。[Warnings] ノードを展開して、警告の詳細を確認することもできます。

ビルド速度のグラフ

ビルド時間を決定付けているタスクはどれか

Gradle は、タスクの相互依存、プロジェクト構造、CPU 負荷によってタスクの実行を決定し、タスクを順次または並列に実行します。指定したビルドの [Build Speed] ウィンドウには、現在のビルドの時間を決定付けたタスクセットがハイライト表示されます。このようにハイライト表示されたタスクの非効率性に対処することが、全体のビルド時間を短縮するうえで最適な出発点であると言えます。

ビルドを実行するたびにビルド時間を決定するタスクセットが異なる場合がありますので、ご注意ください。たとえば、ビルド構成に変更を加えたり、異なるタスクセットでビルド(増分ビルドなど)を実行したり、さまざまな制約(重い CPU 負荷など)下でビルドを実行したりすると、[Build Speed] ウィンドウでハイライト表示されるタスクセット(ビルド時間に最も影響を与えたタスクセット)が変わってくる場合があります。このような変動が見られるため、ビルド時間を確実に短縮するには、複数のビルドで [Build Speed] ウィンドウを使用することをおすすめします。

Multi Preview

Multi Preview は、さまざまなデバイスや設定のレイアウトを同時にプレビューするビジュアル ツールで、レイアウトに関する潜在的な問題を検出するのに役立ちます。

この機能にアクセスするには、IDE ウィンドウの右上にある [Multi Preview] タブをクリックします。

[Multi Preview] ボタン

Pixel デバイスとプロジェクト ロケールの 2 つの設定セットから選択できます。設定セットを切り替えるには、[Multi Preview] ウィンドウの上部にあるプルダウンから選択します。

Multi Preview のデモ

Live Layout Inspector

更新された Live Layout Inspector を使用してレイアウトをデバッグします。これにより、デバイスにデプロイされているアプリの UI を包括的にリアルタイムで分析できます。

[Layout Inspector] ウィンドウを開くには、[View] > [Tools Windows] > [Layout Inspector] に移動します。Live Layout Inspector は、既存の Layout Inspector とほぼ同じ機能を備えていますが、以下の機能も提供します。

  • 動的レイアウト階層: デバイスのビューが変更されると更新されます。

動的レイアウト階層

  • プロパティ値解決スタック: リソース プロパティ値がソースコードのどこにあるかを調査し、プロパティ ペインのハイパーリンクを辿ってその場所に移動します。

プロパティ値解決スタック

  • 3D ビュー: 高度な 3D 視覚化により、ランタイム時にアプリのビュー階層を表示します。この機能を使用するには、[Live Layout Inspector] ウィンドウでレイアウトをクリックして回転させます。

Layout inspector: 3D ビュー

Live Layout Inspector を使用できるのは、API レベル 29 以降を搭載するデバイスにアプリをデプロイする場合のみです。また、[File] > [Settings] > [Experimental] に移動し、[Enable Live Layout Inspector] の横にあるチェックボックスをオンにする必要もあります。

Jetpack Compose のサポート

Jetpack Compose ツールキットは、アプリの UI をビルドする最新の方法を提供します。 また、このツールキットにより、Kotlin の利点をあますところなく活用できるようになります。たとえば、Java と完全に相互運用可能である、簡潔で自然なコードを作成できます。

Jetpack Compose を使用して最適な開発を行うには、Android Studio 4.0 の最新バージョンを使用する必要があります。これは、Android Studio を使用して Jetpack Compose でアプリを開発する際に、新しいプロジェクト テンプレートや Compose UI をすぐにプレビューできるなど、スマート エディタの機能を活用できるためです。

詳細については、Jetpack Compose の概要をご覧ください。

Java 8 ライブラリの desugaring が含まれる D8 と R8

Android Studio では、アプリの最小 API レベルを必要とせずに、多数の Java 8 言語 API の使用がサポートされています。

desugaring と呼ばれるプロセスにより、Android Studio 3.0 以降の DEX コンパイラ D8 はすでに、Java 8 言語機能(ラムダ式、デフォルトのインターフェース メソッド、リソースの試用など)の実質的なサポートを提供しています。Android Studio 4.0 では desugaring エンジンが拡張され、Java 言語 API を desugar できるようになりました。つまり、最近の Android でしか使用できなかった標準的な言語 API(java.util.streams など)を古いバージョンの Android アプリでも使用できるようになりました。

このリリースでは次の API がサポートされています。

  • 連続ストリーム(java.util.stream
  • java.time のサブセット
  • java.util.function
  • java.util.{Map,Collection,Comparator} の最新の追加 API
  • オプション(java.util.Optional, java.util.OptionalIntjava.util.OptionalDouble)および上記の API で役立つその他の新しいクラス
  • java.util.concurrent.atomic の追加 API(AtomicIntegerAtomicLongAtomicReference の新しいメソッド)
  • ConcurrentHashMap(Android 5.0 のバグを修正)

上記言語 API のサポートのため、D8 は不足している API の実装を含む単独のライブラリ DEX ファイルをコンパイルし、この実装をアプリに追加します。desugar プロセスはアプリのコードを書き換えて、ランタイム時に代わりにこのライブラリを使用するようにします。

このような言語 API のサポートを有効にするには、モジュールの build.gradle ファイルに以下を記述します。

android {
      defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled true
      }

      compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
    }

    dependencies {
      coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
    }
    

問題が発生した場合や、サポートしてほしい他の API がある場合は、Google のバグトラッカーでバグとして報告してください。

Kotlin DSL スクリプト ファイルのサポート

Android Gradle プラグインは、Kotlin DSL ビルド スクリプト ファイル(*.kts)をサポートするようになりました。Android Studio で使用する場合、[Project Structure] ダイアログやビルド スクリプトのクイック修正のような特定の IDE 機能で、Kotlin ビルド スクリプト ファイルの読み書きもサポートされるようになりました。

ProGuard ルールのスマート エディタ機能

ProGuard ルールファイルを開いた場合に、構文のハイライト表示、コード補完、エラーチェックなどのスマート エディタ機能を使用できるようになりました。また、エディタでは Android Studio プロジェクトと統合して、すべてのクラス、メソッド、フィールドの完全なシンボル補完、クイック ナビゲーションとリファクタリングも可能です。

ProGuard ルールファイル編集時のスマート エディタ機能

新しい Motion Editor

Android Studio に MotionLayout レイアウト タイプのビジュアル デザイン エディタが追加され、アニメーションの作成やプレビューが簡単になりました。

Motion Editor は、MotionLayout ライブラリ(Android アプリのアニメーションの基盤として機能)の要素を操作するシンプルなインターフェースを提供します。以前のリリースでは、こうした要素を作成および変更するには、XML リソース ファイル内の制約を手動で編集する必要がありました。Motion Editor により、この XML を生成して、開始と終了の状態、キーフレーム、遷移、タイムラインをサポートできるようになりました。

MotionLayout を使用するには:

  1. ConstraintLayout を作成します。
  2. Layout Editor でプレビューを右クリックします。
  3. [Convert to MotionLayout] をクリックします。

Android Studio で ConstraintLayout が MotionLayout に変換されると、Motion Scene ファイルも XML を含むディレクトリに追加されます。

その後、MotionLayout がルート レイアウトになり、Motion Editor の UI に表示されます。レイアウトにはすでに開始の ConstraintSet、終了の ConstraintSet、開始から終了までの遷移が含まれています。

概要グラフィックを使用すると、ConstraintSet または Transition を選択し、選択パネルでコンポーネントを選択できます。

その後、ConstraintLayout の編集と同じ方法で、開始または終了の ConstraintSet のいずれかについて制約と属性を編集できます。

グラフでさらに要素を作成する場合は、作成アイコンを使用すると ConstraintSetTransition、またはOnClick / OnSwipe ジェスチャーをすばやく作成できます。

キーフレームを追加するには、まず Transition の矢印をクリックします。

次に [Transition] タイムライン ペインで、右上隅をクリックして [KeyPosition] を選択します。

キーフレームの属性を設定するダイアログが開きます。

属性パネルの Transition に OnClick および OnSwipe ハンドラを追加することもできます。

追加すると、ターゲット コンポーネントやドラッグ方向など、クリックの属性を設定するダイアログが開きます。

Motion Editor では、デザイン サーフェスでのアニメーションのプレビューがサポートされています。アニメーションを選択したら、タイムラインの上にある Play をクリックして、アニメーションをプレビューできます。

Android Gradle プラグイン 4.0.0 の新機能

このセクションでは、Android Gradle プラグイン 4.0.0 に含まれる新機能と動作の変更点について説明します。

ビルド機能を有効または無効にする新しいオプション

Android Gradle プラグイン 4.0.0-alpha05 では、ビュー バインディング、データ バインディング、Jetpack Compose などのように、有効または無効にするビルド機能を新しい方法で制御できます。新しい機能が追加されると、デフォルトで無効になります。 その場合は、buildFeatures ブロックを使用して、必要な機能のみを有効にできます。これにより、プロジェクトのビルド パフォーマンスを最適化できます。各モジュールのオプションは、モジュールレベルの build.gradle で次のように設定できます。

    android {
        // The default value for each feature is shown below. You can change the value to
        // override the default behavior.
        buildFeatures {
            // Determines whether to enable support for Jetpack Compose.
            compose = false
            // Determines whether to generate a BuildConfig class.
            buildConfig = true
            // Determines whether to support View Binding.
            // Note that the viewBinding.enabled property is now deprecated.
            viewBinding = false
            // Determines whether to support Data Binding.
            // Note that the dataBinding.enabled property is now deprecated.
            dataBinding = false
            // Determines whether to generate binder classes for your AIDL files.
            aidl = true
            // Determines whether to support RenderScript.
            renderScript = true
            // Determines whether to support injecting custom variables into the module’s R class.
            resValues = true
            // Determines whether to support shader AOT compilation.
            shaders = true
        }
    }
    

以下に示すように、プロジェクトのすべてのモジュールでこのような機能のデフォルト設定を指定することもできます。これには、プロジェクトの gradle.properties ファイルに次のうち 1 つ以上を指定します。ただし、モジュールレベルの build.gradle ファイルで buildFeatures ブロックを使用すると、これらのプロジェクト全体のデフォルト設定をオーバーライドできます。

android.defaults.buildfeatures.buildconfig=true
    android.defaults.buildfeatures.aidl=true
    android.defaults.buildfeatures.renderscript=true
    android.defaults.buildfeatures.resvalues=true
    android.defaults.buildfeatures.shaders=true
    

Feature-on-Feature 依存関係

以前のバージョンの Android Gradle プラグインでは、すべての Dynamic Feature モジュールはアプリのベース モジュールのみに依存していました。Android Gradle プラグイン 4.0.0 を使用する場合、別の機能モジュールに依存する機能モジュールを含めることができるようになりました。つまり、以下の図に示すとおり、:video 機能は、ベース モジュールに依存する :camera モジュールに依存することが可能です。

Feature on Feature 依存関係

動的機能 :video は、:app ベース モジュールに依存する機能 :camera に依存します。

つまり、アプリによって動的機能モジュールのダウンロードがリクエストされると、その機能モジュールに依存する他の機能モジュールもダウンロードされます。アプリの動的機能モジュールを作成した後、モジュールの build.gradle ファイルで Feature-on-Feature 依存関係を宣言することができます。たとえば、:video モジュールで :camera に対する依存関係を宣言する場合、次のようになります。

// In the build.gradle file of the ':video' module.
    dependencies {
        // All dynamic feature modules must declare a dependency
        // on the base module.
        implementation project(':app')
        // Declares that this module also depends on the 'camera'
        // dynamic feature module.
        implementation project(':camera')
        ...
    }
    

また、メニューバーから [Help] > [Edit Custom VM Options] をクリックして以下の行を含め、Android Studio の Feature-on-Feature 依存関係機能を有効にする必要があります(たとえば、実行構成の編集時にこの機能をサポートするため)。

-Drundebug.feature.on.feature=true
    

Android Gradle プラグインから「feature」と「instantapp」を削除

Android Gradle プラグイン 3.6.0 から、Android App Bundle による Instant App のビルドとパッケージ化を行う Dynamic Feature プラグイン(com.android.dynamic-feature)の使用を優先し、Feature プラグイン(com.android.feature)と Instant App プラグイン(com.android.instantapp)のサポートを終了しました。

Android Gradle プラグイン 4.0.0-alpha01 以降では、サポート終了済みの上記プラグインは完全に削除されています。このため、最新の Android Gradle プラグインを使用するには、Android App Bundle に対応できるように Instant App を移行する必要があります。 Instant App を移行すると、App Bundle のメリットを生かして、アプリのモジュール設計を簡素化できます。

Kotlin Android ライブ テンプレート

Android Studio には、Kotlin クラスの Android ライブ テンプレートが含まれています。たとえば、toast をタップし、Tab キーを入力すると、Toast をすばやく挿入できます。利用可能なライブ テンプレートの全リストについては、メニューバーの [File] > [Settings](macOS を使用している場合は、[Android Studio] > [Preferences])をクリックして [Editor] > [Live Templates] に移動します。

[Fragment] ウィザードと新しいフラグメント テンプレート

[New Android Fragment] ウィザードと新しいフラグメント テンプレートが利用できるようになりました。利用するには、[File] > [New] > [Fragment] > [Gallery] に移動するか、Navigation エディタで [Create new destination] をクリックします。

Fragment ギャラリー ウィザード。

Fragment ギャラリー ウィザード。

4.0 Preview に関する既知の問題

このセクションでは、Android Studio 4.0 Preview の現在判明している問題について説明します。

ツールバーにある実行、デバッグ、プロファイルの各ボタンがない

操作ボタンの [Run/Debug] グループをカスタマイズした場合([Settings] ウィンドウまたは [Preferences] ウィンドウの [Appearance & Behavior] > [Menus and Toolbars] ウィンドウにあるオプションを編集した場合など)、IDE を再起動すると、ツールバーから操作ボタンが消えることがあります。これは、Android Studio 4.0 がベースとしている IntelliJ バージョンの既知の問題です(問題 IDEA-228450 を参照)。

この問題を解決するには、これらのボタンに行ったカスタマイズを次のように元に戻します。

  1. [File] > [Settings](macOS の場合、[Android Studio] > [Preferences] を選択します。
  2. ウィンドウの左側で [Appearance & Behavior] > [Menus and Toolbars] に移動します。
  3. ウィンドウの右側で [Main Toolbar] > [Toolbar Run Actions] に移動し、[Run/Debug] を選択します。
  4. ウィンドウ上部近くにある Revert をクリックし、[Restore Run/Debug] を選択します。
  5. [OK] をクリックします。見つからなかったボタンがツールバーに表示されます。

Canary 5 で利用できないパッチ

Android Studio 4.0 Canary 5 のパッチは、以前にリリースされた Android Studio 4.0 Canary バージョンでは利用できません。Android Studio 4.0 Canary 5 をインストールするには、Android Studio ダウンロード ページからダウンロードしてください。

Canary 5 の Profiler と Live Layout Inspector

Android Studio 4.0 Canary 5 以降、Windows で Live Layout Inspector と Profiler が正しく動作しないため、次のエラー メッセージが表示されます。

    transfer error: couldn't create file: Read-only file system.
    

この問題を解決するには、Android Studio 4.0 Canary 7 以降にアップグレードしてください。

Kotlin Maven リポジトリがない

Android Studio 4.0 Canary 4 以下を使用している場合、次のエラー メッセージが表示されることがあります。

Application build has failed with an error (Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25)
    

この問題を解決するには、Android Studio 4.0 Canary 5 以降に更新してください。

Android Studio 3.6

このセクションでは、Android Studio 3.6 の新機能や変更内容の概要について説明します。

Gradle の同期時間を最適化する新しいオプション

以前のリリースでは、Gradle Sync の実行中にすべての Gradle タスクのリストが取得されていました。大規模プロジェクトの場合、タスクリストを取得すると同期時間が遅くなる可能性があります。

Gradle Sync のパフォーマンスを向上させるには、[File] > [Settings] > [Experimental] に移動し、[Do not build Gradle task list during Gradle sync] を選択します。

このオプションを有効にすると、同期中にタスクリストの作成がスキップされ、Gradle Sync の処理が速くなり、UI の応答性が向上します。IDE がタスクリストの作成をスキップすると、Gradle パネルのタスクリストは空になり、ビルドファイルのタスク名の自動補完は機能しなくなります。

Kotlin 専用 APK ソースを Profiler に添付する

ビルド済みの APK のプロファイリングとデバッグを行うときに、Kotlin 専用の外部 APK ソースを添付できるようになりました。

Java ファイル(.java)を添付するには、ユーザーガイドに従ってください。ただし、代わりに Kotlin ソースファイル(.kt)を選択してください。

デザイン エディタでビューを分割する

Layout Editor や Navigation Editor などのデザイン エディタで、[Split] ビューによって UI の [Design] ビューと [Code] ビューを同時に表示できるようになりました。ビューの分割を有効にするには、エディタ ウィンドウの右上隅にある分割アイコン ビューの分割アイコン をクリックします。

分割ビューでは、デザインビューとテキストビューが同時に表示される

Memory Profiler でのリーク検出

Memory Profiler でヒープダンプを分析する場合、アプリの Activity および Fragment インスタンスでメモリリークが発生していると考えられるプロファイリング データをフィルタできるようになりました。

フィルタで表示されるデータの種類は、次のとおりです。

  • 破棄されているが、まだ参照されている Activity インスタンス。
  • 有効な FragmentManager がないが、まだ参照されている Fragment

次のような状況では、フィルタによって誤検出が発生することがあります。

  • Fragment が作成されたが、まだ使用されていない。
  • Fragment がキャッシュされているが、FragmentTransaction の一部ではない。

この機能を使用するには、まずヒープダンプを取得するか、Android Studio にヒープダンプ ファイルをインポートします。メモリリークが発生している可能性があるフラグメントとアクティビティを表示するには、Memory Profiler のヒープダンプペインで [Activity/Fragment Leaks] チェックボックスをオンにします。

プロファイラ: メモリリーク検出

メモリリーク検出のためヒープダンプをフィルタリング

変更の適用

クラスを追加して、実行中のアプリにコードの変更をデプロイできるようになりました。これを行うには、Apply Code Changes Apply Code Changes アイコン または Apply Changes and Restart Activity Apply Changes アイコン をクリックします。

これら 2 つのアクションの違いについては、変更の適用をご覧ください。

更新された APK をインポートする

プロジェクト内の APK が IDE 外で更新されたときに、新しいプロジェクトを作成する必要がなくなりました。Android Studio は APK の変更を検出し、APK を再インポートするオプションを提供します。

NDK のアップデート

以下のアップデートにより、Android Studio 内のネイティブ(C / C++)開発がサポートされます。

Kotlin のサポート

これまで Java でサポートされていた Android Studio の以下の NDK 機能が、Kotlin でもサポートされるようになりました。

  • JNI 宣言から、対応する C / C++ の実装関数に移動できます。このマッピングを表示するには、マネージ ソースコード ファイルの行番号の近くにある C / C++ アイテム マーカーにカーソルを合わせます。
  • JNI 宣言のスタブ実装関数を自動的に作成できます。 まず JNI 宣言を定義し、次に C / C++ ファイル内に「jni」またはメソッド名を入力してアクティブにします。

  • 未使用のネイティブ実装関数は、ソースコード内で警告としてハイライト表示されます。また、実装が欠落している JNI 宣言は、エラーとしてハイライト表示されます。

  • ネイティブ実装関数の名前を変更(リファクタリング)すると、対応するすべての JNI 宣言が更新されます。JNI 宣言の名前を変更すると、ネイティブ実装関数が更新されます。

  • 暗黙的にバインドされた JNI 実装のシグネチャ チェックを行います。

JNI に関する他の改善点

  • コスメティクス

    • パラメータや戻り値の型ヒントが、JNI 実装関数内に表示されます。
    • JNI によってマングリングされた関数名は折りたたむことができます。

  • RegisterNatives サポート

    • メソッド宣言名、パラメータの型、戻り値の型を自動補完します。

    • メソッド宣言名の名前変更リファクタリングをサポートします。

    • バインドされた JNI 関数のシグネチャ チェックを行います。

  • 他の JNI 関数支援

    • 以下に示す関数内の文字列リテラルの自動補完、検査、ナビゲーション、名前変更リファクタリングをサポートします。
      • FindClass
      • GetMethodIDGetStaticMethodID
      • GetFieldIDGetStaticFieldID
    • 以下の関数に関して、さまざまな検査をサポートします。
      • Call[Static]<type>Method
      • CallNonvirtual<type>Method
      • Get[Static]<type>Field
      • NewObject

Android Gradle プラグインのアップデート

最新プレビュー版の Android Gradle プラグインを使用すると、次のアップデートを利用できます。

Maven Publish プラグインのサポート

Android Gradle プラグイン 3.6-alpha07 以降には、Maven Publish Gradle プラグインのサポートが含まれています。これにより、ビルド アーティファクトを Apache Maven リポジトリに公開できます。Android Gradle プラグインは、アプリまたはライブラリ モジュール内のビルド バリアント アーティファクトごとにコンポーネントを作成します。これを使用して、Maven リポジトリへのパブリケーションをカスタマイズできます。

Android プラグインが作成するコンポーネントは、以下の表のとおり、モジュールがアプリケーションまたはライブラリ プラグインを使用するかどうかによって異なります。

Android Gradle プラグイン パブリケーション アーティファクト コンポーネント名
com.android.library AAR components.variant
com.android.application APK の ZIP、利用可能な ProGuard または R8 マッピング ファイル components.variant_apk
com.android.application Android App Bundle(AAB) components.variant_aab

次のコード例は、AAR ライブラリについて、リリースおよびデバッグ用のビルド バリアントのパブリケーションを作成します。各パブリケーションは対応するコンポーネントを適用し、Maven 座標など、生成された POM の属性をカスタマイズします。

// Because the components are created only during the afterEvaluate phase, you must
    // configure your publications using the afterEvaluate() lifecycle method.
    afterEvaluate {
        publishing {
            publications {
                // Creates a Maven publication called "release".
                release(MavenPublication) {
                    // Applies the component for the release build variant.
                    from components.release

                    // You can then customize attributes of the publication as shown below.
                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final'
                    version = '1.0'
                }
                // Creates a Maven publication called “debug”.
                debug(MavenPublication) {
                    // Applies the component for the debug build variant.
                    from components.debug

                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final-debug'
                    version = '1.0'
                }
            }
        }
    

アプリを ZIP 形式の APK または Android App Bundle(AAB)として公開するパブリケーションを作成するには、以下に示すように適切なコンポーネントを使用すればよいだけです。

afterEvaluate {
        publishing {
            publications {
                paidRelease(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing an app bundle.
                  from components.paidRelease_aab

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-release-aab'
                  version = '1.0'
                }
                paidDebug(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing APKs in a ZIP file.
                  from components.paidDebug_apk

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-debug-apks'
                  version = '1.0'
                }
            }
        }
    

パブリケーションを作成すると、Maven Publish プラグインによって公開タスクが作成されます。これを使用して、指定したリポジトリにアーティファクトを公開できます。

新しいデフォルトのパッケージ化ツール

Android Gradle プラグイン 3.6.0-alpha09 を使用してアプリのデバッグ バージョンをビルドする場合、プラグインは zipflinger という新しいパッケージング ツールを使用して APK をビルドします。この新しいツールを使用すると、ビルド速度が向上します。 ただし、問題が発生した場合は、バグを報告してください。 以前のパッケージング ツールを使用するには、次の行を gradle.properties ファイルに含めます。

android.useNewApkCreator=false
    

Instant App サポートを有効にする [Refactor] メニュー オプション

アプリ プロジェクトの作成後、次の手順でベース モジュールをいつでも即座に有効化できるようになりました。

  1. メニューバーから [View] > [Tool Windows] > [Project] を選択して、[Project] パネルを開きます。
  2. 通常は「app」という名のベース モジュールを右クリックし、[Refactor] > [Enable Instant Apps Support] を選択します。
  3. 表示されたダイアログで、プルダウン メニューからベース モジュールを選択します。
  4. [OK] をクリックします。

詳細については、Google Play Instant の概要をご覧ください。

APK Analyzer でクラスとメソッドのバイトコードの難読化を解除する

DEX ファイルを検査する際、APK Analyzer でクラスとメソッドのバイトコードの難読化解除がサポートされるようになりました。バイトコードの難読化を解除するには、次のようにします。

  1. メニューバーから [Build] > [Analyze APK] を選択します。
  2. 表示されたダイアログで、検査する APK に移動して選択します。
  3. [Open] をクリックします。
  4. APK Analyzer で、検査する DEX ファイルを選択します。
  5. DEX ファイル ビューアで、分析する APK の ProGuard マッピング ファイルを読み込みます。
  6. 検査するクラスまたはメソッドを右クリックし、[Show bytecode] を選択します。

ビュー バインディング

ビュー バインディングにより、コード内のビューを参照する際にコンパイル時の安全性を実現します。 findViewById() を自動生成されたバインディング クラス参照に置き換えることができます。

ビュー バインディングを使用するには、各モジュールの build.gradle ファイルで次の行を含めます。

android {
        viewBinding.enabled = true
    }
    

詳細については、ビュー バインディングのドキュメントをご覧ください。 ご意見がある場合や問題が発生した場合は、バグを報告してください。

再開可能な SDK のダウンロード

SDK Manager を使用して SDK コンポーネントやツールをダウンロードする場合、Android Studio ではダウンロードを最初からやり直すのではなく、中断されたダウンロード(ネットワークの問題などによる)を再開できるようになりました。この拡張機能は、Android エミュレータやシステム イメージなどの大容量ダウンロードで、インターネット接続が不安定な場合に特に役立ちます。

また、SDK ダウンロード タスクをバックグラウンドで実行している場合は、ステータスバーのコントロールを使用してダウンロードを一時停止または再開できます。

バックグラウンドで実行されているダウンロード タスクのステータスバー。新しいコントロールによりダウンロードを一時停止または再開可能。

バックグラウンドで実行されているダウンロード タスクのステータスバー。新しいコントロールによりダウンロードを一時停止または再開可能。

IntelliJ IDEA 2019.2

サービスツール ウィンドウなど、IntelliJ IDEA 2019.2 リリースによる改善に伴い、コアの Android Studio IDE が更新されました。

バージョン 2019.2 に累積して組み込まれている他の IntelliJ バージョンの改善点については、以下のページをご覧ください。

Gradle のオフライン モードを切り替えるための新たな場所

Gradle のオフライン モードを有効または無効にするには、まずメニューバーから [View] > [Tool Windows] > [Gradle] を選択します。次に、[Gradle] ウィンドウ上部近くにある Toggle Offline Mode Gradle パネルの Gradle オフライン ボタン。 をクリックします。

3.6 Preview に関する既知の問題

このセクションでは、Android Studio 3.6 Preview の現時点で判明している問題について説明します。

Chrome OS の UI テキストの文字サイズが小さい

Chrome OS のテキストが、以前のリリースよりもはるかに小さく表示されることがあります。この問題を回避するには、次のようにします。

  1. [File] > [Settings](macOS では [Android Studio] > [Preferences])をクリックして、[Settings] ウィンドウを開きます。
  2. [Appearance & Behavior] > [Appearance] に移動します。
  3. [Use custom font] を選択します。
  4. フォントサイズを拡大します。
  5. [Settings] ウィンドウで、[Editor] > [Font] に移動します。
  6. フォントサイズを拡大します。
  7. [OK] をクリックします。