0Pricing
Android Academy · บทเรียน

การดีบักและการวิเคราะห์ประสิทธิภาพ

เชี่ยวชาญเครื่องมือดีบักและวิเคราะห์ประสิทธิภาพของ Android Studio ได้แก่ จุดหยุดทำงาน Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector และ Layout Inspector

การดีบักและการวิเคราะห์ประสิทธิภาพ เป็นบทเรียน Android Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Android Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน

ภาพรวมการดีบัก

การแก้ไขข้อบกพร่องคือกระบวนการค้นหาและแก้ไขบั๊ก แอนดรอยด์ สตูดิโอมีเครื่องมือทรงพลังดังนี้:

  • เครื่องมือแก้ไขข้อบกพร่อง — หยุดการทำงาน ตรวจสอบตัวแปร และไล่ดูโค้ดทีละขั้น
  • Logcat — แสดงบันทึกการทำงานจากอุปกรณ์แบบเรียลไทม์
  • เครื่องมือตรวจสอบเค้าโครง — ตรวจสอบลำดับชั้นส่วนติดต่อผู้ใช้ที่กำลังทำงานอยู่
  • เครื่องมือวิเคราะห์ประสิทธิภาพ Android — วิเคราะห์ CPU หน่วยความจำ และเครือข่าย
  • เครื่องมือตรวจสอบฐานข้อมูล — ดูและเรียกใช้คำสั่งค้นหาฐานข้อมูล Room แบบสด

Logcat — เครื่องมือแก้ไขข้อบกพร่องชิ้นแรกของคุณ

ใช้ Log เพื่อพิมพ์ข้อความไปยัง Logcat และใช้ TAG เพื่อกรองบันทึกการทำงานของคุณ:

import android.util.Log

class UserRepository {
    companion object {
        private const val TAG = "UserRepo"
    }

    fun fetchUsers() {
        Log.d(TAG, "fetchUsers() called")        // Debug
        Log.i(TAG, "Fetching ${users.size} users") // Info
        Log.w(TAG, "Cache is empty")               // Warning
        Log.e(TAG, "Network error: $exception")    // Error
    }
}

Timber — การบันทึกการทำงานที่ดีกว่า

Timber เป็นตัวห่อหุ้มบาง ๆ ของ Log ซึ่งจะลบการเรียกใช้บันทึกการทำงานออกจากรุ่นสำหรับเผยแพร่ และเพิ่มชื่อคลาสเป็น TAG โดยอัตโนมัติ:

// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'

// In Application.onCreate():
if (BuildConfig.DEBUG) {
    Timber.plant(Timber.DebugTree())
}

// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)

จุดหยุดและเครื่องมือแก้ไขข้อบกพร่อง

ขั้นตอนการแก้ไขข้อบกพร่องด้วยจุดหยุดในแอนดรอยด์ สตูดิโอ:

  1. คลิกบริเวณขอบด้านซ้ายถัดจากบรรทัดโค้ด — จุดสีแดงจะปรากฏขึ้น
  2. เรียกใช้แอปด้วย แก้ไขข้อบกพร่อง (ไอคอนรูปแมลง) แทนการเรียกใช้ตามปกติ
  3. เมื่อการทำงานมาถึงจุดหยุด ระบบจะหยุดชั่วคราว
  4. ตรวจสอบตัวแปรในแผง ตัวแปร
  5. ใช้ ข้ามไปยังบรรทัดถัดไป (F8) เพื่อดูโค้ดทีละบรรทัด และใช้ เข้าสู่การทำงานภายใน (F7) เพื่อเข้าไปในฟังก์ชัน

ประเมินนิพจน์

ขณะหยุดอยู่ที่จุดหยุด ให้ใช้ ประเมินนิพจน์ (Alt+F8) เพื่อเรียกใช้โค้ด Kotlin ในขอบเขตปัจจุบัน คุณสามารถตรวจสอบสมมติฐานได้โดยไม่ต้องเริ่มการทำงานใหม่:

  • ตรวจสอบ list.size และ user.email.isNotBlank()
  • เรียกใช้เมธอดใดก็ได้ แล้วดูค่าที่ส่งกลับ
  • ตรวจสอบออบเจ็กต์ที่ซับซ้อนได้โดยตรงในบรรทัดนั้น

เครื่องมือวิเคราะห์หน่วยความจำ

ค้นหาหน่วยความจำรั่วด้วย เครื่องมือวิเคราะห์หน่วยความจำ (มุมมอง → หน้าต่างเครื่องมือ → เครื่องมือวิเคราะห์ประสิทธิภาพ):

  • ดูขนาดฮีปตามช่วงเวลา — หากเพิ่มขึ้นอย่างต่อเนื่อง มีแนวโน้มว่าจะเกิดการรั่วไหล
  • บังคับเรียก GC และสังเกตว่าหน่วยความจำลดลงหรือไม่
  • สร้างภาพข้อมูลฮีปเพื่อดูว่าออบเจ็กต์ใดบ้างที่ยังมีอยู่
  • มองหาอินสแตนซ์ของ Activity หรือ Fragment ที่ควรถูก GC ไปแล้ว

LeakCanary — ตรวจจับหน่วยความจำรั่วโดยอัตโนมัติ

LeakCanary จะตรวจจับและรายงานหน่วยความจำรั่วโดยอัตโนมัติเป็นการแจ้งเตือนในรุ่นสำหรับแก้ไขข้อบกพร่อง:

// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'

// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.

// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregistered

เครื่องมือวิเคราะห์ CPU

ค้นหาคอขวดด้านประสิทธิภาพด้วย เครื่องมือวิเคราะห์ CPU:

  • บันทึกการติดตามขณะดำเนินการบางอย่าง
  • ดูแผนภูมิเปลวไฟเพื่อดูว่าเมธอดใดใช้เวลามากที่สุด
  • มองหางานที่ทำงานนานบน เธรดหลัก — สิ่งนี้ทำให้ส่วนติดต่อผู้ใช้กระตุก
  • ย้ายการคำนวณที่ใช้ทรัพยากรมากไปยัง Dispatchers.IO หรือ Dispatchers.Default

เครื่องมือตรวจสอบเครือข่าย

เครื่องมือตรวจสอบเครือข่ายจะแสดงการเรียก HTTP ทั้งหมดที่แอปของคุณส่งแบบเรียลไทม์:

  • ดู URL ของคำขอ เมธอด ส่วนหัว และเนื้อหา
  • ดูรหัสการตอบกลับ เนื้อหา และระยะเวลา
  • ระบุคำขอที่ช้าหรือล้มเหลว
  • ใช้งานกับ OkHttp ซึ่ง Retrofit ใช้ อยู่แล้วโดยไม่ต้องตั้งค่าเพิ่มเติม

เข้าถึงได้ที่ มุมมอง → หน้าต่างเครื่องมือ → การตรวจสอบแอป → เครื่องมือตรวจสอบเครือข่าย

เครื่องมือตรวจสอบฐานข้อมูล

ตรวจสอบและเรียกใช้คำสั่งค้นหาฐานข้อมูล Room แบบสดบนอุปกรณ์ที่กำลังทำงานอยู่:

  • ดูตารางและข้อมูลภายในตาราง
  • เรียกใช้คำสั่งค้นหา SQL แบบกำหนดเอง
  • ดูข้อมูลที่เปลี่ยนแปลงขณะใช้งานแอป

เข้าถึงได้ที่ การตรวจสอบแอป → เครื่องมือตรวจสอบฐานข้อมูล ใช้กับ Room บน API 26 ขึ้นไป

เครื่องมือตรวจสอบเค้าโครง

เครื่องมือตรวจสอบเค้าโครงจะแสดงมุมมอง 3 มิติของลำดับชั้นส่วนติดต่อผู้ใช้แบบสด:

  • เลือกมุมมองใดก็ได้เพื่อดูแอตทริบิวต์ เช่น ระยะขอบ ช่องว่างภายใน ข้อความ และสี
  • ค้นหามุมมองที่ซ้อนทับกันหรือการตั้งค่าการมองเห็นที่ไม่ถูกต้อง
  • แก้ไขปัญหาเค้าโครงได้โดยไม่ต้องคาดเดา

เข้าถึงได้ที่ มุมมอง → หน้าต่างเครื่องมือ → เครื่องมือตรวจสอบเค้าโครง เชื่อมต่อกับแอปที่กำลังทำงานบนอุปกรณ์หรือโปรแกรมจำลอง

StrictMode

StrictMode ตรวจจับการดำเนินการที่ช้าโดยไม่ตั้งใจบนเธรดหลัก เช่น การอ่านดิสก์และการเรียกเครือข่าย แล้วบันทึกหรือทำให้แอปหยุดทำงานในรุ่นสำหรับแก้ไขข้อบกพร่อง:

// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
    StrictMode.setThreadPolicy(
        StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()      // log violations instead of crashing
            .build()
    )
}

ตรวจสอบอย่างรวดเร็ว

เครื่องมือใดตรวจจับหน่วยความจำรั่วในรุ่นสำหรับแก้ไขข้อบกพร่องของ Android โดยอัตโนมัติและไม่ต้องเขียนโค้ดเพิ่มเติม

สรุป: การแก้ไขข้อบกพร่องและการวิเคราะห์ประสิทธิภาพ

ค้นหาและแก้ไขปัญหาได้อย่างมีประสิทธิภาพ:

  • Logcat + Timber — การบันทึกการทำงานที่มีน้ำหนักเบา และถูกลบออกโดยอัตโนมัติในรุ่นสำหรับเผยแพร่
  • จุดหยุด + เครื่องมือแก้ไขข้อบกพร่อง — หยุดชั่วคราวและตรวจสอบการทำงานจริง
  • เครื่องมือวิเคราะห์หน่วยความจำ — ตรวจจับการเพิ่มขึ้นของฮีปและหน่วยความจำรั่ว
  • LeakCanary — ตรวจจับหน่วยความจำรั่วโดยอัตโนมัติพร้อมร่องรอยการเรียก
  • เครื่องมือวิเคราะห์ CPU — ค้นหาเมธอดที่ทำงานช้าบนเธรดหลัก
  • เครื่องมือตรวจสอบเครือข่าย — ตรวจสอบการเรียก HTTP
  • เครื่องมือตรวจสอบฐานข้อมูล — เรียกใช้คำสั่งค้นหา Room แบบสด
  • StrictMode — ตรวจจับการใช้ IO บนเธรดหลักโดยไม่ตั้งใจ

ยินดีด้วย — คุณเรียนจบหลักสูตรการพัฒนา Android ฉบับเต็มแล้ว

คำถามที่พบบ่อย

บทเรียน “การดีบักและการวิเคราะห์ประสิทธิภาพ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การดีบักและการวิเคราะห์ประสิทธิภาพ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Android Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การดีบักและการวิเคราะห์ประสิทธิภาพ”

เชี่ยวชาญเครื่องมือดีบักและวิเคราะห์ประสิทธิภาพของ Android Studio ได้แก่ จุดหยุดทำงาน Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector และ Layout Inspector คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Android Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Android Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การดีบักและการวิเคราะห์ประสิทธิภาพ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Android Academy นี้ได้ไหม

ได้ บทเรียน Android Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทดสอบหน่วยด้วย JUnit
  2. การจำลองด้วย Mockito
  3. การทดสอบส่วนติดต่อผู้ใช้ด้วย Espresso
  4. การดีบักและการวิเคราะห์ประสิทธิภาพ
← กลับไปที่ Android Academy