Geração de registros de chamadas do ARCore

Ao solucionar problemas de comportamento do ambiente de execução e desempenho no seu app Android, é possível registrar chamadas de API ARCore no registro do dispositivo Android.

Quando você ativa a geração de registros de chamadas, o ARCore registra todas as chamadas de API com o nome da API C, independentemente do SDK com que o app foi criado. Todos os nomes da API C podem ser encontrados na documentação de referência da API C, com os parâmetros e valores de retorno deles.

Ative o registro de chamadas de API

As chamadas da API ARCore que não usam parâmetros ArSession*, como as funções *_destroy e *_release, não são registradas.

Siga estas etapas para ativar a geração de registros de chamadas da API ARCore.

  1. Confira 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. Seu app precisa estar no modo RA para receber a transmissão que permite a geração de registros. As imagens de visualização da câmera de RA precisam aparecer na tela do dispositivo.

  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 a geração de registros 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. Seu 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 aparecer na tela do dispositivo.

  2. Use o seguinte comando de transmissão do gerenciador de atividades para desativar o registro de chamadas no 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 comando 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

A taxa do ARCore limita a saída para reduzir o spam de registro. Ele agrega as mensagens de registro ignoradas em uma única mensagem.

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)