Ao resolver problemas de comportamento e desempenho no ambiente de execução no Android você pode registrar chamadas de API do ARCore para o Registro do dispositivo Android.
Quando você ativa o registro de chamadas, o ARCore registra todas as chamadas de API com a API C independente do SDK com que o app foi criado. Todos os nomes de API C podem podem ser encontradas na documentação de referência da API C, junto com parâmetros e retornar valores.
Ativar a geração de registros de chamadas de API
Chamadas de API do ARCore que não usam parâmetros ArSession*
, como *_destroy
e *_release
não são registradas.
Siga estas etapas para ativar o registro de chamadas da API ARCore.
Verifique se o Google Play Services para RA (ARCore) 1.23 ou mais recente está instalado:
- No Windows, execute
adb shell pm dump com.google.ar.core | findstr /i "packages: versionName"
. - No macOS, execute
adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:
.
- No Windows, execute
Abra a experiência de RA no seu app para que haja uma sessão ativa do ARCore em execução. O app precisa estar no modo RA para receber a transmissão que ativa a geração de registros. As imagens de visualização da câmera de RA precisam estar visíveis no dispositivo tela.
Use o seguinte comando de transmissão do gerenciador de atividades para ativar o registro de chamadas: para seu app.
# 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
Desativar o registro de chamadas de API
Siga estas etapas para desativar o registro de chamadas da API ARCore.
Abra a experiência de RA no seu app para que haja uma sessão ativa do ARCore em execução. O app precisa estar no modo RA para receber a transmissão que desativa a geração de registros. As imagens de visualização da câmera de RA precisam estar visíveis no dispositivo tela.
Use o seguinte comando de transmissão do gerenciador de atividades para desativar o registro de chamadas para seu app:
# 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
Como visualizar a saída
O ARCore usa a tag ARCore-Api
para toda a saída de geração de registros da API ARCore. Use o
a seguir para filtrar apenas essas chamadas.
# 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
O ARCore limita a saída para reduzir o spam de registros. Ele agrega registros ignorados em uma única mensagem de registro.
Exemplo de saída de mensagens de registro ignoradas:
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)