คู่มือการเลื่อนระดับสำหรับเส้นทางประสิทธิภาพ
ยินดีต้อนรับสู่วันที่ 4 ของสัปดาห์ไฮไลต์ประสิทธิภาพ ตอนนี้คุณได้เรียนรู้เกี่ยวกับเครื่องมือที่ยอดเยี่ยมและแนวทางปฏิบัติแนะนำบางส่วนที่เราเพิ่งเปิดตัวไปเมื่อเร็วๆ นี้ เช่น R8 Optimizer และการเพิ่มประสิทธิภาพที่แนะนำโปรไฟล์ด้วยโปรไฟล์พื้นฐานและโปรไฟล์เริ่มต้น คุณอาจสงสัยว่าจะเริ่มต้นเส้นทางการปรับปรุงประสิทธิภาพจากตรงไหน
เราได้จัดทำคู่มือการปรับระดับประสิทธิภาพแบบทีละขั้นตอนเพื่อให้ทีมพัฒนาแอปบนอุปกรณ์เคลื่อนที่ของคุณพร้อมใช้งาน ไม่ว่าคุณจะเป็นแอปที่มีนักพัฒนาแอปเพียงคนเดียวที่ต้องการเริ่มต้นใช้งานประสิทธิภาพ หรือมีทั้งทีมที่มุ่งมั่นในการปรับปรุงประสิทธิภาพของ Android
คู่มือการปรับระดับประสิทธิภาพมี 5 ระดับ เราจะเริ่มจากระดับ 1 ซึ่งเป็นการแนะนำเครื่องมือประสิทธิภาพที่ต้องใช้ความพยายามในการนำไปใช้เพียงเล็กน้อย และจะเพิ่มขึ้นไปจนถึงระดับ 5 ซึ่งเหมาะสำหรับแอปที่มีทรัพยากรในการดูแลกรอบประสิทธิภาพที่กำหนดเอง
คุณสามารถข้ามไปยังระดับที่ตรงใจคุณมากที่สุดได้
- ระดับที่ 1: ใช้การตรวจสอบฟิลด์ที่ Play Console มีให้
- ระดับ 2: ปฏิบัติตามรายการการทำงานของคะแนนประสิทธิภาพของแอป
- ระดับ 3: ใช้ประโยชน์จากเฟรมเวิร์กการทดสอบประสิทธิภาพในเครื่อง
- ระดับ 4: ใช้เครื่องมือวิเคราะห์การติดตาม เช่น Perfetto
- ระดับ 5: สร้างกรอบการติดตามประสิทธิภาพของคุณเอง
ระดับที่ 1: ใช้การตรวจสอบภาคสนามที่ Play Console จัดให้
เราขอแนะนำให้ใช้ประโยชน์จาก Android Vitals ภายใน Play Console ก่อนเพื่อดูข้อมูลการตรวจสอบภาคสนามที่รวบรวมโดยอัตโนมัติ ซึ่งจะช่วยให้คุณได้รับข้อมูลเชิงลึกเกี่ยวกับแอปพลิเคชันโดยใช้ความพยายามเพียงเล็กน้อย
Android Vitals เป็นโครงการริเริ่มของ Google ที่จะรวบรวมและแสดงข้อมูลฟิลด์นี้ให้คุณโดยอัตโนมัติ
คำอธิบายเกี่ยวกับวิธีที่เราส่งข้อมูลนี้มีดังนี้
- รวบรวมข้อมูล: เมื่อผู้ใช้เลือกใช้ อุปกรณ์ Android จะบันทึกเหตุการณ์ด้านประสิทธิภาพและความเสถียรที่สำคัญจากแอปทั้งหมดโดยอัตโนมัติ รวมถึงแอปของคุณด้วย
- ข้อมูลรวม: Google Play จะรวบรวมและลบข้อมูลระบุตัวบุคคลออกจากข้อมูลนี้จากผู้ใช้แอปของคุณ
- ข้อมูลเชิงลึกของ 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 ของปัญหาที่เกิดขึ้นในฟิลด์ รวมถึงรับข้อมูลเชิงลึกและคำแนะนำเกี่ยวกับวิธีแก้ไขปัญหา
คุณสามารถเจาะลึก ANR ที่เฉพาะเจาะจงซึ่งเกิดขึ้นเพื่อดูสแต็กเทรซ รวมถึงข้อมูลเชิงลึกเกี่ยวกับสาเหตุที่อาจทำให้เกิดปัญหา
นอกจากนี้ โปรดดูคำแนะนำเกี่ยวกับ 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: ดำเนินการประเมินแบบคงที่
การประเมินแบบคงที่จะประเมินการกำหนดค่าของโปรเจ็กต์และการนำเครื่องมือมาใช้ ซึ่งมักเป็นวิธีที่รวดเร็วที่สุดในการปรับปรุงประสิทธิภาพ
ไปที่ส่วนคะแนนคงที่ของหน้ากระดานคะแนน แล้วทำดังนี้
- ประเมินเวอร์ชันปลั๊กอิน Android Gradle (AGP)
- ใช้การลดขนาด R8 ทีละน้อย หรือใช้ R8 ในโหมดเต็มเพื่อลดขนาดและเพิ่มประสิทธิภาพโค้ดแอป
- ใช้โปรไฟล์พื้นฐานซึ่งช่วยปรับปรุงความเร็วในการเรียกใช้โค้ดตั้งแต่การเปิดตัวครั้งแรก ซึ่งจะช่วยเพิ่มประสิทธิภาพสำหรับการติดตั้งแอปใหม่ทุกครั้งและการอัปเดตแอปทุกครั้ง
- ใช้โปรไฟล์ Startup เพื่อปรับปรุงเลย์เอาต์ Dex ระบบบิลด์ใช้โปรไฟล์การเริ่มต้นเพื่อเพิ่มประสิทธิภาพคลาสและเมธอดที่มีอยู่ต่อไปโดยการปรับปรุงเลย์เอาต์ของโค้ดในไฟล์ DEX ของ APK
- อัปเกรดเป็น Jetpack Compose เวอร์ชันใหม่ล่าสุด
ขั้นตอนที่ 2: ดำเนินการประเมินแบบไดนามิก
เมื่อใช้การปรับปรุงแบบคงที่ที่ทำได้ง่ายแล้ว ให้ใช้การประเมินแบบไดนามิกเพื่อตรวจสอบการปรับปรุงในอุปกรณ์จริง คุณสามารถทำด้วยตนเองโดยใช้อุปกรณ์จริงและนาฬิกาจับเวลาก่อน
ไปที่ส่วนคะแนนแบบไดนามิกของหน้ากระดานคะแนน แล้วทำดังนี้
- ตั้งค่าสภาพแวดล้อมการทดสอบด้วยอุปกรณ์จริง ลองใช้อุปกรณ์ระดับล่างเพื่อขยายปัญหาด้านประสิทธิภาพให้เห็นชัดขึ้นและสังเกตได้ง่ายขึ้น
- วัดเวลาเริ่มต้นจาก Launcher Cold Start แอปจากไอคอน Launcher และวัดเวลาจนกว่าแอปจะโต้ตอบได้
- วัดเวลาเริ่มต้นของแอปจากการแจ้งเตือน โดยมีเป้าหมายเพื่อลดเวลาเริ่มต้นของการแจ้งเตือนให้ต่ำกว่า 2 วินาที
- วัดประสิทธิภาพการแสดงผลโดยการเลื่อนดูหน้าจอหลักและภาพเคลื่อนไหว
เมื่อทำตามขั้นตอนเหล่านี้เสร็จแล้ว คุณจะได้รับคะแนนระหว่าง 1-100 สำหรับคะแนนแบบคงที่และแบบไดนามิก ซึ่งจะช่วยให้คุณเข้าใจประสิทธิภาพของแอปและจุดที่ควรให้ความสำคัญ
ระดับ 3: ใช้ประโยชน์จากเฟรมเวิร์กการทดสอบประสิทธิภาพในเครื่อง
เมื่อเริ่มประเมินประสิทธิภาพแบบไดนามิกแล้ว คุณอาจพบว่าการวัดประสิทธิภาพด้วยตนเองนั้นน่าเบื่อเกินไป พิจารณาการทดสอบประสิทธิภาพอัตโนมัติโดยใช้เฟรมเวิร์กการทดสอบประสิทธิภาพ เช่น Macrobenchmarks และ UiAutomator
Macrobenchmark 💚 UiAutomator
คิดว่า Macrobenchmark และ UiAutomator เป็นเครื่องมือ 2 อย่างที่ทำงานร่วมกัน โดย Macrobenchmark เป็นเครื่องมือวัด ซึ่งคล้ายกับนาฬิกาจับเวลาและตัวนับอัตราเฟรมที่ทำงานภายนอกแอปของคุณ โดยมีหน้าที่เริ่มแอป บันทึกเมตริก (เช่น เวลาเริ่มต้นหรือเฟรมที่หลุด) และหยุดแอป UiAutomator คือผู้ใช้ที่เป็นหุ่นยนต์ ไลบรารีนี้ช่วยให้คุณเขียนโค้ดเพื่อโต้ตอบกับหน้าจอของอุปกรณ์ได้ โดยจะค้นหาไอคอน แตะปุ่ม เลื่อนในรายการ และอื่นๆ ได้
วิธีเขียนการทดสอบ
เมื่อเขียนการทดสอบ คุณจะรวมโค้ด UiAutomator ไว้ในบล็อก Macrobenchmark
- กำหนดการทดสอบ: ใช้
@MacrobenchmarkRule - เริ่มวัดผล: โทรหา
benchmarkRule.measureRepeated - ขับเคลื่อน 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: บันทึกการติดตาม
คุณบันทึกการติดตามระบบได้หลายวิธี ดังนี้
- บันทึกการติดตามด้วยตนเองในอุปกรณ์จากตัวเลือกสำหรับนักพัฒนาแอปโดยตรง
- การใช้ เครื่องมือสร้างโปรไฟล์ CPU ของ Android Studio
- การใช้ UI ของ Perfetto
ขั้นตอนที่ 2: โหลดการติดตาม
เมื่อมีไฟล์การย้ายข้อมูลแล้ว คุณต้องโหลดไฟล์ลงในเครื่องมือวิเคราะห์
- เปิด Chrome แล้วไปที่ ui.perfetto.dev
- ลากและวางไฟล์
.perfetto-trace(หรือ.pftrace) ลงในหน้าต่างเบราว์เซอร์โดยตรง - 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 แล้วรับคำตอบจากผู้เชี่ยวชาญ
อ่านต่อ
-
ฮาวทู
การบังคับใช้คุณภาพทางเทคนิคของแบตเตอรี่มาถึงแล้ว: วิธีเพิ่มประสิทธิภาพกรณีการใช้งาน Wake Lock ทั่วไป
Google ทราบดีว่าผู้ใช้ Android กังวลเรื่องแบตเตอรี่หมดเร็วเป็นอย่างมาก จึงได้ดำเนินการอย่างจริงจังเพื่อช่วยให้นักพัฒนาแอปสร้างแอปที่ประหยัดพลังงานมากขึ้น
Alice Yuan • ใช้เวลาอ่าน 8 นาที
-
ฮาวทู
เราต้องการแสดงตัวอย่างฟีเจอร์ที่เปิดใช้ AI โดยใช้ทั้งโมเดลในอุปกรณ์และโมเดลในระบบคลาวด์ เพื่อเป็นแรงบันดาลใจให้คุณสร้างประสบการณ์การใช้งานที่ยอดเยี่ยมสำหรับผู้ใช้
Thomas Ezan, Ivy Knight • ใช้เวลาอ่าน 2 นาที
-
ฮาวทู
เราจะพูดถึงการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ การปรับปรุงประสิทธิภาพของ Jetpack Compose และข้อควรพิจารณาในการทำงานเบื้องหลัง
Ben Weiss, Breana Tate, Jossi Wolf • ใช้เวลาอ่าน 8 นาที
รับข่าวสาร
รับข้อมูลเชิงลึกด้านการพัฒนา Android ล่าสุดส่งตรงถึงกล่องจดหมายของคุณทุกสัปดาห์