Monzo เป็นธนาคารดิจิทัลในสหราชอาณาจักรที่มีลูกค้า 15 ล้านรายและมีแนวโน้มเพิ่มขึ้น เมื่อแอปขยายขนาด ทีมวิศวกรรมพบว่าเวลาเริ่มต้นของแอปเป็นส่วนสำคัญที่ต้องปรับปรุง แต่กังวลว่าการปรับปรุงนี้จะต้องมีการเปลี่ยนแปลงโค้ดเบสอย่างมาก
Monzo เปิดใช้การเพิ่มประสิทธิภาพ R8 อย่างเต็มรูปแบบ จึงลดอัตราการเกิดข้อผิดพลาด "แอปพลิเคชันไม่ตอบสนอง" (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 อธิบาย
ติดตามการพัฒนา Android สมัยใหม่
ประสบการณ์ของ Monzo แสดงให้เห็นถึงสิ่งที่เป็นไปได้เมื่อคุณติดตามคำแนะนำเกี่ยวกับเครื่องมือสร้าง Android อยู่เสมอ แม้ว่าแอปเก่ามักจะมีปัญหาในการใช้งานการสะท้อนที่ซับซ้อน แต่ Monzo พบว่าการเปลี่ยนผ่านเป็นเรื่องง่ายด้วยการจัดทำเอกสารกฎ Keep อย่างเหมาะสม "เราจะเพิ่มความคิดเห็นเพื่ออธิบายเหตุผลที่ใช้กฎ 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 ล่าสุดส่งตรงถึงกล่องจดหมายของคุณ ทุกสัปดาห์