Android 17 がベータ版 4 に到達しました。これは、このリリース サイクルの最後のベータ版であり、アプリの互換性とプラットフォームの安定性にとって重要なマイルストーンです。アプリのユーザー エクスペリエンスの微調整、エッジツーエッジのレンダリングの円滑化、最新の API の活用など、ベータ版 4 はテストに必要なほぼ最終的な環境を提供します。
アプリ、ライブラリ、ツール、ゲームエンジンの準備をしましょう
Android SDK、ライブラリ、ツール、ゲームエンジンを開発している場合は、互換性の問題によってダウンストリームのアプリやゲームのデベロッパーがブロックされないように、必要なアップデートを今すぐ準備することが重要です。これにより、デベロッパーは最新の SDK 機能を利用できるようになります。Android 17 を完全にサポートするためにアップデートが必要な場合は、ダウンストリームのデベロッパーにお知らせください。
テストでは、Google Play などを使用して、Android 17 ベータ版 4 を実行しているデバイスまたはエミュレータに、本番環境アプリまたはライブラリやエンジンを使用するテストアプリをインストールします。アプリのすべてのフローをテストし、機能や UI の問題を探します。Android の各リリースには、プライバシー、セキュリティ、全体的なユーザー エクスペリエンスを向上させるプラットフォームの変更が含まれています。Android 17 で実行されるアプリと Android 17 をターゲットとするアプリに影響する動作変更を確認して、テストに重点を置きます。以下に例を示します。Android 17 で実行されるアプリとAndroid 17 をターゲットとするアプリに影響する動作変更を確認して、テストに重点を置きます。以下に例を示します。
- 大画面でのサイズ変更: Android 17 をターゲットにすると、大画面での画面の向き、サイズ変更、アスペクト比の制約の維持をオプトアウトできなくなります。
- 動的コードの読み込み: アプリが Android 17 以降をターゲットとする場合、DEX ファイルと JAR ファイルに対して Android 14 で導入されたより安全な動的コードの読み込み(DCL)保護がネイティブ ライブラリにも拡張されます。System.load() を使用して読み込まれるネイティブ ファイルはすべて読み取り専用としてマークする必要があります。そうしないと、システムは UnsatisfiedLinkError をスローします。
- デフォルトで CT を有効にする: 証明書の透明性(CT)がデフォルトで有効になります。(Android 16 では CT を利用できますが、アプリは オプトインする必要がありました)。
- ローカル ネットワーク保護: Android 17 以降をターゲットとするアプリは、デフォルトでローカル ネットワーク アクセスがブロックされます。可能であれば、プライバシー保護ピッカーの使用に切り替え、広範で永続的なアクセスには新しい ACCESS_LOCAL_NETWORK 権限を使用します。
- バックグラウンド オーディオの強化: Android 17 以降では、オーディオ フレームワークで、オーディオ再生、音声フォーカスのリクエスト、および音量変更 API など、バックグラウンド オーディオのインタラクションに対する制限が適用されます。フィードバックに基づき、ベータ版 2 以降、使用中の FGS の適用時の targetSDK ゲーティングやアラーム音の除外など、いくつかの変更を行いました。詳細については、更新されたガイダンスをご覧ください。
アプリのメモリ上限
Android では、デバイスの合計 RAM に基づくアプリのメモリ上限を導入し、アプリと Android ユーザーにとってより安定した決定論的な環境を構築しています。Android 17 では、システム全体の不安定さにつながる極端なメモリリークやその他の外れ値が原因で UI のスタッタリング、バッテリーの消耗、アプリの強制終了が発生する前に、システム ベースラインを確立するために上限が控えめに設定されています。ほとんどのアプリ セッションへの影響は最小限に抑えられると予想されますが、メモリのベースラインの確立など、次のメモリのベスト プラクティスをおすすめします。
現在の実装では、アプリが影響を受けた場合、ApplicationExitInfo の getDescription に文字列「MemoryLimiter」が含まれます。また、トリガーベースのプロファイリングをTRIGGER_TYPE_ANOMALYと組み合わせて使用すると、メモリ上限に達したときに収集されるヒープダンプを取得できます。
メモリリークを見つけやすくするため、Android Studio Panda では、Android Studio Profiler に LeakCanary 統合が専用タスクとして直接追加され、IDE 内でコンテキスト化され、ソースコードと完全に統合されています。
メモリ使用量を抑えることで、パフォーマンスの向上、バッテリー駆動時間の延長、あらゆるフォーム ファクタでの優れたエクスペリエンスに直接つながります。Android エコシステムのより高速で信頼性の高い未来を共に築きましょう。
アプリの異常のプロファイリング トリガー
Android には、リソースを大量に消費する動作や互換性の低下の可能性をモニタリングするオンデバイス異常検出サービスが導入されています。ProfilingManager と統合されたこのサービスにより、アプリは特定のシステム検出イベントによってトリガーされるプロファイリング アーティファクトを受け取ることができます。
TRIGGER_TYPE_ANOMALY トリガーを使用して、バインダー呼び出しの過剰やメモリ使用量の過剰など、システム パフォーマンスの問題を検出します。アプリが OS で定義されたメモリ上限を超えると、異常トリガーにより、デベロッパーはアプリ固有のヒープダンプを受け取って、メモリの問題を特定して修正できます。また、バインダー スパムが過剰な場合、異常トリガーはバインダー トランザクションのスタック サンプリング プロファイルを提供します。
この API コールバックは、システムによって適用される前に発生します。たとえば、メモリ上限を超えてアプリがシステムによって終了する前に、デベロッパーがデバッグデータを収集するのに役立ちます。トリガーの使用方法については、トリガーベースのプロファイリングに関するドキュメントをご覧ください。
val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>() triggers.add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY)) val mainExecutor: Executor = Executors.newSingleThreadExecutor() val resultCallback = Consumer<ProfilingResult> { profilingResult -> if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) { // upload profile result to server for further analysis setupProfileUploadWorker(profilingResult.resultFilePath) } profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback) profilingManager.addProfilingTriggers(triggers) }
Android Keystore のポスト量子暗号(PQC)
Android Keystore では、 NIST 標準の ML-DSA(Module-Lattice-Based Digital Signature Algorithm)のサポートが追加されました。サポートされているデバイスでは、ML-DSA 鍵を生成し、それを使用して耐量子署名を生成できます。これはすべてデバイスのセキュア ハードウェアで行われます。Android Keystore は、標準の Java Cryptographic Architecture API(KeyPairGenerator、KeyFactory、Signature)を介して ML-DSA-65 アルゴリズムと ML-DSA-87 アルゴリズムのバリアントを公開します。詳細については、デベロッパー向けドキュメントをご覧ください。
KeyPairGenerator generator = KeyPairGenerator.getInstance( “ML-DSA-65”, "AndroidKeyStore"); generator.initialize( new KeyGenParameterSpec.Builder( “my-key-alias”, KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY) .build()); KeyPair keyPair = generator.generateKeyPair();
Android 17 を使ってみる
サポートされている Pixel デバイスを登録すると、このアップデートと今後の Android ベータ版アップデートを無線(OTA)で入手できます。Google Pixel デバイスをお持ちでない場合は、Android Studio で Android Emulator を使用して64 ビット システム イメージを使用できます。
現在 Android ベータ プログラムに参加している場合は、ベータ版 4 への無線(OTA)アップデートが提供されます。
フィードバック ページで引き続き問題を報告し、機能リクエストを送信してください。早期にフィードバックをお送りいただくと、最終リリースに向けた作業により多くのフィードバックを反映させることができます。
Android 17 で最適な開発エクスペリエンスを実現するには、Android Studio(Panda)の最新プレビュー版を使用することをおすすめします。セットアップが完了したら、次のことを行ってください。
- 新しい SDK でコンパイルし、CI 環境でテストし、フィードバック ページのトラッカーで問題を報告します。
- 現在のアプリの互換性をテストし、アプリが Android 17 の変更の影響を受けるかどうかを確認し、Android 17 を実行しているデバイスまたはエミュレータにアプリをインストールして、徹底的にテストします。
Android 17 のリリース サイクル全体を通して、プレビュー/ベータ版のシステム イメージと SDK を定期的に更新します。ベータ版ビルドをインストールすると、それ以降のすべてのプレビュー版とベータ版のアップデートが無線(OTA)で自動的に提供されます。
詳細については、Android 17 デベロッパー サイトをご覧ください。
会話に参加する
皆様からのフィードバックは、引き続き Google にとって最も貴重な資産です。Canary チャンネルのアーリー アダプターの方も、ベータ版 4 でテストしているアプリ デベロッパーの方も、コミュニティに参加してフィードバックをお送りください。Google は皆様の声に耳を傾けています。
-
プロダクト ニュースGoogle Play では、安全なオンライン エクスペリエンスを提供し、ユーザーを危害から保護することを最優先にしています。
Paul Feng • 2 分で読了 -
2026 年 7 月 28 日2026 年 7 月 28 日
プロダクト ニュース本日、Jetpack Compose 1.0 のリリースから 5 年を迎えました。2021 年 7 月 28 日に発表されたバージョン 1.0 から最新の 1.11 リリースまで、API は長年にわたって大幅に進化してきました。この機会に、その進化を振り返ってみましょう。
Rebecca Franks, Nick Butcher, Loryn Hairston • 5 分で読了 -
プロダクト ニュースAndroid Studio Quail 2 が安定版になり、本番環境で使用できるようになりました。同時エージェント ワークフロー、ネイティブに統合されたメモリリーク プロファイリング、コンテキスト認識型のクラッシュ修復により、IDE が変わります。
Android 開発に関する最新の分析情報を毎週メールでお届けします。