Android でのランタイムの動作やパフォーマンスの問題のトラブルシューティングを行う場合 アプリケーションでは、ARCore API 呼び出しを Android デバイスのログ。
コールロギングを有効にすると、ARCore のすべての API 呼び出しが C API でログに記録される そのアプリのビルドに使用されている SDK にかかわらずすべての C API 名は、 C API リファレンス ドキュメントと、 パラメータと戻り値を返します。
API 呼び出しロギングを有効にする
ArSession*
パラメータを受け取らない ARCore API 呼び出し(*_destroy
など)
*_release
関数はログに記録されません。
ARCore API 呼び出しロギングを有効にする手順は次のとおりです。
Google Play 開発者サービス(ARCore)1.23 以降がインストールされていることを確認します。
- Windows の場合は、
adb shell pm dump com.google.ar.core | findstr /i "packages: versionName"
を実行します。 - macOS の場合、
adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:
を実行します。
- Windows の場合は、
アプリで AR エクスペリエンスを開いて、アクティブな ARCore セッションが存在するようにします できます。以下を有効にするブロードキャストを受信するには、アプリを AR モードにする必要があります Logging に送信されます。AR カメラのプレビュー画像がデバイスに表示されます 表示されます。
通話ロギングを有効にするには、以下の Activity Manager のブロードキャスト コマンドを使用します。 提供します
# Enables ARCore call logging and saves a setting to your app's
# Android Shared Preferences, so that call logging remains enabled in
# subsequent ARCore sessions.
# Your app must have an actively running ARCore session to receive the broadcast.
adb shell am broadcast -a com.google.ar.core.ENABLE_API_CALL_LOGGING
API 呼び出しロギングを無効にする
ARCore API 呼び出しロギングを無効にする手順は次のとおりです。
アプリで AR エクスペリエンスを開いて、アクティブな ARCore セッションが存在するようにします できます。無効にするブロードキャストを受信するには、アプリを AR モードにする必要があります Logging に送信されます。AR カメラのプレビュー画像がデバイスに表示されます 表示されます。
以下のアクティビティ マネージャーのブロードキャスト コマンドを使用して、通話ロギングを無効にします。 :
# Disables ARCore call logging and saves a setting to your app's
# Android Shared Preferences, so that call logging remains disabled in
# subsequent ARCore sessions.
# Your app must have an actively running ARCore session to receive the broadcast.
adb shell am broadcast -a com.google.ar.core.DISABLE_API_CALL_LOGGING
出力の表示
ARCore は、すべての ARCore API ロギング出力に ARCore-Api
タグを使用します。こちらの
それらの呼び出しのみをフィルタできます。
# Currently, ARCore only logs API calls that take an `ArSession*` argument.
# Functions that do not take session parameters such as `*_destroy` and `*_release` are not logged.
# -s is equivalent to the filter expression '*:S', which sets priority for all tags to silent.
adb logcat -s ARCore-Api
ARCore は、ログスパムを減らすために出力をレート制限します。スキップされたログを集約し ログ メッセージにまとめます。
スキップされたログメッセージの出力例:
D ARCore-Api: ArFrame_create(<ptr>)
D ARCore-Api: ArSession_update(<ptr>) -> AR_SUCCESS
D ARCore-Api: ArFrame_acquireCamera(<ptr>, <ptr>)
D ARCore-Api: ArFrame_getDisplayGeometryChanged(<ptr>, <ptr>)
D ARCore-Api: ArCamera_getTrackingFailureReason(<ptr>, <ptr>)
D ARCore-Api: ArFrame_getTimestamp(<ptr>, <ptr>)
D ARCore-Api: ArSession_setDisplayGeometry(0, 1080, 2195)
D ARCore-Api: ArFrame_create(<ptr>) (suppressing for 10s)
D ARCore-Api: ArSession_update(<ptr>) -> AR_SUCCESS (suppressing for 10s)
D ARCore-Api: ArFrame_acquireCamera(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArFrame_getDisplayGeometryChanged(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArCamera_getTrackingFailureReason(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArFrame_getTimestamp(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArSession_setDisplayGeometry(0, 1080, 2195) (suppressing for 10s)