คู่มือการเลื่อนระดับเพื่อการเดินทางด้านประสิทธิภาพ
ยินดีต้อนรับสู่วันที่ 4 ของสัปดาห์แห่งการเน้นย้ำด้านประสิทธิภาพ ตอนนี้คุณได้เรียนรู้เกี่ยวกับเครื่องมือที่ยอดเยี่ยมและแนวทางปฏิบัติแนะนำบางอย่างที่เราเพิ่งเปิดตัวไปเมื่อเร็วๆ นี้ เช่น เครื่องมือเพิ่มประสิทธิภาพ R8 และการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ด้วยโปรไฟล์พื้นฐาน และโปรไฟล์การเริ่มต้น คุณอาจสงสัยว่าจะเริ่มเส้นทางการปรับปรุงประสิทธิภาพจากตรงไหน
เราได้จัดทำคู่มือการเลื่อนระดับประสิทธิภาพแบบทีละขั้นตอนเพื่อช่วยทีมพัฒนาแอปบนอุปกรณ์เคลื่อนที่ ไม่ว่าคุณจะเป็นนักพัฒนาแอปคนเดียวที่ต้องการเริ่มต้นใช้งานด้านประสิทธิภาพ หรือมีทั้งทีมที่ทุ่มเทให้กับการปรับปรุงประสิทธิภาพของ Android
คู่มือการเลื่อนระดับประสิทธิภาพมี 5 ระดับ เราจะเริ่มจากระดับที่ 1 ซึ่งแนะนำเครื่องมือด้านประสิทธิภาพที่ใช้ความพยายามในการนำไปใช้เพียงเล็กน้อย และจะไปจนถึงระดับที่ 5 ซึ่งเหมาะสำหรับแอปที่มีทรัพยากรในการดูแลเฟรมเวิร์กด้านประสิทธิภาพที่กำหนดเอง
สำรวจระดับที่ตรงกับคุณมากที่สุด
ระดับที่ 1: ใช้การตรวจสอบฟิลด์ที่ Play Console มีให้
เราขอแนะนำให้ใช้ประโยชน์จาก Android Vitals ภายใน Play Console ก่อนเพื่อดูข้อมูลการตรวจสอบฟิลด์ที่รวบรวมโดยอัตโนมัติ ซึ่งจะให้ข้อมูลเชิงลึกเกี่ยวกับแอปพลิเคชันของคุณโดยใช้ความพยายามเพียงเล็กน้อย
Android Vitals เป็นความคิดริเริ่มของ Google ในการรวบรวมและแสดงข้อมูลฟิลด์นี้ให้คุณโดยอัตโนมัติ
คำอธิบายเกี่ยวกับวิธีที่เราแสดงข้อมูลนี้มีดังนี้
- รวบรวมข้อมูล: เมื่อผู้ใช้เลือกเข้าร่วม อุปกรณ์ Android ของผู้ใช้จะบันทึกเหตุการณ์ด้านประสิทธิภาพและความเสถียรที่สำคัญจากแอปทั้งหมด รวมถึงแอปของคุณโดยอัตโนมัติ
- รวบรวมข้อมูล: Google Play จะรวบรวมและปกปิดข้อมูลนี้จากผู้ใช้แอปของคุณ
- แสดงข้อมูลเชิงลึก: ระบบจะแสดงข้อมูลในแดชบอร์ด 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 เพื่อดูสแต็กเทรซของปัญหาที่เกิดขึ้นในฟิลด์ รวมถึงรับข้อมูลเชิงลึกและคำแนะนำเกี่ยวกับวิธีแก้ไขปัญหา
คุณสามารถเจาะลึก 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 ในโหมดเต็มรูปแบบ เพื่อลดขนาดและเพิ่มประสิทธิภาพโค้ดแอป
- ใช้โปรไฟล์พื้นฐานซึ่งช่วยปรับปรุงความเร็วในการดำเนินการโค้ดตั้งแต่การเปิดตัวครั้งแรก โดยจะช่วยเพิ่มประสิทธิภาพสำหรับการติดตั้งแอปใหม่ทุกครั้งและการอัปเดตแอปทุกครั้ง
- ใช้โปรไฟล์การเริ่มต้นเพื่อปรับปรุงเลย์เอาต์ Dex ระบบบิลด์จะใช้โปรไฟล์การเริ่มต้นเพื่อเพิ่มประสิทธิภาพคลาสและเมธอดที่โปรไฟล์มีอยู่โดยการปรับปรุงเลย์เอาต์ของโค้ดในไฟล์ DEX ของ APK
- อัปเกรดเป็น Jetpack Compose เวอร์ชันล่าสุด
ขั้นตอนที่ 2: ทำการประเมินแบบไดนามิก
เมื่อใช้การปรับปรุงแบบคงที่ที่ทำได้ง่ายแล้ว ให้ใช้การประเมินแบบไดนามิกเพื่อตรวจสอบการปรับปรุงในอุปกรณ์จริง คุณสามารถดำเนินการนี้ด้วยตนเองโดยใช้อุปกรณ์จริงและนาฬิกาจับเวลา
ไปที่ส่วนคะแนนแบบไดนามิกของหน้ากระดานคะแนน แล้วทำดังนี้
- ตั้งค่าสภาพแวดล้อมการทดสอบด้วยอุปกรณ์จริง ลองใช้อุปกรณ์ระดับล่างเพื่อเน้นปัญหาด้านประสิทธิภาพ ซึ่งจะทำให้สังเกตเห็นปัญหาได้ง่ายขึ้น
- วัดเวลาเริ่มต้นจาก Launcher Cold Start แอปจากไอคอน Launcher และวัดเวลาจนกว่าแอปจะโต้ตอบได้
- วัดเวลาเริ่มต้นของแอปจากการแจ้งเตือน โดยมีเป้าหมายเพื่อลดเวลาเริ่มต้นของการแจ้งเตือนให้ต่ำกว่า 2-3 วินาที
- วัดประสิทธิภาพการแสดงผลโดยการเลื่อนดูหน้าจอหลักและภาพเคลื่อนไหว
เมื่อทำตามขั้นตอนเหล่านี้เสร็จแล้ว คุณจะได้รับคะแนนระหว่าง 1 ถึง 100 สำหรับคะแนนแบบคงที่และแบบไดนามิก ซึ่งจะช่วยให้คุณเข้าใจประสิทธิภาพของแอปและจุดที่ควรให้ความสำคัญ
ระดับที่ 3: ใช้ประโยชน์จากเฟรมเวิร์กการทดสอบประสิทธิภาพในเครื่อง
เมื่อเริ่มประเมินประสิทธิภาพแบบไดนามิกแล้ว คุณอาจพบว่าการวัดประสิทธิภาพด้วยตนเองนั้นน่าเบื่อเกินไป ลองใช้การทดสอบประสิทธิภาพโดยอัตโนมัติโดยใช้เฟรมเวิร์กการทดสอบประสิทธิภาพ เช่น Macrobenchmark และ UiAutomator
Macrobenchmark 💚 UiAutomator
คิดว่า Macrobenchmark และ UiAutomator เป็นเครื่องมือ 2 อย่างที่ทำงานร่วมกัน โดย Macrobenchmark เป็นเครื่องมือวัด ซึ่งเหมือนกับนาฬิกาจับเวลาและตัวนับอัตราเฟรมที่ทำงานนอกแอป มีหน้าที่เริ่มแอป บันทึกเมตริก (เช่น เวลาเริ่มต้นหรือเฟรมที่ตกหล่น) และหยุดแอป ส่วน UiAutomator เป็นผู้ใช้ที่เป็นหุ่นยนต์ ไลบรารีนี้ช่วยให้คุณเขียนโค้ดเพื่อโต้ตอบกับหน้าจอของอุปกรณ์ได้ โดยสามารถค้นหาไอคอน แตะปุ่ม เลื่อนในรายการ และอื่นๆ
วิธีเขียนการทดสอบ
เมื่อเขียนการทดสอบ คุณจะใส่โค้ด UiAutomator ไว้ในบล็อก Macrobenchmark
- กำหนดการทดสอบ: ใช้
@MacrobenchmarkRule - เริ่มวัด: เรียก
benchmarkRule.measureRepeated - ควบคุม 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: บันทึกการติดตาม
คุณสามารถบันทึกการติดตามของระบบได้หลายวิธี ดังนี้
- บันทึกการติดตามด้วยตนเองในอุปกรณ์ โดยตรงจากตัวเลือกสำหรับนักพัฒนาแอป
- ใช้ เครื่องมือสร้างโปรไฟล์ CPU ของ Android Studio
- ใช้ UI ของ Perfetto
ขั้นตอนที่ 2: โหลดการติดตาม
เมื่อมีไฟล์การติดตามแล้ว คุณต้องโหลดไฟล์ลงในเครื่องมือวิเคราะห์
- เปิด Chrome แล้วไปที่ ui.perfetto.dev
- ลากและวางไฟล์
.perfetto-trace(หรือ.pftrace) ลงในหน้าต่างเบราว์เซอร์โดยตรง - 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 แล้วรับคำตอบจากผู้เชี่ยวชาญ
อ่านต่อ
-
วิธีการ
แม้ว่าประสิทธิภาพของแอปมักจะเทียบเท่ากับ UI ที่ราบรื่นและเวลาเริ่มต้นที่รวดเร็ว แต่หน่วยความจำก็เป็นรากฐานที่เงียบซึ่งเมตริกที่มองเห็นได้เหล่านี้สร้างขึ้น เราเห็นการเปลี่ยนแปลงที่หน่วยความจำของอุปกรณ์มีความสำคัญมากกว่าที่เคย
Alice Yuan, Ajesh Pai, Fung Lam • ใช้เวลาอ่าน 10 นาที
-
วิธีการ
Google ตระหนักดีว่าแบตเตอรี่หมดเร็วเป็นสิ่งที่ผู้ใช้ Android ให้ความสำคัญเป็นอันดับแรก จึงได้ดำเนินการอย่างจริงจังเพื่อช่วยนักพัฒนาแอปสร้างแอปที่มีประสิทธิภาพด้านพลังงานมากขึ้น
Alice Yuan • ใช้เวลาอ่าน 8 นาที
-
วิธีการ
วันนี้ เรายินดีที่จะประกาศข้อมูลเข้าสู่ระบบอีเมลที่ยืนยันแล้วรายการใหม่ซึ่งออกโดย Google โดยตอนนี้นักพัฒนาแอปสามารถดึงข้อมูลเข้าสู่ระบบนี้ได้โดยตรงจาก Digital Credential API ของ Credential Manager ใน Android
Niharika Arora, Jean-Pierre Pralle • ใช้เวลาอ่าน 3 นาที
รับข่าวสาร
รับข้อมูลเชิงลึกล่าสุดเกี่ยวกับการพัฒนาแอป Android ส่งตรงถึงกล่องจดหมายของคุณ ทุกสัปดาห์