Android™ ウォッチドッグを実装する

Android™ のアーキテクチャ上、デバイスをリブートするには、アプリケーションがシステム権限を持っている必要があります。製造元の署名キーを使用して apk に署名します。この署名を行わないと、ウォッチドッグはプレーヤーアプリケーションを再起動できても、デバイスは再起動できません。

製造元のキーを使用した Android™ apks への署名

PowerManagerHDMIControlServices など、Android™ の特権付き API にアクセスするには、製造元のキーを使用して Android™ apk に署名します。

CAUTION
前提条件:
次の手順を実行する前に、Android™ SDK をインストールしておく必要があります。

次の手順に従って、製造元のキーを使用して Android™ apk に署名します。

  1. Google Play または AEM Screens Player のダウンロードページから apk をダウンロードします。

  2. 製造元のプラットフォームキーを入手して、pk8 ファイルと pem ファイルを取得できます。

  3. find ~/Library/Android/sdk/build-tools -name "apksigner" を使用してAndroid™ SDK で apksigner ツールを見つける

  4. <pathto> /apksigner sign --key platform.pk8 --cert platform.x509.pem aemscreensplayer.apk

  5. Android™ SDK の zip align ツールへのパスを見つける

  6. <pathto> /zipalign -fv 4 aemscreensplayer.apk aemscreensaligned.apk

  7. adb install を使用して、デバイスに aemscreensaligned.apk をインストールします。

Android™ ウォッチドッグサービスについて

クロスAndroid™ ウォッチドッグサービスは、AlarmManager を使用して Cordova プラグインとして実装されます。

次の図に、ウォッチドッグサービスの実装を示します。

chlimage_1-31

1.初期化 – Cordova プラグインの初期化時、システム権限を持っているかどうか、さらに、リブート権限を持っているかどうかの確認が行われます。これらの 2 つの条件を満たしている場合は、リブートのペンディングインテントが作成され、条件を満たしていない場合は、(Launch Activity に基づいて)アプリケーションを再起動するためのペンディングインテントが作成されます。

2.キープアライブタイマー – 15 秒おきにイベントをトリガーするためにキープアライブタイマーが使用されます。このイベントの間に、(アプリケーションをリブートまたは再起動する)既存のペンディングインテントをキャンセルし、次の 60 秒の間に新しいペンディングインテントを登録(基本的にリブートを延期)します。

NOTE
Android™ では、AlarmManager は、アプリケーションがクラッシュして、そのアラーム配信が API 19(Kitkat)から正確に行われなくても実行可能な pendingIntents を登録するために使用されます。タイマーの間隔と AlarmManagerpendingIntent のアラームとの間にいくらかの時間を設けるようにしてください。

3.アプリケーションのクラッシュ – クラッシュが発生した場合、AlarmManager に登録されたリブートの pendingIntent はリセットされなくなりました。そのため、アプリケーションのリブートまたは再起動が実行されます(Cordova プラグインの初期化時に使用できる権限によって異なります)。