すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:Android クライアントの診断

最終更新日:Mar 01, 2026

本トピックでは、Android クライアントでクライアント診断機能を使用する方法について説明します。コンソールでは、Message Push Service (MPS) と Mobile Sync Service (MSS) の 2 つのチャンネルを通じて診断タスクを送信できます。

Android クライアントを診断するには、次の手順に従います。

  1. 診断サービスの初期化

  2. 診断ログの書き込み

  3. コンソールからのログのプル

前提条件

診断サービスの初期化

診断サービスは、MSS または MPS チャンネルを介した診断ログのプルをサポートしています。初期化メソッドはチャンネルごとに異なります。

Message Push Service チャンネルの使用

MPS チャンネルを使用する場合は、アプリの起動後に次の操作を実行します。

Mobile Sync Service チャンネルの使用

MSS チャンネルを使用する場合は、アプリの起動後に次のメソッドを呼び出してチャンネルを初期化します。

  • ユーザーによる診断タスクのトリガー

    // userId を設定します
    MPLogger.setUserId(String userId);
    // 同期チャンネルを初期化します。最初に userId を設定する必要があります。設定しない場合、初期化は失敗します。
    MPDiagnose.initSyncChannel(Context context);
  • デバイスによる診断タスクのトリガー

    説明

    デバイスによる診断タスクのトリガーは、ベースライン 10.2.3.73 以降でのみサポートされています。

    // userId を設定します
    MPLogger.setUserId(String userId);
    // 同期チャンネルを初期化します。最初に userId を設定する必要があります。設定しない場合、初期化は失敗します。
    MPDiagnose.initSyncDeviceChannel(Context context);

診断ログの書き込み

クライアントが診断タスクを受信すると、mPaaS ログツールである MPLogger を使用して書き込まれたログのみをアップロードします。このため、ログを書き込むには、android.util.Log の代わりに MPLogger を使用する必要があります。MPLogger は、ネイティブの Log クラスと同様のログレベルメソッドを提供します。

void verbose(String tag, String msg);
void debug(String tag, String msg);
void info(String tag, String msg);
void warn(String tag, String msg);
void warn(String tag, Throwable t);
void warn(String tag, String msg, Throwable tr);
void error(String tag, String msg);
void error(String tag, Throwable t);
void error(String tag, String msg, Throwable t);
void print(String tag, String msg);
void print(String tag, Throwable t);

MPLogger によって書き込まれたログは、デバッグパッケージの場合は logcat に表示されますが、リリースパッケージの場合は表示されません。デバイス上の診断ログのストレージディレクトリは次のとおりです。

  • デバッグパッケージ: /sdcard/[PackageName]/applog。このディレクトリに書き込みできない場合、ログはリリースパッケージのディレクトリに書き込まれます。

    重要

    targetSdkVersion が 30 以降で、かつスマートフォンのオペレーティングシステムが 11 以降の場合、ストレージディレクトリは /storage/emulated/0/Android/data/com.mpaas.demo/cache/[PackageName]/applog/ です。

  • リリースパッケージ:/data/data/[PackageName]/files/applog

診断ログストレージパラメーターのカスタマイズ

デフォルトでは、ローカルログストレージはデータを 7 日間保持し、ファイルサイズの制限は 15 MB です。この制限を超えると、ログファイルの 4 分の 1 が削除されます。

マニフェストで <meta-data> 要素を設定します。

// ログファイルの最大サイズ (MB)
<meta-data android:name="category_applog_max_size" android:value="15" />
// ログの保存期間 (日)
<meta-data android:name="category_applog_expires_time" android:value="7" />
説明

診断ログストレージパラメーターのカスタマイズは、ベースライン 10.2.3.73 以降でのみサポートされています。

コンソールからのログのプル

mPaaS ロギングツールによって書き込まれたログをコンソールからプルできます。この機能は、特定のデバイスモデルまたは特定のユーザーで発生したクラッシュや例外を迅速に分析するのに役立ちます。

ステップ 1: ログプルタスクの作成

  1. mPaaS コンソールにログインし、対象のアプリケーションを選択します。

  2. 左側のナビゲーションウィンドウで、[Mobile Analysis Service] > [ログ管理] をクリックします。

  3. [リアルタイムログのプル] タブで、[追加] をクリックします。

  4. タスク情報を入力します。[ユーザー ID] は、アプリケーションのログインシステムにおけるユーザーの識別子です。MPLogger.setUserId(String userId) または Message Push サービスを介してユーザー ID を報告するメソッドを使用して設定できます。

  5. [OK] をクリックして、ログプルタスクを作成します。

ステップ 2: ログプルタスクのトリガー

  1. ログプルタスクのリストで、作成したタスクを見つけ、[トリガーチャンネル] を選択し、[操作] 列の [トリガー] をクリックします。

  2. しばらく待ってからページをリフレッシュし、タスクのステータスを確認します。

    • タスク処理済み[表示] をクリックして診断ログをダウンロードします。

    • プッシュ/同期サービスの呼び出し成功: このステータスは、診断ログをアップロードするためのメッセージが送信されたものの、クライアントがまだそれを受信していないか、ログをアップロードしていないことを示します。この場合、アプリプロセスがまだ実行中であることを確認してください。実行中でない場合は、アプリを再起動します。アプリを再起動してもタスクのステータスが変わらない場合は、以下のトラブルシューティングセクションをご参照ください。

トラブルシューティング

ログをプルできない場合は、診断ログタスクの送信に使用したチャンネルに対応するトラブルシューティング手順に従ってください。

Message Push Service チャンネルの使用

トラブルシューティングを行うには、次の手順に従います。

  1. [mPaaS コンソール] > [Message Push Service] ページに移動します。ユーザー ID に基づいてアプリに通常メッセージをプッシュし、MPS チャンネルが正常に機能していることを確認します。

  2. MPS チャンネルが正常に機能している場合は、logcat ログをクリアし、プッシュプロセスに切り替えてから、コンソールで診断タスクの [トリガー] を再度クリックします。logcat ログを監視します。

  3. mPush14 でフィルターし、診断メッセージが受信されるか確認してください。受信されない場合は、プッシュチャンネルが切断されているか確認してください。image.png

  4. 診断メッセージが受信されたことを確認したら、次のログをチェックして、メッセージが MonitorService に転送されたことを確認してください。ClientMonitorService が見つからないことを示すエラーが表示された場合は、mPaaS プラグインを使用して SDK を更新してください。

    • ベースライン 10.1.32 の場合は、10.1.68 にアップグレードし、コンポーネントを最新バージョンに更新します。

    • ベースライン 10.1.60 または 10.1.68 の場合は、コンポーネントを最新バージョンに更新します。2

  5. MonitorService の起動を確認後、AlipayLogUploader でフィルターして、診断ログがローカルに存在するかどうかを確認します。次のログは、ローカルの診断ログがアップロード可能であることを示しています。

    本地存在日志

    次のログは、診断ログが存在しないことを示します。

    本地不存在日志

    診断ログが存在しない場合は、次の項目を確認してください。

    • コンソールでリアルタイムログプルタスクに選択する期間は、少なくとも 1 時間である必要があります。この期間中、アプリは実行中で、診断ログを書き込んでいる必要があります。

    • アプリは次の権限を宣言し、動的にリクエストする必要があります。

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  6. ローカル診断ログが存在することを確認したら、HttpUpload でフィルターして、ログのアップロードが成功したかどうかを確認します。responseCode が 200 の場合、アップロードが成功したことを示します。3

データ同期チャンネルの使用

トラブルシューティングを行うには、次の手順に従います。

  1. logcat ログをクリアし、メインプロセスに切り替えて同期チャネルを初期化した後、isConnected でフィルターして、同期チャネル接続が正常に確立されたかどうかを確認します。

  2. mPaaS コンソールで、診断タスクに対して再度[トリガー]をクリックします。MPDiagnose でフィルターして、診断メッセージが受信されたかどうか、および MonitorService が開始されたかどうかを確認します。

    メッセージが受信されない場合は、設定されたユーザー ID が診断タスクで入力されたユーザー ID と一致することを確認してください。ClientMonitorService が見つからないというエラーが表示された場合は、mPaaS プラグインを使用して SDK を更新してください。

    • ベースライン 10.1.32 の場合は、10.1.68 にアップグレードし、コンポーネントを最新バージョンに更新します。

    • ベースライン 10.1.60 または 10.1.68 の場合は、コンポーネントを最新バージョンに更新します。

  3. MonitorService が起動したことを確認した後、プッシュプロセスに切り替えて AlipayLogUploader でフィルターをかけ、診断ログがローカルに存在するかどうかを確認します。次のログは、アップロード可能なローカル診断ログが存在することを示しています。次のログは、診断ログが存在しないことを示しています。

    次の項目を確認してください。

    • コンソールでリアルタイムログプルタスクに選択する期間は、少なくとも 1 時間である必要があります。この期間中、アプリは実行中で、診断ログを書き込んでいる必要があります。

    • アプリは次の権限を宣言し、動的にリクエストする必要があります。

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  4. ローカル診断ログが存在することを確認した後、HttpUpload でフィルターし、ログのアップロードが成功したかどうかを確認します。responseCode が 200 の場合、アップロードが成功したことを示します。