วิธีการ

คู่มือการเลื่อนระดับสำหรับการเดินทางด้านประสิทธิภาพ

ใช้เวลาอ่าน 9 นาที
Alice Yuan
วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์

คู่มือการเลื่อนระดับสำหรับเส้นทางประสิทธิภาพ

ยินดีต้อนรับสู่วันที่ 4 ของสัปดาห์ไฮไลต์ประสิทธิภาพ ตอนนี้คุณได้เรียนรู้เกี่ยวกับเครื่องมือที่ยอดเยี่ยมและแนวทางปฏิบัติแนะนำบางส่วนที่เราเพิ่งเปิดตัวไปเมื่อเร็วๆ นี้ เช่น R8 Optimizer และการเพิ่มประสิทธิภาพที่แนะนำโปรไฟล์ด้วยโปรไฟล์พื้นฐานและโปรไฟล์เริ่มต้น คุณอาจสงสัยว่าจะเริ่มต้นเส้นทางการปรับปรุงประสิทธิภาพจากตรงไหน 

เราได้จัดทำคู่มือการปรับระดับประสิทธิภาพแบบทีละขั้นตอนเพื่อให้ทีมพัฒนาแอปบนอุปกรณ์เคลื่อนที่ของคุณพร้อมใช้งาน ไม่ว่าคุณจะเป็นแอปที่มีนักพัฒนาแอปเพียงคนเดียวที่ต้องการเริ่มต้นใช้งานประสิทธิภาพ หรือมีทั้งทีมที่มุ่งมั่นในการปรับปรุงประสิทธิภาพของ Android 

คู่มือการปรับระดับประสิทธิภาพมี 5 ระดับ เราจะเริ่มจากระดับ 1 ซึ่งเป็นการแนะนำเครื่องมือประสิทธิภาพที่ต้องใช้ความพยายามในการนำไปใช้เพียงเล็กน้อย และจะเพิ่มขึ้นไปจนถึงระดับ 5 ซึ่งเหมาะสำหรับแอปที่มีทรัพยากรในการดูแลกรอบประสิทธิภาพที่กำหนดเอง

 
คุณสามารถข้ามไปยังระดับที่ตรงใจคุณมากที่สุดได้

ระดับที่ 1:  ใช้การตรวจสอบภาคสนามที่ Play Console จัดให้

เราขอแนะนำให้ใช้ประโยชน์จาก Android Vitals ภายใน Play Console ก่อนเพื่อดูข้อมูลการตรวจสอบภาคสนามที่รวบรวมโดยอัตโนมัติ ซึ่งจะช่วยให้คุณได้รับข้อมูลเชิงลึกเกี่ยวกับแอปพลิเคชันโดยใช้ความพยายามเพียงเล็กน้อย

Android Vitals เป็นโครงการริเริ่มของ Google ที่จะรวบรวมและแสดงข้อมูลฟิลด์นี้ให้คุณโดยอัตโนมัติ

คำอธิบายเกี่ยวกับวิธีที่เราส่งข้อมูลนี้มีดังนี้

  1. รวบรวมข้อมูล: เมื่อผู้ใช้เลือกใช้ อุปกรณ์ Android จะบันทึกเหตุการณ์ด้านประสิทธิภาพและความเสถียรที่สำคัญจากแอปทั้งหมดโดยอัตโนมัติ รวมถึงแอปของคุณด้วย
  2. ข้อมูลรวม: Google Play จะรวบรวมและลบข้อมูลระบุตัวบุคคลออกจากข้อมูลนี้จากผู้ใช้แอปของคุณ
  3. ข้อมูลเชิงลึกของ Surface: ข้อมูลจะแสดงในแดชบอร์ด Android Vitals ภายใน Google Play Console

แดชบอร์ด Android Vitals จะติดตามเมตริกหลายรายการ แต่มีบางรายการที่กำหนดให้เป็น Core Vitals เมตริกเหล่านี้มีความสำคัญมากที่สุดเนื่องจากอาจส่งผลต่อระดับการมองเห็นและการจัดอันดับแอปของคุณใน Google Play Store

Vitals หลัก

เมตริกคุณภาพทางเทคนิคหลักของ Google Play

โปรดดูแลไม่ให้แอปมีเมตริกเหล่านี้ต่ำกว่าเกณฑ์ลักษณะการทำงานที่ไม่ถูกต้องเพื่อเพิ่มระดับการมองเห็นใน Google Play ให้สูงสุด

อัตราการขัดข้องที่ผู้ใช้รับรู้เปอร์เซ็นต์ของผู้ใช้ที่ใช้งานอยู่รายวันซึ่งพบการขัดข้องอย่างน้อย 1 ครั้งที่มีแนวโน้มที่จะสังเกตเห็นได้
อัตรา ANR ที่ผู้ใช้รับรู้เปอร์เซ็นต์ของผู้ใช้ที่ใช้งานอยู่รายวันซึ่งพบ ANR อย่างน้อย 1 ครั้งที่มีแนวโน้มที่จะสังเกตเห็นได้
การใช้งานแบตเตอรี่มากเกินไปเปอร์เซ็นต์ของเซสชันหน้าปัดที่ใช้แบตเตอรี่เกิน 4.44% ต่อชั่วโมง
ใหม่: Wake Lock บางส่วนที่มากเกินไปเปอร์เซ็นต์ของเซสชันของผู้ใช้ที่การใช้งาน Wake Lock สะสมที่ไม่ได้รับการยกเว้นเกิน 2 ชั่วโมง

Vitals หลักประกอบด้วยอัตราการขัดข้องที่ผู้ใช้รับรู้ อัตรา ANR การใช้งานแบตเตอรี่มากเกินไป และตัวชี้วัดที่เพิ่งเปิดตัวใหม่เกี่ยวกับการใช้ Wake Lock บางส่วนมากเกินไป

อัตรา ANR ที่ผู้ใช้รับรู้

คุณสามารถใช้แดชบอร์ด ANR ของ Android Vitals เพื่อดู Stack Trace ของปัญหาที่เกิดขึ้นในฟิลด์ รวมถึงรับข้อมูลเชิงลึกและคำแนะนำเกี่ยวกับวิธีแก้ไขปัญหา 

crashesAnrs.png

คุณสามารถเจาะลึก ANR ที่เฉพาะเจาะจงซึ่งเกิดขึ้นเพื่อดูสแต็กเทรซ รวมถึงข้อมูลเชิงลึกเกี่ยวกับสาเหตุที่อาจทำให้เกิดปัญหา

insights.png

นอกจากนี้ โปรดดูคำแนะนำเกี่ยวกับ ANR เพื่อช่วยคุณวินิจฉัยและแก้ไขสถานการณ์ที่พบบ่อยซึ่งอาจเกิด ANR 

อัตราการขัดข้องที่ผู้ใช้รับรู้ 

ใช้แดชบอร์ดข้อขัดข้องของ Android Vitals เพื่อแก้ไขข้อบกพร่องเพิ่มเติมเกี่ยวกับข้อขัดข้อง และดูตัวอย่างสแต็กเทรซที่เกิดขึ้นภายในแอป 

นอกจากนี้ เอกสารประกอบของเรายังมีคำแนะนำเกี่ยวกับการแก้ปัญหาข้อขัดข้องที่เฉพาะเจาะจงด้วย เช่น คู่มือการแก้ปัญหาเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้าจะอธิบายวิธีระบุและแก้ไขสถานการณ์ทั่วไปที่เกิดข้อขัดข้อง

การใช้งานแบตเตอรี่มากเกินไป 

หากต้องการลดเซสชันหน้าปัดที่ใช้งานแบตเตอรี่มากเกินไปใน Wear OS โปรดดูคำแนะนำสำหรับ Wear เกี่ยวกับวิธีปรับปรุงและประหยัดแบตเตอรี่

[ใหม่] Wake Lock บางส่วนที่มากเกินไป

 

เมื่อเร็วๆ นี้เราได้ประกาศว่าแอปที่เกินเกณฑ์ Wake Lock บางส่วนที่มากเกินไปอาจได้รับการดำเนินการเพิ่มเติมตั้งแต่วันที่ 1 มีนาคม 2026

สำหรับอุปกรณ์เคลื่อนที่ เมตริก Android Vitals จะใช้กับ Wake Lock ที่ไม่ได้รับการยกเว้นซึ่งได้มาขณะที่หน้าจอปิดอยู่และแอปทำงานอยู่ในเบื้องหลังหรือเรียกใช้บริการที่ทำงานอยู่เบื้องหน้า Android Vitals จะพิจารณาว่าการใช้ Wake Lock บางส่วนมากเกินไปหากมีการถือ Wake Lock อย่างน้อย 2 ชั่วโมงภายในระยะเวลา 24 ชั่วโมง และส่งผลต่อเซสชันของแอปมากกว่า 5% โดยเฉลี่ยในช่วง 28 วัน

หากต้องการแก้ไขข้อบกพร่องและปัญหา Wake Lock ที่มากเกินไป โปรดดูบล็อกโพสต์ด้านเทคนิค

โปรดอ่านเอกสารประกอบของ Android Vitals และดำเนินการต่อไปเพื่อใช้ประโยชน์จาก Android Vitals ให้ดียิ่งขึ้น

ระดับ 2: ปฏิบัติตามรายการการทำงานของคะแนนประสิทธิภาพของแอป

จากนั้นไปที่การใช้คะแนนประสิทธิภาพของแอปเพื่อค้นหาสิ่งต่อๆ ไปที่ต้องทำซึ่งมีผลสูงเพื่อยกระดับประสิทธิภาพของแอป

คะแนนประสิทธิภาพของแอป Android เป็นเฟรมเวิร์กมาตรฐานสำหรับวัดประสิทธิภาพทางเทคนิคของแอป โดยจะให้คะแนนระหว่าง 0 ถึง 100 ซึ่งตัวเลขที่ต่ำกว่าบ่งบอกถึงโอกาสในการปรับปรุงที่มากขึ้น

หากต้องการให้ได้ผลลัพธ์ที่ง่าย คุณควรเริ่มต้นด้วยคะแนนประสิทธิภาพแบบคงที่ก่อน ซึ่งมักเป็นการเปลี่ยนแปลงการกำหนดค่าหรือการอัปเดตเครื่องมือที่ช่วยเพิ่มประสิทธิภาพได้อย่างมาก

ขั้นตอนที่ 1: ดำเนินการประเมินแบบคงที่

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

ไปที่ส่วนคะแนนคงที่ของหน้ากระดานคะแนน แล้วทำดังนี้

  1. ประเมินเวอร์ชันปลั๊กอิน Android Gradle (AGP)
  2. ใช้การลดขนาด R8 ทีละน้อย หรือใช้ R8 ในโหมดเต็มเพื่อลดขนาดและเพิ่มประสิทธิภาพโค้ดแอป
  3. ใช้โปรไฟล์พื้นฐานซึ่งช่วยปรับปรุงความเร็วในการเรียกใช้โค้ดตั้งแต่การเปิดตัวครั้งแรก ซึ่งจะช่วยเพิ่มประสิทธิภาพสำหรับการติดตั้งแอปใหม่ทุกครั้งและการอัปเดตแอปทุกครั้ง
  4. ใช้โปรไฟล์ Startup เพื่อปรับปรุงเลย์เอาต์ Dex ระบบบิลด์ใช้โปรไฟล์การเริ่มต้นเพื่อเพิ่มประสิทธิภาพคลาสและเมธอดที่มีอยู่ต่อไปโดยการปรับปรุงเลย์เอาต์ของโค้ดในไฟล์ DEX ของ APK
  5. อัปเกรดเป็น Jetpack Compose เวอร์ชันใหม่ล่าสุด

ขั้นตอนที่ 2: ดำเนินการประเมินแบบไดนามิก

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

ไปที่ส่วนคะแนนแบบไดนามิกของหน้ากระดานคะแนน แล้วทำดังนี้

  1. ตั้งค่าสภาพแวดล้อมการทดสอบด้วยอุปกรณ์จริง ลองใช้อุปกรณ์ระดับล่างเพื่อขยายปัญหาด้านประสิทธิภาพให้เห็นชัดขึ้นและสังเกตได้ง่ายขึ้น
  2. วัดเวลาเริ่มต้นจาก Launcher Cold Start แอปจากไอคอน Launcher และวัดเวลาจนกว่าแอปจะโต้ตอบได้
  3. วัดเวลาเริ่มต้นของแอปจากการแจ้งเตือน โดยมีเป้าหมายเพื่อลดเวลาเริ่มต้นของการแจ้งเตือนให้ต่ำกว่า 2 วินาที
  4. วัดประสิทธิภาพการแสดงผลโดยการเลื่อนดูหน้าจอหลักและภาพเคลื่อนไหว

เมื่อทำตามขั้นตอนเหล่านี้เสร็จแล้ว คุณจะได้รับคะแนนระหว่าง 1-100 สำหรับคะแนนแบบคงที่และแบบไดนามิก ซึ่งจะช่วยให้คุณเข้าใจประสิทธิภาพของแอปและจุดที่ควรให้ความสำคัญ

ระดับ 3: ใช้ประโยชน์จากเฟรมเวิร์กการทดสอบประสิทธิภาพในเครื่อง

เมื่อเริ่มประเมินประสิทธิภาพแบบไดนามิกแล้ว คุณอาจพบว่าการวัดประสิทธิภาพด้วยตนเองนั้นน่าเบื่อเกินไป พิจารณาการทดสอบประสิทธิภาพอัตโนมัติโดยใช้เฟรมเวิร์กการทดสอบประสิทธิภาพ เช่น Macrobenchmarks และ UiAutomator

Macrobenchmark 💚 UiAutomator

คิดว่า Macrobenchmark และ UiAutomator เป็นเครื่องมือ 2 อย่างที่ทำงานร่วมกัน โดย Macrobenchmark เป็นเครื่องมือวัด ซึ่งคล้ายกับนาฬิกาจับเวลาและตัวนับอัตราเฟรมที่ทำงานภายนอกแอปของคุณ โดยมีหน้าที่เริ่มแอป บันทึกเมตริก (เช่น เวลาเริ่มต้นหรือเฟรมที่หลุด) และหยุดแอป UiAutomator คือผู้ใช้ที่เป็นหุ่นยนต์ ไลบรารีนี้ช่วยให้คุณเขียนโค้ดเพื่อโต้ตอบกับหน้าจอของอุปกรณ์ได้ โดยจะค้นหาไอคอน แตะปุ่ม เลื่อนในรายการ และอื่นๆ ได้

วิธีเขียนการทดสอบ

เมื่อเขียนการทดสอบ คุณจะรวมโค้ด UiAutomator ไว้ในบล็อก Macrobenchmark

  1. กำหนดการทดสอบ: ใช้@MacrobenchmarkRule
  2. เริ่มวัดผล: โทรหา benchmarkRule.measureRepeated
  3. ขับเคลื่อน UI: ภายในบล็อกนั้น ให้ใช้โค้ด UiAutomator เพื่อเปิดแอป ค้นหาองค์ประกอบ UI และโต้ตอบกับองค์ประกอบเหล่านั้น

ตัวอย่างข้อมูลโค้ดลักษณะการทดสอบรายการ Compose สำหรับ Jank ในการเลื่อนมีดังนี้

  benchmarkRule.measureRepeated(

    // ...

    metrics = listOf(

        FrameTimingMetric(),

    ),

    startupMode = StartupMode.COLD,

    iterations = 10,

) {

    // 1. Launch the app's main activity

    startApp()

    // 2. Find the list using its resource ID and scroll down

    onElement { viewIdResourceName == "$packageName.my_list" }

        .fling(Direction.DOWN)

}

4. ตรวจสอบผลลัพธ์: การทดสอบแต่ละครั้งจะให้ข้อมูลที่วัดได้อย่างแม่นยำเพื่อให้คุณได้รับข้อมูลที่ดีที่สุดเกี่ยวกับประสิทธิภาพของแอป

  timeToInitialDisplayMs  min  1894.4,   median 2847.4,   max  3355.6


frameOverrunMs          P50 -3.2,  P90  6.2, P95  10.4, P99  119.5

Use Case ทั่วไป

Macrobenchmark มีเมตริกหลักหลายรายการที่พร้อมใช้งานทันที StartupTimingMetric ช่วยให้คุณวัดการเริ่มต้นแอปได้อย่างแม่นยำ FrameTimingMetric ช่วยให้คุณเข้าใจประสิทธิภาพการแสดงผลของแอปในระหว่างการทดสอบ

เรามีคำแนะนำโดยละเอียดและครบถ้วนเกี่ยวกับการใช้ Macrobenchmark และ UiAutomator พร้อมกับตัวอย่างโค้ดเพื่อให้คุณได้เรียนรู้ต่อไป

ระดับ 4: ใช้เครื่องมือวิเคราะห์การติดตาม เช่น Perfetto 

เครื่องมือวิเคราะห์การติดตาม เช่น Perfetto จะใช้เมื่อคุณต้องการดูโค้ดของแอปพลิเคชันของคุณเอง Perfetto จะบันทึกสถานะของอุปกรณ์ทั้งหมด ซึ่งรวมถึงการจัดกำหนดการของเคอร์เนล ความถี่ของ CPU กระบวนการอื่นๆ และบริการของระบบ ซึ่งต่างจากโปรแกรมแก้ไขข้อบกพร่องหรือเครื่องมือสร้างโปรไฟล์มาตรฐานที่เห็นเฉพาะกระบวนการของคุณ ทำให้คุณมีบริบทที่สมบูรณ์สำหรับปัญหาด้านประสิทธิภาพ

ดูเพลย์ลิสต์การแก้ไขข้อบกพร่องด้านประสิทธิภาพของ YouTube เพื่อดูวิดีโอคำแนะนำเกี่ยวกับการแก้ไขข้อบกพร่องด้านประสิทธิภาพโดยใช้การติดตามระบบ, Android Studio Profiler และ Perfetto

วิธีใช้ Perfetto เพื่อแก้ไขข้อบกพร่องด้านประสิทธิภาพ

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

ขั้นตอนที่ 1: บันทึกการติดตาม

คุณบันทึกการติดตามระบบได้หลายวิธี ดังนี้ 

ขั้นตอนที่ 2: โหลดการติดตาม

เมื่อมีไฟล์การย้ายข้อมูลแล้ว คุณต้องโหลดไฟล์ลงในเครื่องมือวิเคราะห์

  1. เปิด Chrome แล้วไปที่ ui.perfetto.dev
  2. ลากและวางไฟล์ .perfetto-trace (หรือ .pftrace) ลงในหน้าต่างเบราว์เซอร์โดยตรง
  3. UI จะประมวลผลไฟล์และแสดงไทม์ไลน์

ขั้นตอนที่ 3: วิเคราะห์การติดตาม

คุณสามารถใช้ UI ของ Perfetto หรือ Profiler ของ Android Studio เพื่อตรวจสอบปัญหาด้านประสิทธิภาพได้ ดูตอนของซีรีส์ ทักษะ MAD เกี่ยวกับประสิทธิภาพตอนนี้ ซึ่งวิศวกรด้านประสิทธิภาพของเรา Carmen Jackson จะมาพูดคุยเกี่ยวกับ Perfetto traceviewer

สถานการณ์สำหรับการตรวจสอบการติดตามของระบบโดยใช้ Perfetto

Perfetto เป็นเครื่องมือสำหรับผู้เชี่ยวชาญและให้ข้อมูลเกี่ยวกับทุกสิ่งที่เกิดขึ้นในอุปกรณ์ Android ขณะที่บันทึกการติดตาม ซึ่งจะเป็นประโยชน์อย่างยิ่งในกรณีที่คุณระบุสาเหตุของปัญหาของการชะลอตัวโดยใช้บันทึกมาตรฐานหรือเครื่องมือสร้างโปรไฟล์พื้นฐานไม่ได้

การแก้ไขข้อบกพร่องของ Jank (เฟรมหลุด)

หากแอปของคุณกระตุกขณะเลื่อน Perfetto จะแสดงให้เห็นอย่างชัดเจนว่าเหตุใดเฟรมหนึ่งๆ จึงไม่เป็นไปตามกำหนดเวลา

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

หากเกิดจากระบบ คุณอาจเห็นว่าเทรดหลักพร้อมที่จะทำงาน แต่ตัวกำหนดเวลาเคอร์เนลของ CPU ให้ความสำคัญกับบริการของระบบอื่น ทำให้แอปของคุณต้องรอ (การแย่งชิง CPU) ซึ่งบ่งบอกถึงสถานการณ์ที่คุณอาจต้องเพิ่มประสิทธิภาพการใช้งาน API ของแพลตฟอร์ม

การวิเคราะห์การเริ่มต้นแอปที่ช้า

การเริ่มต้นระบบมีความซับซ้อน ซึ่งเกี่ยวข้องกับการเริ่มต้นระบบ การแยกกระบวนการ และการโหลดทรัพยากร Perfetto จะแสดงภาพไทม์ไลน์นี้อย่างแม่นยำ

คุณจะดูได้ว่ากำลังรอการโทรของ Binder (การสื่อสารระหว่างกระบวนการ) หรือไม่ หาก onCreate รอการตอบกลับจากระบบเป็นเวลานาน PackageManager Perfetto จะแสดงสถานะที่ถูกบล็อกอย่างชัดเจน 

นอกจากนี้ คุณยังดูได้ว่าแอปทำงานมากกว่าที่จำเป็นในระหว่างการเริ่มต้นแอปหรือไม่ ตัวอย่างเช่น หากคุณสร้างและวางเลย์เอาต์มุมมองมากกว่าที่แอปต้องแสดง คุณจะเห็นการดำเนินการเหล่านี้ในร่องรอย

การตรวจสอบแบตเตอรี่หมดเร็วและการใช้ CPU

เนื่องจาก Perfetto มองเห็นทั้งระบบ จึงเหมาะอย่างยิ่งสำหรับการค้นหาการใช้พลังงานที่มองไม่เห็น

คุณสามารถระบุได้ว่ากระบวนการใดที่ถือ Wake Lock ซึ่งป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดสลีปภายใต้แทร็ก "สถานะอุปกรณ์" ดูข้อมูลเพิ่มเติมได้ในบล็อกโพสต์เกี่ยวกับ Wake Lock นอกจากนี้ ให้ใช้ Perfetto เพื่อดูว่างานในเบื้องหลังทำงานบ่อยเกินไปหรือทำให้ CPU ตื่นขึ้นโดยไม่จำเป็นหรือไม่

ระดับ 5: สร้างกรอบการติดตามประสิทธิภาพของคุณเอง

ระดับสุดท้ายเหมาะสำหรับแอปที่มีทีมที่มีทรัพยากรในการดูแลกรอบการติดตามประสิทธิภาพ

การสร้างเฟรมเวิร์กการติดตามประสิทธิภาพที่กำหนดเองใน Android เกี่ยวข้องกับการใช้ประโยชน์จาก API ของระบบหลายรายการเพื่อบันทึกข้อมูลตลอดวงจรของแอปพลิเคชัน ตั้งแต่เริ่มต้นจนถึงสิ้นสุด และในสถานการณ์ที่มีการโหลดสูงโดยเฉพาะ

การใช้ ApplicationStartInfo, ProfilingManager และ ApplicationExitInfo จะช่วยให้คุณสร้างระบบการวัดและส่งข้อมูลทางไกลที่มีประสิทธิภาพซึ่งรายงานเกี่ยวกับวิธีที่แอปเริ่มต้น ข้อมูลโดยละเอียดเกี่ยวกับสิ่งที่แอปทำขณะทำงาน และสาเหตุที่แอปหยุดทำงาน

ApplicationStartInfo: ติดตามวิธีที่แอปเริ่มต้น

ApplicationStartInfo พร้อมใช้งานตั้งแต่ Android 15 (API 35) โดยจะให้เมตริกโดยละเอียดเกี่ยวกับการเริ่มต้นแอปในฟิลด์ ข้อมูลดังกล่าวรวมถึงการเริ่มต้นแบบ Cold, Warm หรือ Hot Start และระยะเวลาของขั้นตอนการเริ่มต้นต่างๆ 

ซึ่งจะช่วยให้คุณพัฒนาเมตริกพื้นฐานของสตาร์ทอัปโดยใช้ข้อมูลการผลิตเพื่อเพิ่มประสิทธิภาพต่อไป ซึ่งอาจทำซ้ำในเครื่องได้ยาก คุณสามารถใช้เมตริกเหล่านี้เพื่อทำการทดสอบ A/B ในการเพิ่มประสิทธิภาพขั้นตอนการเริ่มต้นใช้งาน

เป้าหมายคือการบันทึกเมตริกการเปิดตัวอย่างถูกต้องโดยไม่ต้องใช้เครื่องมือในทุกระยะการเริ่มต้นด้วยตนเอง

คุณสามารถค้นหาข้อมูลนี้แบบเลื่อนเวลาได้หลังจากเปิดแอปพลิเคชันไปสักระยะ

ProfilingManager: Capturing why it was slow

ProfilingManager (API 35) ช่วยให้แอปของคุณทริกเกอร์การติดตามระบบในอุปกรณ์ของผู้ใช้ได้โดยใช้โปรแกรม ซึ่งมีประโยชน์อย่างยิ่งในการตรวจหาปัญหาด้านประสิทธิภาพชั่วคราวในสภาพแวดล้อมจริงที่คุณจำลองในเครื่องไม่ได้

เป้าหมายคือการบันทึกการติดตามโดยอัตโนมัติเมื่อตรวจพบเส้นทางของผู้ใช้ที่สำคัญมากซึ่งทำงานช้าหรือมีปัญหาด้านประสิทธิภาพ

คุณสามารถลงทะเบียน Listener ที่จะทริกเกอร์เมื่อตรงตามเงื่อนไขที่เฉพาะเจาะจง หรือทริกเกอร์ด้วยตนเองเมื่อตรวจพบปัญหาด้านประสิทธิภาพ เช่น การกระตุก, หน่วยความจำมากเกินไป หรือแบตเตอรี่หมดเร็ว

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

ApplicationExitInfo: ติดตามสาเหตุที่แอปหยุดทำงาน

ApplicationExitInfo (API 30) จะบอกสาเหตุที่กระบวนการก่อนหน้าสิ้นสุดลง ซึ่งเป็นสิ่งสำคัญในการค้นหาข้อขัดข้องดั้งเดิม, ANR หรือการปิดระบบเนื่องจากการใช้งานหน่วยความจำมากเกินไป (OOM) นอกจากนี้ คุณยังดูการติดตาม Tombstone แบบละเอียดได้โดยใช้ API getTraceInputStream

เป้าหมายของ API คือการทำความเข้าใจปัญหาด้านความเสถียรที่ไม่ได้ทริกเกอร์เครื่องมือรายงานข้อขัดข้องมาตรฐานของ Java (เช่น Low Memory Kills)

คุณควรทริกเกอร์ API นี้ใน การเปิดแอปครั้งถัดไป

ขั้นตอนถัดไป

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

อย่าลืมติดตาม Ask Android ในวันพรุ่งนี้

คุณได้ลดขนาดแอปด้วย R8 และเพิ่มประสิทธิภาพรันไทม์ด้วยการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์แล้ว และวัดประสิทธิภาพของแอป

ขอเชิญเข้าร่วมเซสชัน Ask Android แบบสดในวันพรุ่งนี้ ถามคำถามของคุณตอนนี้โดยใช้ #AskAndroid แล้วรับคำตอบจากผู้เชี่ยวชาญ

เขียนโดย

อ่านต่อ