適切なアクティビティコーディネーターポリシーを選択する

アクティビティ コーディネーターにはいくつかのテンプレート ポリシーが用意されており、タスクに必要なリソースに基づいて選択する必要があります。

アクティビティのワークロードを理解する

タスクに必要なアクティビティコーディネーターリソースと、タスクを実行する条件を決定します。 パフォーマンス トレースを使用してタスクをプロファイリングすることは、開始するのに適した場所です。

リソースの選択

パフォーマンス追跡から派生したリソースを選択します。 これらのリソースは、アクティビティのワークロードが影響を与えるリソースである必要があります。 暗黙的に消費または影響を与えるリソース (ユーザー アイドルや電源など) を忘れないでください。

条件の選択

パフォーマンス トレースで観察されているように、ワークロードのリソース消費量に基づいて条件を選択します。 一般に、必要なリソースに最適な条件を使用し、必要に応じて、目的の期間内にニーズを満たさない場合は、より低い条件でポリシーを更新することをお勧めします。 期限に間に合うように、ポリシーが満たされていない (リソース条件が満たされていない) ときに実行する前に、最適な条件から開始し、より低い条件に移行することをお勧めします。 これにより、API はアクティビティのユーザーとシステムへの影響を最小限に抑えながら、アクティビティを実行する機会を増やすことができます。

リソース消費量がごくわずかまたは少ないワークロードの場合、ACTIVITY_COORDINATOR_CONDITION_MEDIUM のような条件は、システムに悪影響を与えることなく使用できる場合があります。 消費量の多いワークロードは、 ACTIVITY_COORDINATOR_CONDITION_GOODのように、使用量がユーザー エクスペリエンスに影響を与える可能性が最も低い使用条件に適しています。 このようなワークロードは、より少ない条件を使用すると大きな影響を与える可能性が高く、これらの影響は本質的に一時的なものではない可能性があります。 たとえば、中程度のネットワーク条件でインターネットを使用すると、そのネットワークが従量制課金されている場合、ユーザーに金銭的なコストが発生する可能性があります。

アプリケーションがサポートするデバイスの種類と構成、およびパフォーマンス トレースからのマシンの機能に留意してください。 ターゲット環境のばらつきは、ワークロードがユーザー、システムに与える影響、および特定の期間にポリシーが満たされる可能性の違いを意味する場合があります。

期日

アクティビティには、さまざまな時間の制約が伴う場合があります。 実行時間の長い作業や、比較的短い時間で開始または完了する必要がある作業は、ポリシーが開かれる可能性を高めるために、より少ない条件を使用して処理する方が適している場合があります。 実行時間の短い作業や、時間要件が緩い作業は、最適な条件を使用してニーズを満たすことができます。 より長い時間枠では、ターゲット システムのリソース消費量が少ない期間が発生する可能性があります。 期限が近づいている場合、十分な進展が見られない場合は、期限後または期限が近づいたときに通常の実行方法に頼る前に、ポリシーをダウングレードすることをお勧めします。 繰り返し発生する作業は、完了時に元のポリシーに切り替えることができます。

テンプレートポリシー

API には、一般的な仕事用プロファイル用の一連のテンプレート ポリシーが付属しており、API を簡単に使い始めるために使用できます。 ローカル コンピューティングを行うほとんどのプログラムでは、テンプレート ポリシーを使用することをお勧めします。

ポリシーの推奨事項

提供されているテンプレート ポリシーのうち、どれを選択すればよいかわからない場合は、ほとんどの場合、ACTIVITY_COORDINATOR_POLICY_TEMPLATE_GOODが適しています。 このポリシーは、ユーザーへの影響を最小限に抑えながら、開発者の作業を完了するためにポリシーが十分にオープンである合理的な可能性を提供します。

テンプレートポリシーのカスタマイズ

テンプレートポリシーでは、一般的なユースケースでは必要ない一部のリソース(GPUなど)が省略される場合があります。 予想されるワークロードに基づいて、テンプレートポリシーを出発点として使用してポリシーをカスタマイズできます。

ポリシーをゼロから構築する

フル コントロールを必要とする開発者は、空のポリシーから開始できます: ACTIVITY_COORDINATOR_POLICY_TEMPLATE_EMPTY ただし、これらのシナリオでは、ほとんどの状況に適用される最小推奨リソースと条件を指定する ACTIVITY_COORDINATOR_POLICY_TEMPLATE_BASEから始めることをお勧めします。 これにより、ポリシーを最初から構成するときに、ユーザー アイドル、CPU、電源リソースなどの重要なリソース条件が誤って省略されることがなくなります。

アクティビティ コーディネーター API の概要

アクティビティコーディネーター API と用語

アクティビティコーディネーターのサンプルプロジェクト