Mọi breadcrumb, custom key và lỗi non-fatal game ghi lại để đọc lại hiện trường khi crash. Chỉ chạy trên Android; trên desktop macOS các hàm là rỗng (DEC-203).
Cầu nối C++ → Java JNILớp phoenix::crashTài liệu gốc docs/CRASHLYTICS-EVENTS.md
9
custom key
6
popup theo dõi
11
nhóm button
24
anim / fx
00 Cơ chế gửi
Năm hàm trong game/Source/platform/CrashReporting.h/.cpp, gọi AppActivity.java qua JNI.
Hàm C++
Hàm Java
Tác dụng
crash::log(msg)
logCrashlytics
Thêm một dòng breadcrumb vào log báo cáo (đệm ~64 KB, dòng cũ bị đẩy ra).
crash::setCustomKey(k,v)
setCrashlyticsCustomKey
Đặt cặp key/value; báo cáo crash hiện giá trị cuối cùng.
crash::event(cat,name)
gộp 2 hàm trên
Ghi log("cat: name") và setCustomKey("last_cat", name).
crash::recordException(name,msg)
recordCrashlyticsException
Lỗi non-fatal, vào mục Non-fatals trên Console.
crash::testCrashNative/Java()
crashlyticsTestCrash
Ép crash để kiểm, chỉ gọi từ nút debug.
01 Custom key key
Giá trị trạng thái cuối cùng hiện ra trong báo cáo crash.
Key
Giá trị
Vị trí
screen
id màn hình vừa mở
Screens.cpp:29
seed
seed ván hiện tại
BoardPlay.cpp:499
game_over_score
điểm khi thua
BoardPlay.cpp:316
autoplay
on / off
BoardPlay.cpp:1963
last_button
tên button bấm gần nhất
mọi event("button")
last_popup_open
popup mở gần nhất
mọi event("popup_open")
last_popup_close
popup đóng gần nhất
mọi event("popup_close")
last_anim
anim/fx chạy gần nhất
mọi event("anim")
last_asset_load
prefab/layout nạp gần nhất
FxService.cpp:288
02 Vòng đời app & màn hình log
Log
Khi nào
Vị trí
app: start
App khởi động xong
AppDelegate.cpp:164
app: background
App vào nền
AppDelegate.cpp:174
app: foreground
App quay lại
AppDelegate.cpp:185
screen: <id>+key screen
Mở một màn qua registerScreen
Screens.cpp:28-29
03 Ván chơi & lỗi
Breadcrumb trong ván Endless/Travel và các lỗi non-fatal.
Log / lỗi
Khi nào
Vị trí
play: start seed=<N> [resume(N)]+key seed
Bắt đầu / tiếp tục ván Endless
BoardPlay.cpp:497-499
play: resume ra game over ⇒ dựng ván mới
Save khôi phục ra bàn đã chết nên bỏ save, mở ván mới
BoardPlay.cpp:519
play: game over score=<N>+key game_over_score
Thua
BoardPlay.cpp:314-316
travel: start theme=.. level=.. seed=..
Bắt đầu ván Travel
BoardPlay.cpp:179
travel: result win|lose score=<N>
Popup kết quả Travel hiện
BoardPlay.cpp:1317
board: drag kẹt, huỷ và nhặt lại
Phát hiện drag kẹt, tự huỷ
BoardPlay.cpp:1835
non-fatalApplyInputError
Core ném lỗi khi áp dụng input
BoardPlay.cpp:291
non-fatalLevelLoadError
Không đọc được levels/endless.json
BoardPlay.cpp:457
non-fatalResumeReplayError
Replay save lỗi khi tiếp tục ván
BoardPlay.cpp:510
autoplay: on / off+key autoplay
Bấm nút AUTO (bản debug)
BoardPlay.cpp:1963
autoplay: move slot=.. r=..
Mỗi nước tự chơi
BoardPlay.cpp:2024
autoplay: no move, stop
AUTO hết nước đi
BoardPlay.cpp:2019
test: native/java crash
Nút CRASH debug
CrashReporting.cpp, BoardPlay.cpp:~1998
04 Sảnh & Travel log
Toàn bộ nhóm này mới thêm trong lần cập nhật event.
Trong BoardFx.cpp, mỗi id là một hiệu ứng được đánh dấu khi chạy.
id
Ý nghĩa
Dòng
line_clear
Xoá hàng/cột
317
combo_count
Hiện số combo
500
combo_pet
Pet phản ứng combo
503
praise
Chữ khen (Good, Great)
609
new_record
Kỷ lục mới
746
unbelievable
Hiệu ứng Unbelievable
1155
perfect_step
Perfect step
1305
crush_perfect
Crush perfect
1324
pre_match
Pre clear báo trước xoá
1671
pre_match_clearscreen
Pre clear biến thể clear screen
1682
pre_match_replace
Pre clear biến thể replace
1687
pre_match_colorama
Pre clear biến thể colorama
1692
pre_match_rainbow_stay
Pre clear rainbow giữ lại
1798
start_banner
Banner bắt đầu ván
1824
combo_edge_glow
Viền sáng combo
1853
combo_tips_break
Gợi ý combo vỡ
1870
help_hint
Gợi ý nước đi
1979
clear_board
Xoá sạch bàn (2 chỗ)
2183, 2217
game_over
Anim thua (No Space Left)
2428
Anim/FX ngoài BoardFx.cpp:
id
Ý nghĩa
Vị trí
iq_score
Anim điểm IQ màn kết toán
SettlementScreens.cpp:937
crown
Vương miện kỷ lục
SettlementScreens.cpp:999
settlement
Anim màn kết toán
SettlementScreens.cpp:1003
letter
Anim mở thư Welcome
SettlementScreens.cpp:1292
pet_click
Pet bị chạm
PetSpine.cpp:210
Cố ý bỏ qua vì tần suất cao (tránh tràn log mỗi khung hình): score_add, cur_score, put_spread, board_click, block_lift, screen_shake, pet_idle.
08 Nạp asset asset_load
asset_load: <tên prefab> ghi mỗi lần một prefab/layout/AnimatorController được đánh dấu nạp (fx::markAsset) tại FxService.cpp:288, gọi từ ui/LayoutLoader.cpp và vài anim (ví dụ EmailPopupView).