Geração de registros de chamadas do ARCore

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.

  1. 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:.
  2. 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.

  3. 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.

  1. 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.

  2. 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)