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 以上をターゲットとしている場合、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 プロファイラに 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 キーストアで、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)で入手できます。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 チャンネルのアーリー アダプターの方も、Beta 4 でテストしているアプリ デベロッパーの方も、ぜひコミュニティに参加してフィードバックをお寄せください。ご意見をお聞かせください。
続きを読む
-
プロダクト ニュース
Google I/O 2026 では、Android エコシステムの最新の進歩が、開発効率を最大限に高めながらアプリの品質を向上させるのにどのように役立つかをご紹介しました。
Ataul Munim • 所要時間: 3 分
-
プロダクト ニュース
Google I/O 2026 では、Android がオペレーティング システムからインテリジェンス システムに移行したことを発表しました。また、システムでインテリジェントなエクスペリエンスをネイティブに構築し、Google の AI の力をアプリに導入する方法も紹介しました。
Jingyu Shi • 所要時間: 2 分
-
プロダクト ニュース
Android XR で Unreal Engine と Godot の公式サポートが開始されました。また、生産性を高め、新しい XR 機能を有効にするように設計された新しいツール(Android XR Engine Hub と Android XR Interaction Framework)もリリースします。
Luke Hopkins, Ryan Bartley • 所要時間: 4 分
最新情報の入手
Android 開発に関する最新の分析情報を毎週メールでお届けします。