Monzo เป็นธนาคารดิจิทัลในสหราชอาณาจักรที่มีลูกค้า 15 ล้านรายและกำลังเติบโต เมื่อแอปขยายขนาด ทีมวิศวกรรมพบว่าเวลาเริ่มต้นของแอปเป็นส่วนสำคัญที่ควรปรับปรุง แต่กังวลว่าการปรับปรุงนี้จะต้องมีการเปลี่ยนแปลงที่สำคัญในโค้ดเบส
การเปิดใช้การเพิ่มประสิทธิภาพ R8 อย่างเต็มรูปแบบช่วยให้ Monzo ลดอัตราแอปพลิเคชันไม่ตอบสนอง (ANR) ได้ถึง 35% การเปลี่ยนแปลงง่ายๆ นี้พิสูจน์ให้เห็นว่าการเพิ่มประสิทธิภาพที่ได้ผลไม่จำเป็นต้องใช้ความพยายามด้านวิศวกรรมที่ซับซ้อนเสมอไป
ปลดล็อกประสิทธิภาพที่เพิ่มขึ้นอย่างมากด้วยโหมดเต็มรูปแบบของ R8
Monzo ระบุว่าโหมดเต็มของ R8 เป็นวิธีแก้ไขที่ง่ายและคุ้มค่าที่จะลองใช้ ซึ่งก็ได้ผลจริง โดยช่วยปรับปรุงประสิทธิภาพในทุกด้าน
- ความน่าเชื่อถือในการเริ่มต้น: ปรับปรุง Cold Start ขึ้น 30%, Warm Start ขึ้น 24% และ Hot Start ขึ้น 14%
- ความเร็วในการเปิดตัว: เวลาในการเปิดตัว P50 ดีขึ้น 11% และเวลาในการเปิดตัว P90 ดีขึ้น 12%
- ประสิทธิภาพ: ขนาดแอปโดยรวมลดลง 9%
- ความเสถียร: ลด ANR ได้ 35%
การเปิดใช้การเพิ่มประสิทธิภาพด้วยการเปลี่ยนแปลงเพียงครั้งเดียว
แอป Android จำนวนมากใช้ไฟล์การกำหนดค่าเริ่มต้นที่ล้าสมัยซึ่งปิดใช้ฟังก์ชันการทำงานส่วนใหญ่ของเครื่องมือเพิ่มประสิทธิภาพ R8 การเปลี่ยนแปลงหลักที่ Monzo ทำเพื่อปลดล็อกการปรับปรุงประสิทธิภาพเหล่านี้คือการแทนที่proguard-android.txtไฟล์เริ่มต้นด้วย proguard-android-optimize.txt การเปลี่ยนแปลงนี้จะนำวิธีการ -dontoptimize ออกและช่วยให้ R8 ทำงานได้อย่างถูกต้อง
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}
หลังจากทำการเปลี่ยนแปลงนี้แล้ว คุณควรดูไฟล์การกำหนดค่า Keep ไฟล์เหล่านี้จะบอก R8 ว่าควรปล่อยให้โค้ดส่วนใดคงอยู่ตามเดิม (โดยปกติแล้วจะเป็นเพราะโค้ดส่วนนั้นถูกเรียกใช้แบบไดนามิกหรือโดยไลบรารีภายนอก) การจัดระเบียบกฎ Keep ที่ไม่จำเป็นหมายความว่า R8 จะทำสิ่งต่างๆ ได้มากขึ้น
การปรับปรุงประสิทธิภาพการเลื่อนด้วยโปรไฟล์พื้นฐาน
Monzo ได้ใช้โปรไฟล์พื้นฐานเพื่อปรับปรุงประสบการณ์ของผู้ใช้ให้ดียิ่งขึ้น โดยมุ่งเน้นที่ประสิทธิภาพการเลื่อนและการแสดงผลในฟีดหลักโดยเฉพาะ กลยุทธ์นี้ช่วยให้มั่นใจได้ว่าเส้นทางของผู้ใช้ที่พบบ่อยที่สุด ซึ่งก็คือการเปิดแอปและการเลื่อนฟีด ได้รับการเพิ่มประสิทธิภาพอย่างเต็มที่ การแสดงผลได้รับผลกระทบอย่างมาก โดยประสิทธิภาพการเลื่อน P90 เร็วขึ้น 71% และประสิทธิภาพการเลื่อน P95 ดีขึ้น 87% ตอนนี้การเลื่อนในแอปจึงราบรื่นกว่าเดิม
Monzo ได้รวมการปรับปรุงนี้ไว้ในกระบวนการเผยแพร่เพื่อรักษาการปรับปรุงเหล่านี้ไว้ตลอดเวลา "เราจะทริกเกอร์การสร้างโปรไฟล์พื้นฐานทุกวันทำการ (ก่อนที่จะเรียกใช้บิลด์รายคืน) และจะคอมมิตการเปลี่ยนแปลงล่าสุดเมื่อเสร็จสมบูรณ์" Neumayer อธิบาย
ติดตามข่าวสารล่าสุดเกี่ยวกับ Modern Android Development
ประสบการณ์ของ Monzo แสดงให้เห็นถึงสิ่งที่เป็นไปได้เมื่อคุณอัปเดตคำแนะนำเกี่ยวกับเครื่องมือสร้าง Android อยู่เสมอ แม้ว่าแอปเดิมมักจะมีปัญหาในการใช้งานการสะท้อนที่ซับซ้อน แต่ Monzo พบว่าการเปลี่ยนผ่านเป็นไปอย่างราบรื่นด้วยการจัดทำเอกสารกฎ Keep อย่างถูกต้อง "เราจะเพิ่มความคิดเห็นเพื่ออธิบายเหตุผลที่ต้องมีกฎการเก็บรักษาเสมอ เพื่อให้เราทราบว่าเมื่อใดที่ควรนำกฎออก" Neumayer กล่าว
คำแนะนำของ Neumayer สำหรับทีมอื่นๆ ตรวจสอบแนวทางปฏิบัติของคุณเทียบกับมาตรฐานปัจจุบันเป็นประจำ: "ดูคำแนะนำล่าสุดจาก Google เกี่ยวกับประสิทธิภาพของแอป และตรวจสอบว่าคุณปฏิบัติตามคำแนะนำล่าสุดทั้งหมดหรือไม่"
หากต้องการเริ่มต้นใช้งานและดูข้อมูลเพิ่มเติมเกี่ยวกับ R8 โปรดไปที่ https://d.android.com/r8
อ่านต่อ
-
กรณีศึกษา
Karrot เป็นแอปตลาดกลางแบบเพียร์ทูเพียร์ที่ขับเคลื่อนโดยชุมชนในพื้นที่ ซึ่งช่วยให้ผู้ใช้ซื้อ ขาย และแลกเปลี่ยนไอเทมกับผู้ใช้รายอื่นๆ ที่ได้รับการยืนยันแล้วได้ นับตั้งแต่เปิดตัวในเกาหลีใต้เมื่อปี 2015 แพลตฟอร์มนี้ได้ขยายไปยังตลาดทั่วโลกและมีผู้ใช้ที่ลงทะเบียนกว่า 43 ล้านคน
Thomas Ezan, Tracy Agyemang • ใช้เวลาอ่าน 2 นาที
-
กรณีศึกษา
ในโลกโซเชียลมีเดียที่เปลี่ยนแปลงอยู่ตลอดเวลา การดึงดูดความสนใจของผู้ใช้เป็นสิ่งที่เกิดขึ้นได้เร็วมาก แอปของ Meta (Facebook และ Instagram) เป็นหนึ่งในแพลตฟอร์มโซเชียลที่ใหญ่ที่สุดในโลกและให้บริการแก่ผู้ใช้หลายพันล้านคนทั่วโลก
Mayuri Khinvasara Khabya, Tracy Agyemang • ใช้เวลาอ่าน 4 นาที
-
กรณีศึกษา
การสร้างแอป Android สำหรับอุปกรณ์ที่สวมใส่ได้หมายความว่างานที่แท้จริงจะเริ่มขึ้นเมื่อหน้าจอปิด
Breana Tate, Tracy Agyemang • ใช้เวลาอ่าน 4 นาที
รับข่าวสาร
รับข้อมูลเชิงลึกด้านการพัฒนาแอป Android ล่าสุดส่งตรงถึงกล่องจดหมายของคุณทุกสัปดาห์