ガレージモードは、車両のアイドル時間を確保するために、システムが
待機している状態で
JobScheduler
の制限条件:
アイドル状態を実行できます。
ガレージモードとは
スマートフォンなどのコネクテッド デバイスでは、デバイスを安定した最新の最適化された状態に保つため、ユーザーはもっぱらシステムに頼ります。この状態を実現するため、Android プラットフォームは を アイドル状態 時間 ユーザーがリクエストしていないときにアプリがタスクを実行できる やり取りできます。ユーザーがタッチしなかった場合、スマートフォンはアイドル状態とみなされます。 長時間(60 分以上)オフになり、画面がオフになる。 スマートフォンとは異なり、車を使わないときは電源がオフになります。つまり、 なし アイドル時間 クリックします。ガレージモードは、自動車のアイドル時間を提供します。
ユーザーが自動車のエンジンを切ると、システムはガレージモードに入ります。一方で、
車がガレージモードになっていて、システムの電源がオンになっていて、ディスプレイがオフになっていて、
JobScheduler
キューのアイドル状態のジョブが実行されます。ガレージモードを実装する方法については、以下をご覧ください。
デバイス実装のガイドライン
デバイス実装のガイドライン
ガレージモードを有効にするには、車両のエンジンを切る際に車両 HAL(VHAL)が
送信が必要
状態 SHUTDOWN_PREPARE
の AP_POWER_STATE_REQ
パラメータは SHUTDOWN_ONLY
または CAN_SLEEP
に設定します。
SHUTDOWN_PREPARE
状態を有効にするために、VHAL は AP_POWER_STATE_REQ
コマンドに 2 つのパラメータ(状態と追加パラメータ)を指定する必要があります。これにより、デバイスがガレージモードに切り替わり、
スケジュール設定されたジョブを
JobScheduler
ジョブが完了するまでシステムが一時停止またはシャットダウンを
確認します。
デバイスの実装が Android フレームワークに接続する方法
ガレージモードの場合、フレームワークは VHAL にシャットダウン時間の延長をリクエストします。 必要な期間を超過するか、すべてのジョブが実行されるまで、 シャットダウンしますCDD で定義されている特定の状況では、デバイスの実装がシステムを通常より早くシャットダウンする場合があります詳細情報 をご覧ください。詳しくは、Android 互換性定義ドキュメント(CDD)。
ガレージモードが完了する前に VHAL がシステムをシャットダウンする必要がある場合、VHAL は以下を発行できます。
パラメータを次の値に設定された SHUTDOWN_PREPARE
SHUTDOWN_IMMEDIATELY
または SLEEP_IMMEDIATELY
。デバイス
実装では、特定の状況のみでこの方法を使用できます。
システムが稼働し続けるのに必要なリソースが
利用できない場合ですたとえば、電池容量が不足している場合などです。
図 1. ガレージモードのフロー
アプリ デベロッパーがガレージモードを使用するにはどうすればよいですか?
アプリとサービスは、ガレージモードと直接やり取りしません。代わりに
アプリでジョブのスケジュールを設定
JobScheduler
。
クラウド コンピューティングによって
アイドル状態: ガレージモード中に実行されます。
次のコードは、ガレージモードで実行するジョブのスケジュール方法を示しています。
public class MyGarageModeJob extends JobService { ... } Context context = ...; int jobId = ...; ComponentName myGarageModeJobName = new componentName(context, MyGarageModeJob.class); JobInfo.Builder infoBuilder = new JobInfo.Builder(jobId, myGarageModeJobName) .setRequiresDeviceIdle(true); // Example of an optional constraint: infoBuilder.setRequiredNetworkType(NetworkType.NETWORK_TYPE_UNMETERED); JobScheduler jobScheduler = (JobScheduler) context .getSystemService(Context.JOB_SCHEDULER_SERVICE); jobScheduler.schedule(infoBuilder.build());
ガレージモードをデバッグする
ガレージモードをデバッグする手順は次のとおりです。- ガレージモードに関連するロギング カテゴリを有効にするには、次のコマンドを実行します。
adb shell stop adb shell setprop log.tag.GarageMode VERBOSE adb shell setprop log.tag.Finsky VERBOSE adb shell setprop log.tag.CAR.POWER VERBOSE adb shell setprop log.tag.JobScheduler.Connectivity VERBOSE adb shell start
- ガレージモードが開始されたことを示す logcat 出力を確認します。
GarageMode: [Controller]: CPM state changed to SHUTDOWN_PREPARE GarageMode: [GarageMode]: Entering GarageMode GarageMode: [Controller]: Sending broadcast with action: com.android.server.jobscheduler.GARAGE_MODE_ON
- ガレージモードが終了(キャンセルまたは完了)したことを示す logcat 出力を確認します。
または[GarageMode]: GarageMode was canceled
[GarageMode]: GarageMode completed normally
上記の説明のとおり、ガレージモードは自動車の電源状態に依存します。
- 適切な電源状態に入ったことを示す logcat 出力を確認します。
CAR.POWER: starting shutdown prepare without Garage Mode GarageMode: [Controller]: CPM state changed to SHUTDOWN_PREPARE GarageMode: [GarageMode]: Entering GarageMode CAR.POWER: send shutdown prepare CAR.POWER: setPowerState=SHUTDOWN_PREPARE(7) param=0