วิธีการ

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

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

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

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

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

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


สำรวจระดับที่ตรงกับคุณมากที่สุด

ระดับที่ 1:  ใช้การตรวจสอบฟิลด์ที่ Play Console มีให้

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

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

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

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

แดชบอร์ด Android Vitals จะติดตามเมตริกมากมาย แต่มีบางเมตริกที่กำหนดให้เป็น 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 เพื่อดูสแต็กเทรซของปัญหาที่เกิดขึ้นในฟิลด์ รวมถึงรับข้อมูลเชิงลึกและคำแนะนำเกี่ยวกับวิธีแก้ไขปัญหา

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. ใช้โปรไฟล์การเริ่มต้นเพื่อปรับปรุงเลย์เอาต์ Dex ระบบบิลด์จะใช้โปรไฟล์การเริ่มต้นเพื่อเพิ่มประสิทธิภาพคลาสและเมธอดที่โปรไฟล์มีอยู่โดยการปรับปรุงเลย์เอาต์ของโค้ดในไฟล์ DEX ของ APK
  5. อัปเกรดเป็น Jetpack Compose เวอร์ชันล่าสุด

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

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

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

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

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

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

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

Macrobenchmark 💚 UiAutomator

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

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

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

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

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

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

กรณีการใช้งานที่พบบ่อย

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 หรือ Android Studio Profiler เพื่อตรวจสอบปัญหาด้านประสิทธิภาพ ดูตอนของซีรีส์ทักษะ MAD เกี่ยวกับประสิทธิภาพที่ Carmen Jackson วิศวกรด้านประสิทธิภาพของเราพูดถึงโปรแกรมดูการติดตามของ Perfetto

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

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

การแก้ไขข้อบกพร่องการกระตุก (เฟรมที่ตกหล่น)

หากแอปกระตุกขณะเลื่อน 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 Start, Warm Start หรือ Hot Start และระยะเวลาของระยะการเริ่มต้นต่างๆ

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

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

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

ProfilingManager: การบันทึกสาเหตุที่แอปทำงานช้า

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

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

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

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

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

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

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

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

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

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

ติดตามชม Ask Android ในวันพรุ่งนี้

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

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

เขียนโดย

อ่านต่อ