เมื่อแก้ปัญหาลักษณะการทำงานรันไทม์และปัญหาด้านประสิทธิภาพใน Android คุณสามารถบันทึกการเรียก ARCore API ไปยัง บันทึกของอุปกรณ์ Android
เมื่อเปิดใช้การบันทึกการโทร ARCore จะบันทึกการเรียก API ทั้งหมดด้วย C API โดยไม่คำนึงถึง SDK ที่ใช้สร้างแอป ชื่อ C API ทั้งหมดสามารถ ได้ในเอกสารอ้างอิง C API พร้อมด้วย พารามิเตอร์และแสดงผลค่า
เปิดใช้การบันทึกการเรียก API
การเรียก ARCore API ที่ไม่ใช้พารามิเตอร์ ArSession*
เช่น *_destroy
และฟังก์ชัน *_release
รายการจะไม่ได้รับการบันทึก
ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การบันทึกการโทรของ ARCore API
ตรวจสอบว่าได้ติดตั้งบริการ Google Play สำหรับ AR (ARCore) 1.23 ขึ้นไปแล้ว โดยทำดังนี้
- ใน Windows ให้เรียกใช้
adb shell pm dump com.google.ar.core | findstr /i "packages: versionName"
- ใน macOS ให้เรียกใช้
adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:
- ใน Windows ให้เรียกใช้
เปิดประสบการณ์ AR ในแอปเพื่อให้มีเซสชัน ARCore อยู่ วิ่งอยู่ แอปต้องอยู่ในโหมด AR เพื่อรับประกาศที่เปิดใช้ การเข้าสู่ระบบ รูปภาพตัวอย่างของกล้อง AR ควรมองเห็นได้ในอุปกรณ์ บนหน้าจอ
ใช้คำสั่งการออกอากาศเครื่องมือจัดการกิจกรรมต่อไปนี้เพื่อเปิดใช้การบันทึกการโทร สำหรับแอปของคุณ
# 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
ปิดใช้การบันทึกการเรียก API
ทำตามขั้นตอนต่อไปนี้เพื่อปิดใช้การบันทึกการโทรของ ARCore API
เปิดประสบการณ์ AR ในแอปเพื่อให้มีเซสชัน ARCore อยู่ วิ่งอยู่ แอปต้องอยู่ในโหมด AR จึงจะได้รับการออกอากาศที่ปิดใช้ การเข้าสู่ระบบ รูปภาพตัวอย่างของกล้อง AR ควรมองเห็นได้ในอุปกรณ์ บนหน้าจอ
ใช้คำสั่งการออกอากาศเครื่องมือจัดการกิจกรรมต่อไปนี้เพื่อปิดใช้การบันทึกการโทร สำหรับแอปของคุณ
# 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
การดูเอาต์พุต
ARCore จะใช้แท็ก ARCore-Api
สำหรับเอาต์พุตการบันทึก ARCore API ทั้งหมด ใช้เมนู
ต่อไปเพื่อกรองเฉพาะการเรียกเหล่านั้น
# 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
อัตรา ARCore จำกัดเอาต์พุตเพื่อลดสแปมบันทึก รวบรวมบันทึกที่ข้ามไป ข้อความไว้ในบันทึกเดียว
ตัวอย่างเอาต์พุตของข้อความบันทึกที่ข้าม
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)