機能と API

Android 17 では、デベロッパー向けに優れた新しい機能と API が導入されました。以下のセクションでは、これらの機能の概要を説明し、関連する API を使い始めるうえで役立つ情報を提供します。

新しい API、変更された API、削除された API の一覧については、API 差分レポートをご覧ください。新しい API について詳しくは、Android API リファレンスをご覧ください。新しい API は、見つけやすいようにハイライト表示されています。

また、プラットフォームの変更がアプリに影響する可能性がある領域も確認する必要があります。詳細については、次のページをご覧ください。

コア機能

Android 17 では、Android のコア機能に関連する次の新機能が追加されています。

新しい ProfilingManager トリガー

Android 17 では、パフォーマンスの問題をデバッグするための詳細なデータを収集するのに役立つ、いくつかの新しいシステム トリガーが ProfilingManager に追加されています。

新しいトリガーは次のとおりです。

  • TRIGGER_TYPE_COLD_START: アプリのコールド スタート中にトリガーが発生します。レスポンスでコールスタックのサンプルとシステム トレースの両方が提供されます。
  • TRIGGER_TYPE_OOM: アプリが OutOfMemoryError をスローし、それに応じて Java ヒープダンプを提供したときにトリガーが発生します。
  • TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE: 異常な CPU 使用率が原因でアプリが強制終了されたときにトリガーが発生し、レスポンスとしてコールスタックのサンプルが提供されます。

システム トリガーの設定方法については、トリガーベースのプロファイリングプロファイリング データの取得と分析に関するドキュメントをご覧ください。

セキュリティ

Android 17 では、デバイスとアプリのセキュリティを強化するために、以下の新機能が追加されています。

Android の高度な保護機能モード(AAPM)

Android の高度な保護モードは、Android ユーザーに強力な新しいセキュリティ機能を提供し、ユーザー(特にリスクの高いユーザー)を高度な攻撃から保護するうえで大きな進歩となります。オプトイン機能として設計された AAPM は、ユーザーがいつでもオンにできる単一の構成設定で有効になり、セキュリティ保護の意見の強いセットが適用されます。

これらのコア構成には、提供元不明のアプリのインストール(サイドローディング)のブロック、USB データ シグナリングの制限、Google Play プロテクトのスキャン義務付けが含まれており、デバイスの攻撃対象領域を大幅に削減します。デベロッパーは AdvancedProtectionManager API を使用してこの機能と統合し、モードのステータスを検出できます。これにより、ユーザーがオプトインしたときに、アプリケーションが自動的にセキュリティ強化された状態に移行したり、リスクの高い機能を制限したりできるようになります。

接続

Android 17 では、デバイスとアプリの接続性を向上させるために次の機能が追加されています。

制約のある衛星ネットワーク

低帯域幅の衛星ネットワークでアプリが効果的に機能するように最適化を実装します。

ユーザー エクスペリエンスとシステム UI

Android 17 には、ユーザー エクスペリエンスを改善するための以下の変更が含まれています。

ハンドオフ

ハンドオフは、Android 17 で導入される新しい機能と API です。アプリ デベロッパーはこれを統合して、ユーザーにデバイス間の継続性を提供できます。これにより、ユーザーは 1 つの Android デバイスでアプリ アクティビティを開始し、別の Android デバイスに移行できます。ハンドオフはユーザーのデバイスのバックグラウンドで実行され、受信側のデバイスのランチャーやタスクバーなどのさまざまなエントリ ポイントを通じて、ユーザーの近くにある他のデバイスで利用可能なアクティビティを表示します。

アプリは、受信側のデバイスに同じネイティブ Android アプリがインストールされていて利用可能な場合、ハンドオフでそのアプリを起動するように指定できます。このアプリ間フローでは、ユーザーは指定されたアクティビティにディープリンクされます。また、アプリからウェブへのハンドオフをフォールバック オプションとして提供したり、URL ハンドオフで直接実装したりすることもできます。

ハンドオフのサポートはアクティビティ単位で実装されます。ハンドオフを有効にするには、アクティビティの setHandoffEnabled() メソッドを呼び出します。受け渡しとともに追加のデータを渡す必要がある場合もあります。これにより、受信デバイスで再作成されたアクティビティが適切な状態を復元できます。onHandoffActivityRequested() コールバックを実装して、受け取り側のデバイスでハンドオフがアクティビティを処理して再作成する方法を指定する詳細を含む HandoffActivityData オブジェクトを返します。