Android Studio 4.1(2020 年 8 月)

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

4.1.3(2021 年 3 月)

このマイナー アップデートには、さまざまなバグ修正が含まれています。主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。

4.1.2(2021 年 1 月)

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2021/01/android-studio-412-available.html">
    Release Updates blog</a>.
</p>
<p><b>4.1.1 (November 2020)</b></p>

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2020/11/android-studio-411-available.html">
    Release Updates blog</a>.
</p>

新しい Database Inspector

新しい Database Inspector を使用して、実行中のアプリのデータベースの検査、クエリ、変更を行えます。まず、API レベル 26 以降を搭載したデバイスにアプリをデプロイし、メニューバーから [View] > [Tool Windows] > [Database Inspector] を選択します。

詳細については、Database Inspector を使用してデータベースをデバッグするをご覧ください。

Android Studio で Android Emulator を直接実行する

Android Studio で Android Emulator を直接実行できるようになりました。この機能を使用すると、画面のスペースを節約できます。また、ホットキーを使用してエミュレータとエディタ ウィンドウ間をすばやく移動したり、IDE とエミュレータ ワークフローを単一のアプリ ウィンドウ内に並べて配置したりできます。

Android Studio のツール ウィンドウ内で起動されたエミュレータ。

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

TensorFlow Lite モデルを使用する

ML Model Binding を使用すると、簡単に .tflite モデルファイルを直接インポートしてプロジェクトで使用できます。Android Studio によって使いやすいクラスが生成されるため、より少ないコードでモデルを実行することが可能になり、型安全性が向上します。

サポートされているモデル

ML Model Binding の現在の実装では、画像分類モデルとスタイル変換モデルがサポートされています(メタデータで拡張されている場合)。今後は、物体検知、画像セグメンテーション、テキスト分類など、他の問題領域にもサポートを拡張する予定です。

TensorFlow Hub には、メタデータを含む広範な事前トレーニング済みモデルが用意されています。また、TensorFlowLite モデルへのメタデータの追加で概説されているように、TensorFlow Lite モデルにメタデータを独自に追加することもできます。

モデルファイルをインポートする

サポートされているモデルファイルをインポートする手順は次のとおりです。

  1. [File] メニューで [File] > [New] > [Other] > [TensorFlow Lite Model] を選択し、TensorFlow Lite モデルのインポート ダイアログを開きます。
  2. 以前にダウンロードまたは作成した .tflite モデルファイルを選択します。
  3. [Finish] をクリックします。

これにより、モデルファイルがプロジェクトにインポートされ、ml/ フォルダに配置されます。ディレクトリが存在しない場合は、Android Studio によって作成されます。

TensorFlow Lite モデルをインポートする

モデルのメタデータと使用方法の表示

インポートされたモデルの詳細とアプリでの使用方法を確認するには、プロジェクト内のモデルファイルをダブルクリックして、モデルビューア ページを開きます。このページには、次の項目が表示されます。

  • Model: モデルの概要
  • Tensors: 入力テンソルと出力テンソルの説明
  • Sample code: アプリのモデルとのやり取りの例

mobilenet_v1_0.25_160_quantized.tflite の使用例を次に示します。

この例が示すように、Android Studio は、モデルを操作するための MobilenetV1025160Quantized というクラスを作成します。

モデルにメタデータがない場合、この画面には最小限の情報しか表示されません。

既知の問題と回避策

  • 現在、画像分類とスタイル変換以外の問題領域については、TensorFlow Lite モデルのサポートは制限されています。インポートは正常に機能しますが、一部のモデル入力やモデル出力は、わかりやすい型ではなく TensorBuffers で表されます。メタデータのないモデルの場合、モデルの入力と出力はすべて TensorBuffer になります。
  • 入力データ型と出力データ型が DataType.UINT8 または DataType.FLOAT32 でないモデルは、サポートされません。

この機能はまだ開発中であるため、フィードバックの送信またはバグの報告をお願いいたします。

Native Memory Profiler

Android Studio の Memory Profiler に、Android 10 以降を搭載した物理デバイスにデプロイされるアプリ向けの Native Memory Profiler が追加されました。Native Memory Profiler を使用すると、ネイティブ コードからのメモリ割り当てと割り当て解除を記録し、ネイティブ オブジェクトに関する累積統計情報を検査できます。

Native Memory Profiler の記録

Native Memory Profiler の詳細については、Memory Profiler を使用してアプリのメモリ使用量を調べるをご覧ください。

既知の問題と回避策

Android Studio 4.1 の Native Memory Profiler は、Android 11 デバイスでは機能しません。現在、Android 11 デバイスのプロファイリングは、4.2 プレビュー リリースでサポートされています。

4.1 の初回リリースでは、アプリの起動プロファイリングは無効になっています。このオプションは、今後のリリースで有効になる予定です。

回避策としては、Perfetto スタンドアロン コマンドライン プロファイラを使用して、起動プロファイルをキャプチャできます。

システム トレース UI: より簡単な選択、新しい分析タブ、フレーム レンダリング データの増加

Android Studio プロファイラのシステム トレース UI で、次の改善が行われました。

  • ボックス選択: [Threads] セクションで、マウスをドラッグして長方形領域のボックス選択を行えるようになりました。右上の選択範囲にズームボタン プロファイラの「選択範囲にズーム」ボタン をクリック(またはキーボード ショートカット M を使用)して、この領域にズームできます。隣同士にある同様のスレッドをドラッグ&ドロップすると、複数のスレッドを選択してすべてを一度に検査できます。たとえば、複数のワーカー スレッドで分析を実行できます。

  • [Summary] タブ: [Analysis] パネルの新しい [Summary] タブには、次の項目が表示されます。

    • 特定のイベントのすべての発生に関する集計データ(発生回数や最短期間 / 最長期間など)。

    • 選択した発生に関するトレース イベントの統計情報。

    • スレッドの状態分布に関するデータ。

    • 選択したトレース イベントのうち最も実行時間の長い発生。

    別の発生に移動するには、表から別の行を選択します。

  • [Display] のデータ: [Display] セクションでは、SurfaceFlingerVSYNC の新しいタイムラインを使用して、アプリの UI におけるレンダリングの問題を調査できます。

システム トレースの記録に関する基本的な使用方法については、CPU Profiler を使用して CPU アクティビティを検査するトレースを記録するをご覧ください。

スタンドアロン プロファイラの提供

新しいスタンドアロン プロファイラにより、完全な Android Studio IDE を実行しなくても、アプリをプロファイリングできるようになりました。

スタンドアロン プロファイラの使用手順については、スタンドアロン プロファイラを実行するをご覧ください。

Dagger のナビゲーションのサポート

Dagger のコンシューマとプロバイダに移動するための IDE のガター アクション

Android Studio では、Dagger 関連のコード間を簡単に移動できるようにするため、新しいガター アクションを提供して [Find Usages] ウィンドウでのサポートを拡張しました。

  • 新しいガター アクション: Dagger を使用するプロジェクトの場合、IDE では、Dagger のアノテーションが付いたコード間を移動するためのガター アクションが提供されます。たとえば、特定のタイプを使用するメソッドの横にある ガター アクションをクリックすると、そのタイプのプロバイダに移動します。反対に、 ガター アクションをクリックすると、そのタイプが依存関係として使用されている箇所に移動します。

  • [Find Usages] ノード: 特定のタイプのプロバイダで [Find Usages] を呼び出すと、そのタイプのコンシューマを一覧表示した [Dependency consumer(s)] ノードが [Find] ウィンドウに表示されるようになりました。反対に、Dagger によって注入された依存関係のコンシューマでこのアクションを呼び出すと、その依存関係のプロバイダが [Find] ウィンドウに表示されます。

マテリアル デザイン コンポーネント: 新しいプロジェクト テンプレートのテーマとスタイルの更新

アニメーション: 新しいマテリアル デザインのプロパティを使用して Android Studio でプロジェクトを作成します。

[Create New Project] ダイアログの Android Studio テンプレートはマテリアル デザイン コンポーネント(MDC)を使用するようになりました。テーマとスタイルに関するガイドラインの更新版をデフォルトで遵守しています。更新の内容は次のとおりです。

  • MDC: プロジェクトは build.gradlecom.google.android.material:material に依存します。ベースアプリのテーマは Theme.MaterialComponents.* の親を使用し、MDC の更新された色と「on」属性をオーバーライドします。

  • カラーリソース: colors.xml のカラーリソースはリテラル名(例: colorPrimary ではなく purple_500)を使用します。

  • テーマリソース: テーマリソースは(styles.xml ではなく)themes.xml に含まれ、Theme.<var><var> という名前を使用します。

  • ダークテーマ: ベースアプリのテーマは DayNight の親を使用し、res/valuesres/values-night に分かれています。

  • テーマ属性: ハードコードされた色を避けるため、レイアウトとスタイルでカラーリソースはテーマ属性(例: ?attr/colorPrimary)として参照されます。

IntelliJ IDEA 2020.1

IntelliJ IDEA の 2020.1 リリースにおける改善に伴い、コア Android Studio IDE が更新されました。バージョン管理操作を可能にする新しい [Commit] ウィンドウや、[View] > [Appearance] > [Enter Distraction Free Mode] を選択して切り替えられる新しい Zen モードが追加されています。

バージョン 2020.1 の改善の詳細については、IDEA 2020.1 をご覧ください。

IDE 構成ディレクトリの変更

ユーザー構成ディレクトリの場所が次のように変更されました。

Windows

構文: %APPDATA%\Google&lt;product><version>

例: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1

macOS

構文: ~/Library/Application Support/Google/<product><version>

例: ~/Library/Application Support/Google/AndroidStudio4.1

Linux

構文: ~/.config/Google/<product><version>

例: ~/.config/Google/AndroidStudio4.1

上記の新しいディレクトリの場所は、Android Studio の基になっている IDE である IntelliJ IDEA の最近の更新と一致しています。

アップグレード後に Studio が再起動しない場合は、必要に応じて以前の Studio バージョンから構成ディレクトリを削除してください。詳細については、既知の問題ページをご覧ください。

Kotlin 1.3.72

Android Studio 4.1 には Kotlin 1.3.72 がバンドルされています。これには、Kotlin のハイライト表示、インスペクション、コード補完を改善するいくつかの修正が含まれています。詳細については、Kotlin 1.3.72 の変更履歴をご確認ください。

カスタムビューのプレビュー

Android Studio で(View クラスまたは Button クラスの拡張などによって)カスタムビューを作成する際に、カスタムビューのプレビューが表示されるようになりました。ツールバーのプルダウン メニューを使用して複数のカスタムビューを切り替えたり、ボタンをクリックしてコンテンツを垂直または水平にラップしたりできます。

IDE でカスタムビューをプレビューします。

: プレビューに変更が反映されない場合は、メニューバーから [Build] > [Make Project] を選択してください。

ネイティブ クラッシュ レポートのシンボリケーション

ネイティブ コードでクラッシュや ANR が発生すると、システムはスタック トレースを生成します。スタック トレースとは、クラッシュの時点までにプログラムで呼び出された、ネストされた関数のシーケンスのスナップショットです。こうしたスナップショットは、ソースに含まれる問題を特定して修正するために役立ちますが、最初にシンボリケートして、マシンアドレスを人が読める形式の関数名に戻す必要があります。

アプリやゲームが C++ などのネイティブ コードで開発されている場合は、アプリのバージョンごとにデバッグ シンボル ファイルを Google Play Console にアップロードできるようになりました。Google Play Console は、それらのデバッグ シンボル ファイルを使用して、アプリのスタック トレースをシンボリケートします。これにより、クラッシュと ANR の分析が容易になります。デバッグ シンボル ファイルをアップロードする方法については、ネイティブ コードでのクラッシュのサポートをご覧ください。

Apply Changes

アプリを反復開発する際の生産性を向上させるため、Android 11 デベロッパー プレビュー 3 以降を搭載したデバイス向けの Apply Changes に対して、次のような機能拡張が行われました。

デプロイ速度の向上

Google は反復開発の速度の最適化に多額の投資を行いました。この最適化は、アプリをインストールせずにデバイス上で変更をデプロイして永続化する方法を開発することにより実現しました。最初のデプロイの後、コードの変更を適用アイコン 「コードの変更を適用」アイコン または変更を適用してアクティビティを再スタート アイコン 「変更を適用してアクティビティを再スタート」アイコン を使用して Android 11 デバイスに行われる後続のデプロイは、速度が大幅に向上しています。

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

追加のコード変更のサポート

Android 11 デベロッパー プレビュー 3 以降を搭載したデバイスの場合、メソッドを追加した後で、コードの変更を適用アイコン 「コードの変更を適用」アイコン または変更を適用してアクティビティを再スタート アイコン 「変更を適用してアクティビティを再スタート」アイコン をクリックして、変更を実行中のアプリにデプロイできるようになりました。