มีสิ่งที่น่าสนใจมากมายในบันทึกระบบ Android ที่มีประโยชน์ในหลาย ๆ ด้าน
- ค้นหาสาเหตุของปัญหา
- ระบุแอปที่ทำงานผิดปกติ
ฉันจะดูและตรวจสอบบันทึก Android ได้อย่างไร
มีสิ่งที่น่าสนใจมากมายในบันทึกระบบ Android ที่มีประโยชน์ในหลาย ๆ ด้าน
ฉันจะดูและตรวจสอบบันทึก Android ได้อย่างไร
คำตอบ:
วิธีที่ต้องการคือการดาวน์โหลดSDKและการใช้งานadb logcat
(ต้องเปิดใช้งาน "ตัวเลือกนักพัฒนา" บนอุปกรณ์)
มีแอพที่พร้อมใช้งานสำหรับการดูบันทึกของระบบแบบเต็มอย่างไรก็ตามพวกมันจะทำงานเฉพาะกับอุปกรณ์ที่รูทหรือต้องการออกคำสั่งด้วยตนเองผ่านadb
เพื่อให้ทำงานได้ สำหรับข้อมูลเพิ่มเติมดูคำถามนี้
คุณสามารถดาวน์โหลดSDKและใช้adb logcat
หรือรับLogcat Extremจาก Google Play Store ซึ่งจะแสดงบันทึกโดยตรงบนโทรศัพท์ของคุณ
มีหลายไดเรกทอรีที่อาจมีบันทึก (รวมถึงที่เกิดจากข้อขัดข้อง) - บางรายการอาจไม่ได้มาตรฐาน (เช่นบางรายการอาจเป็นแบบเฉพาะ ROM)
/data/anr
: ดูเหมือนว่าไฟล์การติดตามบางไฟล์มาที่นี่ (Dalvik เขียนการติดตามสแต็กที่นี่ใน ANR เช่น "แอปพลิเคชันไม่ตอบสนอง" aka "Force-Close"; ดูตัวอย่างเช่นข้อความที่ตัดตอนมาที่นี่ )/data/dontpanic
ดูเหมือนว่าจะเป็นตำแหน่งมาตรฐาน (AOSP) และมีบันทึกข้อผิดพลาดบางอย่างรวมถึงการติดตาม (ดูเช่นviaForensicsและStackOverflow )/data/kernelpanics
เป็นอีกที่หนึ่ง - ไม่มี "kernel panic" บนอุปกรณ์ Android ของฉันฉันยังไม่เห็นเนื้อหาในนั้น/data/panic/panic_daemon.config
จุดพฤษภาคมถึงสถานที่อื่น ๆ การกำหนดค่า - เมื่อฉัน Droid 2 กล่าวถึง/sdcard/panic_data/
/data/panicreports
ไดเรกทอรี (ว่างที่นี่)/data/tombstones
อาจมีหลายtombstone_nn
ไฟล์ (โดยnn
เป็นอนุกรมเพิ่มขึ้นทุกไฟล์ใหม่) เนื่องจากหลุมฝังศพถูกวางไว้สำหรับคนตายจะทำที่นี่สำหรับ "กระบวนการที่เสียชีวิตจากอุบัติเหตุ" (เช่นเกิดการขัดข้อง) - และเป็นสิ่งที่เรียกว่า "แกนกลาง" บนระบบ Linux / Unix อย่างไรก็ตามแอพบางตัวนั้นไม่สามารถสร้างหลุมฝังศพได้ สิ่งนี้จะต้องเปิดใช้งานอย่างชัดเจนโดยผู้พัฒนา (ดูที่การดีบัก Android Core Dumps )อาจมีสถานที่อีกหลายแห่งที่ทำให้ฉันรอด แต่เมื่อการบันทึกส่วนใหญ่เสร็จสิ้นtmpfs
แล้วข้อมูลเหล่านี้จะหายไปพร้อมกับรีบูตและจะไม่ตรงกับคำถาม OPs
มีหลายคำสั่งที่ทำให้คุณได้รับข้อมูลมากมาย สำหรับพวกเขาส่วนใหญ่ขอแนะนำให้นำพวกเขาไปยังไฟล์ ( > filename.ext
) อีกครั้งหรือไพพ์ผ่านตัวกรอง ( | grep search-for-this
):
การทำงานต่อไปนี้โดยไม่มีรูต:
$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<snip>
ที่นี่คุณสามารถระบุพื้นที่ที่คุณสนใจได้ - วิทยุกิจกรรม ...
# logcat -b events
I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721]
I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721]
I/notification_cancel( 3457): [nitro.phonestats,4,0]
<snip>
และตันของมัน: เฉพาะอุปกรณ์ข้อมูลบัญชีบริการ ...
$ dumpsys
Currently running services:
LocationProxyService
SurfaceFlinger
accessibility
account
activity
<snip>
DUMP OF SERVICE account:
Accounts:
1 Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip>
$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================
Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree: 10436 kB
<snip>
ทำลูกบอลลูกใหญ่ด้วยทุกสิ่งร่วมกันจาก logcat ถึง dumpstate:
$ bugreport > /mnt/sdcard/bugreport.txt
ฉันค่อนข้างมั่นใจว่าคุณต้องการเปลี่ยนเส้นทางคำสั่งสุดท้าย ... xD
PS:โดยธรรมชาติการเข้าถึงข้อมูลเหล่านั้นอาจต้องการรูทเนื่องจากแหล่งข้อมูลส่วนใหญ่ตั้งอยู่บนที่เก็บข้อมูลภายใน
วิธีที่ไม่มีรูทซึ่งทำงานได้กับ Android เวอร์ชันใหม่:
วิชาบังคับก่อน:
คำแนะนำ:
Terminal
เป็น Spotlight และเปิดadb devices
เพื่อตรวจสอบว่าอุปกรณ์ของคุณเชื่อมต่ออย่างถูกต้องadb logcat
เพื่อแสดงสแต็กสเต็ปอาถรรพ์ที่ยิ่งใหญ่และเวทมนต์(ส่วนใหญ่คัดลอกมาจากLeandros )
แอพฟรีSysInfo ( Project Project ) จะแสดงบันทึกของระบบรวมถึง zip รายงานระบบที่สมบูรณ์เพื่อส่งผ่านอีเมล, dropbox, NFC, และอื่น ๆ อีกมากมายไม่ต้องพูดถึงข้อมูลระบบที่น่าสนใจอื่น ๆ อีกมากมาย
/sdcard/bugreports
มันตั้งอยู่ใน