คุณควรเพิ่มประสิทธิภาพแอปให้มีขนาดไฟล์เล็กและทำงานได้เร็วที่สุดเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีที่สุด เครื่องมือเพิ่มประสิทธิภาพแอปของเราชื่อ R8 จะปรับปรุงแอปของคุณโดยนำโค้ดและทรัพยากรที่ไม่ได้ใช้งานออก เขียนโค้ดใหม่เพื่อเพิ่มประสิทธิภาพรันไทม์ และอื่นๆ การดำเนินการนี้มีผลต่อผู้ใช้ดังนี้
- เริ่มเล่นวิดีโอได้เร็วขึ้น
- การกระตุกน้อยลง
- ANR น้อยลง
หากต้องการเปิดใช้การเพิ่มประสิทธิภาพแอป ให้ตั้งค่า isMinifyEnabled = true
(สําหรับการเพิ่มประสิทธิภาพโค้ด) และ isShrinkResources = true
(สําหรับการเพิ่มประสิทธิภาพทรัพยากร) ในสคริปต์การสร้างระดับแอปของรุ่นการสร้าง ตามที่แสดงในโค้ดต่อไปนี้ เราขอแนะนำให้คุณเปิดใช้การตั้งค่าทั้ง 2 อย่างเสมอ นอกจากนี้ เราขอแนะนำให้เปิดใช้การเพิ่มประสิทธิภาพแอปเฉพาะในเวอร์ชันสุดท้ายของแอปที่คุณทดสอบก่อนเผยแพร่เท่านั้น ซึ่งโดยปกติจะเป็นบิลด์รุ่นที่ใช้งานจริง เนื่องจากการเพิ่มประสิทธิภาพจะเพิ่มเวลาในการสร้างโปรเจ็กต์และอาจทำให้การแก้ไขข้อบกพร่องทำได้ยากขึ้นเนื่องจากวิธีแก้ไขโค้ด
Kotlin
android { buildTypes { release { // Enables code-related app optimization. isMinifyEnabled = true // Enables resource shrinking. isShrinkResources = true proguardFiles( // Default file with automatically generated optimization rules. getDefaultProguardFile("proguard-android-optimize.txt"), ... ) ... } } ... }
Groovy
android { buildTypes { release { // Enables code-related app optimization. minifyEnabled true // Enables resource shrinking. shrinkResources true // Default file with automatically generated optimization rules. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') ... } } }
โปรดทราบว่าการเปิดใช้การเพิ่มประสิทธิภาพแอปจะทำให้สแต็กเทรซเข้าใจได้ยาก โดยเฉพาะอย่างยิ่งหาก R8 เปลี่ยนชื่อคลาสหรือชื่อเมธอด หากต้องการดูสแต็กเทรซที่ตรงกับซอร์สโค้ดของคุณอย่างถูกต้อง โปรดดูส่วนกู้คืนสแต็กเทรซเดิม
หากเปิดใช้ R8 คุณควรสร้างโปรไฟล์การเริ่มต้นด้วยเพื่อให้ประสิทธิภาพการเริ่มต้นดีขึ้น
หากเปิดใช้การเพิ่มประสิทธิภาพแอปและเกิดข้อผิดพลาด โปรดดูกลยุทธ์ในการแก้ไขข้อผิดพลาดต่อไปนี้
- เพิ่มกฎการเก็บเพื่อไม่ให้ระบบแตะต้องโค้ดบางรายการ
- ใช้การเพิ่มประสิทธิภาพทีละน้อย
- อัปเดตโค้ดเพื่อใช้ไลบรารีที่เหมาะกับการเพิ่มประสิทธิภาพมากกว่า