Google Play เริ่มใช้วิธีอัพเดตแอพแบบใหม่ ลดขนาดไฟล์อัพเดตลงได้ 65-90%

by mk
7 December 2016 - 14:17

กูเกิลประกาศใช้วิธีอัพเดตไฟล์แอพแบบใหม่บน Google Play ส่งผลให้ขนาดไฟล์อัพเดตแอพ ลดลงเฉลี่ยถึง 65-90% จากไฟล์แอพตัวเต็ม (กรณีดาวน์โหลดใหม่) ช่วยให้กูเกิลประหยัดทราฟฟิกได้ถึงวันละ 6 petabyte

ไฟล์ APK ของ Android เป็นไฟล์ ZIP ที่ถูกบีบอัดเพื่อให้ขนาดเล็กตอนดาวน์โหลด ปัญหาของไฟล์ที่ถูกบีบอัดคือดูความเปลี่ยนแปลง (diff) ได้ยาก เพราะต่อให้เปลี่ยนไส้ในเพียงตัวอักษรเดียว แต่ไฟล์ที่บีบอัดแล้วจะมีข้อมูลบิตแตกต่างกันมาก ส่งผลให้ที่ผ่านมา กูเกิลต้องให้เราดาวน์โหลดไฟล์ APK ใหม่ทั้งก้อนเมื่อแอพมีอัพเดต แม้ว่าแอพจะอัพเดตเพียงนิดเดียวก็ตาม

เทคนิคใหม่ที่กูเกิลนำมาใช้งาน เรียกว่า File-by-File patching จะไม่ส่งไฟล์ที่ถูกบีบอัดผ่านเครือข่ายอีกต่อไป แต่จะใช้วิธีแตกไฟล์ APK ที่อยู่ในเครื่องเราออกมา แล้วหาความแตกต่างกับไฟล์ที่อยู่บนเซิร์ฟเวอร์ของกูเกิล และส่งเฉพาะส่วนต่าง (delta) ข้ามเครือข่ายมาแพตช์ให้กับไฟล์เดิมบนเครื่อง จากนั้นบีบไฟล์กลับอีกครั้งให้เป็น APK ดังเดิม การส่งเฉพาะส่วนต่างมีผลให้ขนาดของอัพเดตเล็กลงมาก

ความยากอยู่ที่การบีบไฟล์กลับ เพราะเงื่อนไขคือไฟล์ APK บนเครื่องของเรา ที่ถูกแตกไฟล์ แพตช์อัพเดต และบีบไฟล์กลับแล้ว จะต้องเหมือนกับไฟล์ APK เวอร์ชันใหม่ล่าสุดบนเซิร์ฟเวอร์ของกูเกิลทุกประการ ซึ่งมีปัจจัยหลายตัวที่กูเกิลต้องพิจารณา เพื่อให้บีบไฟล์แล้วออกมาได้เหมือนกัน

ข้อเสียของวิธี File-by-File patching คือภาระการประมวลผลเรื่องบีบอัดข้อมูลจะย้ายมาอยู่บนเครื่องของผู้ใช้ ซึ่งอาจกระทบต่อประสิทธิภาพระหว่างการใช้งานได้ ตอนนี้กูเกิลจึงใช้วิธีอัพเดตแบบใหม่เฉพาะ autoupdate ที่ทำงานอยู่เบื้องหลัง ขณะที่เครื่องเสียบปลั๊กทิ้งไว้และไม่ถูกใช้งานเท่านั้น (ถ้าสั่ง manual update เอง จะไม่ได้ใช้วิธีอัพเดตแบบใหม่นี้)

สถิติที่กูเกิลนำมาให้ดู แอพอย่าง Netflix ที่ไฟล์ขนาดเต็ม 16.2MB ใช้วิธีอัพเดตแบบเดิม (บีบอัดทั้งก้อน) เหลือขนาด 7.7MB แต่ถ้าใช้วิธีอัพเดตแบบใหม่ จะมีขนาดไฟล์ที่ต้องอัพเดตแค่ 1.2MB เท่านั้น

กระบวนการทั้งหมดจะเป็นไปโดยอัตโนมัติบน Google Play Store โดยที่นักพัฒนาแอพไม่ต้องทำอะไรเป็นพิเศษครับ

ที่มา - Android Developers Blog

Blognone Jobs Premium