การเพิ่มประสิทธิภาพโค้ด DEX เป็นข้อมูลเชิงลึกของ Android Vitals ที่ช่วยให้คุณตรวจสอบและ ปรับปรุงคุณภาพ ขนาด และประสิทธิภาพการคอมไพล์ของแอปได้ การเพิ่มประสิทธิภาพและ การปกปิดโค้ดโดยใช้ R8 หรือเครื่องมือทางเลือก (เช่น เครื่องมือเพิ่มประสิทธิภาพที่เข้ากันได้กับ ProGuard หรือโปรแกรมประมวลผลภายหลัง DEX รอง) จะช่วยลดขนาด DEX ของ แอป ปรับปรุงประสิทธิภาพรันไทม์ และลดร่องรอยการใช้หน่วยความจำ
ไฟล์ DEX หรือ Dalvik Executable มีโค้ดที่คอมไพล์แล้วซึ่งใช้
ในการเรียกใช้แอป โดยทั่วไปจะรวมโค้ด Java และ Kotlin ซึ่งแตกต่างจาก
โค้ด C++ ที่คอมไพล์แล้วหรือไฟล์ .so
รายงาน Android Vitals จะแสดงเมตริกการเพิ่มประสิทธิภาพโค้ด DEX สำหรับแอปและเกมทั้งหมด แต่จะบังคับใช้เกณฑ์เฉพาะสำหรับแอปและเกมที่มีขนาดตรงตามข้อกำหนดที่เฉพาะเจาะจงเท่านั้น
ตรวจหาปัญหา
Android Vitals จะแจ้งเตือนเมื่อระดับการเพิ่มประสิทธิภาพโค้ด DEX ของแอปต่ำ ซึ่งรวมถึงการปรับให้ยากต่อการอ่าน (Obfuscation) การลดขนาด และการเพิ่มประสิทธิภาพสำหรับแอปและเกม ที่ใช้ R8 สำหรับแอปที่ไม่ได้ใช้ R8 นั้น Android Vitals จะพยายามตรวจสอบอัตราการเพิ่มประสิทธิภาพ การลดขนาด และการปกปิดโค้ด แต่จะกลับไปใช้ฮิวริสติกการปกปิดโค้ดเป็นพร็อกซีในกรณีที่จำเป็น
ตรวจสอบสถานะการเพิ่มประสิทธิภาพ
Android Vitals ช่วยปรับปรุงประสิทธิภาพของแอปได้โดยการแจ้งเตือนคุณผ่าน Play Console เมื่อแอปไม่เป็นไปตามเปอร์เซ็นต์ขั้นต่ำที่กำหนด สำหรับการเพิ่มประสิทธิภาพโค้ด โปรดดูคำจำกัดความโดยละเอียดของการลดขนาด การเพิ่มประสิทธิภาพ และ การปกปิดโค้ดที่หัวข้อใช้เครื่องมือวิเคราะห์การกำหนดค่า R8
สำหรับแอปที่สร้างด้วยแพตช์ล่าสุดของ AGP เวอร์ชัน 8.10 ขึ้นไป ระบบจะดึงเปอร์เซ็นต์เหล่านี้จากไฟล์ r8.json ที่รวมไว้
สำหรับ AGP เวอร์ชันที่ต่ำกว่าหรือในกรณีที่ไม่มีไฟล์ r8.json ระบบจะคำนวณเปอร์เซ็นต์จากไฟล์ mapping.txt หากมี หรือใช้ฮิวริสติก DEX หากไม่มีไฟล์การแมป
สำหรับแอปที่เพิ่มประสิทธิภาพด้วยเครื่องมือเพิ่มประสิทธิภาพโค้ดทางเลือก Android Vitals จะทำการวิเคราะห์เพื่อประมาณเปอร์เซ็นต์ของคลาส เมธอด และฟิลด์ ที่ได้รับการปกปิดใน App Bundle
ขนาด DEX ทั้งหมดขั้นต่ำ
แม้ว่า Android Vitals จะคำนวณเมตริกการเพิ่มประสิทธิภาพโค้ดสำหรับแอปทั้งหมด แต่คุณจะได้รับการแจ้งเตือนก็ต่อเมื่อ App Bundle มีขนาด DEX ทั้งหมดตรงตามข้อกำหนดต่อไปนี้ เท่านั้น
- แอป: Bundle มีโค้ด DEX อย่างน้อย 10 MB ซึ่งวัดเป็น ขนาดที่ไม่ได้บีบอัด
- เกม: Bundle มีโค้ด DEX อย่างน้อย 50 MB ซึ่งวัดเป็น ขนาดที่ไม่ได้บีบอัด
Android Vitals จะแสดงขนาด DEX ของแอป แต่คุณก็วัดขนาดนี้ได้ ในเครื่องโดยใช้บรรทัดคำสั่ง
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
หากต้องการตรวจสอบข้อมูลเมตาที่แน่นอนซึ่ง Android Vitals ใช้ในการคำนวณคะแนน ให้
แตกไฟล์ r8.json จาก App Bundle ดังนี้
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json