Android Studio 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 プラグインのアップデート

Android Gradle プラグインの新機能については、該当するリリースノートをご覧ください。

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 のサポートを有効にするには、r18 以上に NDK をアップデートしてください。

検査機能を有効化または再有効化するには、[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 Apps をサポート

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] をオンにすると、Instant 対応機能モジュールを作成できます。なお、このモジュールを作成すると、アプリのベース モジュールも Instant 対応になります。

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

単一バリアント プロジェクトの同期

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

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

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

注: 現在のところ、この最適化は、Java プログラミング言語のみを含むプロジェクトに対応しています。たとえば、プロジェクト内に Kotlin または C++ のコードがあることを IDE が検出した場合、この最適化が自動的に有効になることはありません。また、手動で有効にすることも避けてください。

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

クイック フィードバックの提供

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

IDE で、現在のエクスペリエンスに対する意見を最も適切に表現しているアイコンをクリックしてください。 そうすると、その意見を Android Studio チームが正確に理解するための使用統計情報が IDE から送信されます。また、IDE の操作性に不満を感じた場合などは、追加のフィードバックをお寄せいただくこともできます。

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