この記事は Scott Swarthout による Android Developers Blog の記事 "Android studio 4.1" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2020 年 10 月 12 日(日本時間 10 月 13 日)、Android Studio 4.1 の安定版がリリースされました。編集、デバッグ、最適化の一般的なユースケースに対応する一連の機能が追加されています。今回のリリースの主なテーマは、Android Jetpack ライブラリを使う際の生産性向上でした。Android Jetpack とは、デベロッパーがベスト プラクティスに従って速くコードを書けるようにするための Android ライブラリ スイートです。皆さんからのフィードバックに基づき、コード編集操作にたくさんの改善を行ったほか、よく使われる Android ライブラリを IDE に統合しています。
Android Studio 4.1 で注目すべき機能には、アプリのデータベースを照会できる新しい Database Inspector、依存性注入に Dagger または Hilt を使うプロジェクトのナビゲーションのサポート、オンデバイス機械学習のサポート向上(Android プロジェクトでの TensorFlow Lite モデルのサポートを含む)などがあります。さらに、変更の適用を更新してデプロイを高速化しました。皆さんからのフィードバックに基づき、ゲーム デベロッパーに役立つ変更も行いました。新しいネイティブ メモリ プロファイラとスタンドアロン プロファイリング ツールを導入しています。
私たちは、Android Studio の品質を向上するため、バグやパフォーマンスの問題に懸命に対応してきました。多くのデベロッパーの皆さんから、パフォーマンスと信頼性の向上に主眼を置いていることを評価する声が届いています。今回のリリース サイクルでは、2,370 個のバグを修正し、公開されていた 275 個の問題をクローズしたことをご報告します。デベロッパーの皆さんの生産性にとって鍵となるのは、高い品質です。私たちはこれからも高い品質を維持することをお約束します。
プレビュー リリースで早くからフィードバックを寄せてくださった皆さん、ありがとうございました。皆さんからのフィードバックは Android Studio 4.1 の開発にあたって反復作業や機能改善に役立ちました。最新の安定版リリースを使う準備が整い、新たな生産性機能を使ってみたい方は、Android Studio 4.1 をこちらからダウンロードしてください。
続いて、主なデベロッパー フローごとに分類された、Android Studio 4.1 のすべての新機能をご紹介します。
新しいプロジェクトを作成する際のダイアログに表示される Android Studio のテンプレートが、マテリアル デザイン コンポーネント(MDC)を使ったものになりました。デフォルトで、テーマとスタイルの最新ガイドに準拠しています。この変更により、推奨のマテリアル スタイル パターンや、ダークテーマなどの最新の UI 機能を簡単に使えるようになります。
アップデートには、以下の内容が含まれています。
新しい Database Inspector では、アプリのデータベースを簡単に調査、照会、変更できるようにしたいと考えました。この機能を使ってみるには、API レベル 26 以降を実行しているデバイスにアプリをデプロイし、メニューバーから [View] > [Tool Windows] > [Database Inspector] を選択します。アプリで Jetpack Room ライブラリを使っている場合でも、Android プラットフォーム バージョンの SQLite を直接使っている場合でも、実行中のアプリのデータベースやテーブルを簡単に調査したり、カスタムクエリを実行したりできます。
Android Studio は、アプリを調査しているときもライブ接続を維持しているので、Database Inspector を使って値を変更し、実行中のアプリで変更内容を確認することもできます。Room 永続化ライブラリを使っている場合は、コードエディタの各クエリの隣にも実行ボタンが表示されるので、@Query アノテーションで定義したクエリをすばやく実行できます。詳細はこちらをご覧ください。
Android Studio の中で直接 Android Emulator を実行できるようになりました。この機能を使うと、画面スペースを節約したり、ホットキーでエミュレータとエディタのウィンドウ間をすばやく移動したり、1 つのアプリケーション ウィンドウの中で IDE とエミュレータのワークフローを整理したりできます。なお、スナップショットの管理や、回転やスクリーンショットなどの一般的なエミュレータ操作は Studio から行うことができますが、すべてのオプションにアクセスするには、安定版のエミュレータを実行する必要があります。この機能は、次の操作でオプトインできます。
[File] → [Settings] → [Tools] → [Emulator] → [Launch in Tool Window]
Android デベロッパーは、機械学習を使って革新的で便利な体験を生み出しています。TensorFlow Lite は、モバイル機械学習モデルを記述する際によく使われるライブラリです。私たちは、こういったモデルを Android アプリに簡単にインポートできるようにしたいと考えました。Android Studio は、ビューのバインディングと同じような使いやすいクラスを生成してくれます。そのため、少量の型安全なコードでモデルを実行できます。ML モデル バインディングの現在の実装では、メタデータで拡張されたイメージ分類とスタイル変換のモデルがサポートされています。
インポートしたモデルの詳細やアプリでモデルを使う手順は、プロジェクトで .tflite モデルファイルをダブルクリックし、モデルビューアのページを開くと確認できます。詳細はこちらをご覧ください。
Android エミュレータは、最近追加された 5G 携帯通信のテストに加え、折りたたみ式デバイスもサポートします。Android Emulator 30.0.26 以降では、さまざまなデザインや設定の折りたたみ式デバイスを設定できます。折りたたみ式デバイスを設定すると、エミュレータはヒンジ角度センサーのアップデートと姿勢の変化を報告するようになります。そのため、このフォーム ファクタに対してアプリがどのように応答するかをテストできます。詳しくは、ブログ投稿 Developing for Android 11 with the Android Emulatorをご覧ください。
ビルドが速くなれば、デベロッパーは短時間で簡単にアプリを変更できるようになります。アプリに対する反復作業の生産性を上げるため、Android 11 以降を実行しているデバイス向けに、変更の適用機能を強化しました。
私たちは反復作業にかかる時間の短縮に本格的に取り組み、アプリをインストールすることなく変更をデバイスにデプロイして永続化する方法を開発しました。一度 Android 11 デバイスにデプロイすれば、それ以降、コードの変更の適用 [Apply Code Changes] または変更を適用してアクティビティを再起動 [Apply Changes and Restart Activity] する場合のデプロイが大幅に速くなります。さらに、変更の適用でコードの変更のサポートが強化されています。メソッドを追加した場合でも、コードの変更の適用 [Apply Code Changes] または変更を適用してアクティビティを再起動 [Apply Changes and Restart Activity] のどちらかをクリックすることで、実行中のアプリに変更をデプロイできるようになっています。
Android Gradle プラグイン 4.0 には、AAR の依存関係の Prefab パッケージをインポートする機能が追加されています。この機能については、ネイティブ ライブラリの共有もサポートするように拡張したいと考えていました。AGP バージョン 4.1 を利用すると、Android ライブラリ プロジェクト用の AAR に格納されている外部ネイティブ ビルドからライブラリをエクスポートできます。ネイティブ ライブラリをエクスポートするには、ライブラリ プロジェクトの build.gradle ファイルの android ブロックに以下を追加します。
buildFeatures { prefabPublishing true } prefab { mylibrary { headers "src/main/cpp/mylibrary/include" } myotherlibrary { headers "src/main/cpp/myotherlibrary/include" } }
ネイティブ コードでクラッシュや ANR が発生した場合、システムはスタック トレースを生成します。これは、クラッシュした瞬間までにプログラムがネストして呼び出した一連の関数のスナップショットです。このスナップショットは、ソースの問題を特定して修正する際に役立つ可能性がありますが、マシンのアドレスを人間が読むことができる関数名に戻すため、まずシンボリケーションを行う必要があります。
C++ などのネイティブ コードを使ってアプリやゲームを開発する場合、アプリのバージョンごとにデバッグ シンボル ファイルを Play Console にアップロードできるようになりました。Play Console は、このデバッグ シンボル ファイルを使ってアプリのスタック トレースのシンボリケーションを行い、クラッシュや ANR を解析しやすくします。App Bundle にデバッグ シンボルを含めるには、プロジェクトの build.gradle ファイルに次の行を追加します。
android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'
Android Studio 4.1 では、システム トレースを大幅に見直しました。システム トレースは、アプリがシステム リソースをどのくらい使っているかをリアルタイムで確認できる最適化ツールです。今回は、ボックス選択モードでトレースを簡単に選択できるようにし、新しい解析タブを追加し、アプリの UI のレンダリングに関する問題を調査できるように詳しいフレーム レンダリング データを追加しました。詳細はこちら(英語)をご覧ください。
ボックス選択: [Threads] セクションで、マウスをドラッグすると、四角形の領域をボックス選択できるようになりました。右上の [Zoom to Selection] ボタンをクリックする(または M キーボード ショートカットを使う)と、ズームできます。また、隣り合っている似たようなスレッドをドラッグ&ドロップすると、複数のスレッドをまたいで選択し、同時に調査できます。
Summary タブ: [Analysis] パネルに新しく [Summary] タブを追加しました。このタブには、以下の内容が表示されます。
データの表示: [Display] セクションに SurfaceFlinger と VSYNC の新しいタイムラインが追加されました。アプリの UI のレンダリング問題を調査する際に役立ちます。
Android Studio のメイン ウィンドウとは別のウィンドウで Android Studio のプロファイラにアクセスできるようになりました。この機能は、Unity や Visual Studio など、別のツールで構築した Android ゲームを最適化する場合に便利です。
スタンドアロン プロファイラを実行するには、以下の操作を行います。
<studio-installation-folder>\bin
<studio-installation-folder>/Contents/bin
profiler.exe
profiler.sh
Memory Profiler ウィンドウの上部にある [Record native allocations] をクリックすると、記録を開始します。
本資料は、Unity Technologies やその関連会社による提供または提携ではありません。“Unity” は、米国およびその他の場所における Unity Technologies またはその関連会社の商標または登録商標です。
特定の製品情報を探しやすくするために、2020 年 11 月以降、Android と Google Play の情報は Android Developers Japan Blog をメインのブログとして情報掲載を開始します。Android と Google Play の情報をお探しの方は、こちらのブログを今後ご覧ください。
日本で開催される Android と Google Play 関連のイベントやキャンペーンなどの日本のデベロッパー様向けの情報を随時発信していきます。
製品情報、新規機能やポリシーの変更などだけではなく、Android と Google Play をより活用するための事例や分析方法、マーケティングの情報なども順次掲載していきます。
Android Developers Japan Blog をぜひご覧ください。
Posted by Tamao Imura - Developer Marketing Manager, Platforms and Ecosystems
Android 11 が公開されました!日本時間 9 月 9 日に、ソースを Android オープンソース プロジェクト(AOSP)にプッシュし、Android の最新バージョンを正式にリリースしました。Android 11 は、3 つのテーマ、すなわち人、管理、安全性にフォーカスして開発されています。人中心のコミュニケーションへのアプローチ、ユーザーがすべてのスマート デバイスにすばやくアクセスしてコントロールできる管理、端末のデータの共有方法をより細かく制御できる安全性の 3 つです。詳しくは、こちらのブログ記事をご覧ください。
デベロッパーにとって、Android 11 は新機能の宝庫です。会話通知、デバイスとメディアのコントロール、「今回のみ」のアクセス許可、強化された 5G サポート、IME の切り替えなどを確認しておきましょう。皆さんの開発作業を高速化するため、互換性の切り替え、ADB の増分インストール、アプリ終了理由 API、データアクセス監査 API、Kotlin NULL 可能性アノテーションなど、たくさんの新しいツールも追加しました。多くのデベロッパーの皆さんがAndroid 11 に対応したアプリを開発されることが楽しみです!
9 月 9 日より、正式版の Android 11 が Pixel 2、3、3a、4、4a 端末から順次配信が開始されていますので、ご期待ください。配信前にダウンロードする方は、Android 11 デベロッパー サイトをご覧ください。
Android 11 は「人」を中心とした、高い表現力を持っています。スマートフォンで会話する方法を新たな発想で見直し、皆さんの生活に最も重要な「人」を認識して優先できる OS です。デベロッパーは、Android 11 を使ってさらに深い会話や個人間のやり取りを行うアプリを構築できます。
Android 11 では、ユーザーが端末につながっているすべてのスマート デバイスにすばやくアクセスして、1 か所からコントロールできます。デベロッパーは新しい API を使い、ユーザーによるスマート デバイスの表示やメディアの制御を実現できます。
デバイス コントロールとメディア コントロール
Android 11 では、機密性の高いアクセス許可をユーザーが細かく制御できるようにして透明性を向上させ、アップデートを高速化することで端末の安全を保てるようにしています。
こちらから、Android 11 のすべてのプライバシー機能について確認いただけます。
Android 11 はまもなくユーザーに公開されます。ぜひ、互換性テストを終えてアップデートを早めに公開していただくようお願いします。
注意すべき大きな動作の変更点のいくつかを紹介します(これらは、アプリの targetSdkVersion によらず適用されます)。
Android 11 には、オプトイン可能な動作の変更点も含まれています。これらは、アプリのターゲットを新しいプラットフォームにした時点で反映されます。互換性のあるバージョンのアプリを公開した後、これらの変更点をできる限り早く評価することをお勧めします。互換性テストやツールの詳細については、Android 11 の互換性の週にお伝えしたドキュメントをご覧ください。詳しい技術解説は Android 11 デベロッパー サイトをご覧ください。
準備ができたら、Android 11 に移行し、使用できる新しい機能や API について各種ドキュメントでご確認ください。こちらでは最初に着手すべき重要な機能をまとめています。以下の機能はすべてのアプリで対応することをお勧めします。
該当するアプリでは、以下の項目にも対応することをお勧めします。
Android 11 のすべての機能については、developer.android.com/11 をご覧ください。
Android 11 は、9 月 9 日より、一部の Pixel、OnePlus、Xiaomi、OPPO、realme スマートフォンにロールアウトされます。今後数か月で、さらに多くのパートナーが端末のリリースやアップグレードを行う予定です。今年のベータ版プログラムに登録されている端末も含め、Pixel 2、3、3a、4、4a スマートフォンをお持ちの方には、まもなく OTA(無線)アップデートが届きますので、ご期待ください。
Pixel 端末向けの Android 11 のファクトリー システム イメージも Android Flash Tool から利用できます。または、こちらからダウンロードできます。いつものように、最新の Android Emulator システム イメージは Android Studio の SDK Manager から取得できます。Treble 対応の端末で幅広くテストしたい場合は、こちらから Generic System Image(GSI)を入手できます。
Android 11 のソースコードは、Android オープンソース プロジェクト リポジトリの Android 11 ブランチの下にあります。こちらをご覧ください。
プレビュー版の Issue Tracker はまもなくクローズし、Developer Preview やベータ版ビルドに対して記録されたオープン状態のバグの管理も終了します。しかし、フィードバックは引き続きお待ちしています。Preview の Issue Tracker に記録した問題がまだ解消されていないという方は、AOSP Issue Tracker で Android 11 に対してフィードバックをお寄せください。
今年のプレビュー プログラムに参加してくださった、たくさんのデベロッパーと先行ユーザーの皆さん、本当にどうもありがとうございました。お寄せくださったフィードバックのおかげで、Android 11 はあらゆる人にとってよりよいプラットフォームになっています。
Android 11 に対応した皆さんのアプリを拝見できることを楽しみにしています。