Ghi nhật ký cuộc gọi ARCore

Khi khắc phục vấn đề về hiệu suất và hành vi thời gian chạy trong ứng dụng Android, bạn có thể ghi nhật ký các lệnh gọi API ARCore vào nhật ký thiết bị Android.

Khi bạn bật tính năng ghi nhật ký cuộc gọi, ARCore sẽ ghi nhật ký mọi lệnh gọi API có tên API C, bất kể ứng dụng được tạo bằng SDK nào. Bạn có thể tìm thấy tất cả các tên API C trong tài liệu tham khảo API C, cùng với các tham số và giá trị trả về của các tên đó.

Bật tính năng ghi nhật ký lệnh gọi API

Các lệnh gọi API ARCore không nhận các tham số ArSession* như các hàm *_destroy*_release sẽ không được ghi lại.

Hãy làm theo các bước sau để bật tính năng ghi nhật ký lệnh gọi API ARCore.

  1. Đảm bảo đã cài đặt Dịch vụ Google Play cho Thực tế tăng cường (ARCore) 1.23 trở lên:

    • Trên Windows, hãy chạy adb shell pm dump com.google.ar.core | findstr /i "packages: versionName".
    • Trên macOS, hãy chạy adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:.
  2. Mở trải nghiệm thực tế tăng cường trong ứng dụng để có một phiên ARCore đang hoạt động đang chạy. Ứng dụng phải ở chế độ thực tế tăng cường (AR) để nhận thông báo truyền tin cho phép ghi nhật ký. Hình ảnh xem trước của máy ảnh AR sẽ hiển thị trên màn hình thiết bị.

  3. Hãy sử dụng lệnh truyền phát của trình quản lý hoạt động sau để bật tính năng ghi nhật ký cuộc gọi: cho ứng dụng của bạn.

    # 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
    

Tắt tính năng ghi nhật ký lệnh gọi API

Hãy làm theo các bước sau để tắt tính năng ghi nhật ký lệnh gọi API ARCore.

  1. Mở trải nghiệm thực tế tăng cường trong ứng dụng để có một phiên ARCore đang hoạt động đang chạy. Ứng dụng của bạn phải ở chế độ thực tế tăng cường để nhận thông báo truyền tin tắt tính năng ghi nhật ký. Hình ảnh xem trước của máy ảnh AR sẽ hiển thị trên màn hình thiết bị.

  2. Hãy sử dụng lệnh truyền phát của trình quản lý hoạt động sau đây để tắt tính năng ghi nhật ký cuộc gọi cho ứng dụng của bạn:

    # 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
    

Xem kết quả

ARCore sử dụng thẻ ARCore-Api cho tất cả đầu ra ghi nhật ký API ARCore. Hãy dùng lệnh sau để chỉ lọc các lệnh gọi đó.

# 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

Tốc độ ARCore giới hạn dữ liệu đầu ra để giảm thư rác nhật ký. Dịch vụ này sẽ tổng hợp các thông điệp nhật ký bị bỏ qua thành một thông điệp nhật ký duy nhất.

Kết quả mẫu về thông điệp nhật ký bị bỏ qua:

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)