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
và *_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.
Đả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:
.
- Trên Windows, hãy chạy
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ị.
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.
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ị.
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)