capacitor-android について
capacitor-androidは、バックグラウンド追跡のためにReactとJava/Androidコードを扱うアシスタント向けスキルです。サービスのライフサイクル、電源管理、Capacitorブリッジ、位置情報の権限とプロバイダーを扱います。
主な機能
- 01フォアグラウンドサービスのライフサイクル管理
- 02通知と再起動後の追跡継続
- 03ウェイクロックとバッテリー最適化の調整
- 04CapacitorプラグインとReactの連携
- 05バックグラウンド位置情報と権限の設定
活用シーン
- 01Androidのバックグラウンド位置追跡を実装
- 02サービス再起動や継続通知の問題を調査
- 03ネイティブの状態更新をReact UIへ通知
- 04位置情報の権限と電源動作を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ abelv22/ project-foundation --skill capacitor-androidインストール後、Claude Code で/capacitor-androidを入力して読み込まれたか確認します。
詳細
Capacitor と Android ネイティブブリッジのスキル
このスキルにより、バックグラウンドトラッキングに特化した、Web 層(React)とネイティブ層(Java/Android)間の複雑な連携に対応できます。
知識分野
1. Android フォアグラウンドサービス
- ライフサイクル管理:
LocationTrackingService.javaの開始/停止/再起動のロジック。 - 通知: Android がフォアグラウンドタスクに必要とする、常時表示の通知を維持します。
- 起動時の継続性: デバイスの再起動後にトラッキングを再開するための
BOOT_COMPLETEDレシーバーを実装します。
2. バッテリーと電源の管理
- ウェイクロック: トラッキングの一貫性とバッテリー駆動時間のバランスを取るため、
PARTIAL_WAKE_LOCKを適切に管理します。 - Doze モード: 60 秒間隔で確実に実行するために
AlarmManager.setExactAndAllowWhileIdle()を使用します。 - 最適化の除外設定:
REQUEST_IGNORE_BATTERY_OPTIMIZATIONSに対応します。
3. Capacitor プラグインの開発
- ブリッジ通信:
ProTrackingPlugin.javaと React の間でデータを効率的に受け渡します。 - ネイティブから Web へのイベント:
notifyListenersを使用して、UI にステータスの更新をリアルタイムで通知します。
4. バックグラウンドの位置情報取得
- プロバイダー:
FusedLocationProviderClientの設定(優先度、間隔、最短間隔)を微調整します。 - 権限: 詳細な位置情報の権限(正確な位置情報、バックグラウンド)と通知の権限を管理します。
回答のガイドライン
- Java コードを変更する場合は、スレッドセーフを確保します(特にネットワーク呼び出しと位置情報の更新)。
- GPS の位置情報を取得できた場合、またはタイムアウトが発生した場合は、必ずウェイクロックを解放するよう勧めます。
LocationApiClient.javaで HTTP リクエストが失敗した場合に備えて、指数バックオフを提案します。- Android 14 以降の要件(フォアグラウンドサービスタイプ)に留意します。
コメント
Markdown 対応