กูเกิลประกาศใช้วิธีอัพเดตไฟล์แอพแบบใหม่บน 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
Comments
ไฟล์ใหญ่ไม่กลัว อัพเดทผ่านไวไฟอยู่แล้ว
น่าจะเป็นประโยชน์โดยตรงกับกูเกิ่ลนะครับ
"ช่วยให้กูเกิลประหยัดทราฟฟิกได้ถึงวันละ 6 petabyte"
เห็นด้วยครับ
ครับผม
storage จะพังก่อนวัยอันควรไหมนี่
เรื่อง auto update เนี่ยจริงๆไม่ต้องรีบอัพกลางวันก็ได้
น่าจะมีจับการใช้ว่าวางนานสุดโดยไม่ใช่เลยเป็นช่วงไหน
คนธรรมดาทั่วไปก็น่าจะตี4
ทำงานเป็นกะ ก็มีช่วงหลับอยู่แล้ว
GG คิดมุมกลับ เยี่ยมเลย
มันเป็นนวัตกรรมที่ควรชื่นชมไม่ใช่เหรอ ;)
my blog
ประเด็นคือ ภาระอยู่บนเครื่องของผู้ใช้ และจะพบปัญหาว่า "พื้นที่" ไม่พอสำหรับการอัพเดท ซึ่งพบได้ในมือถือที่มีรอมประมาณ 8-16 จื๊ก
วันก่อนเพิ่งเจอ จะอัพเดทแอปขนาดแค่ 40 กว่าๆเม็ก แต่พื้นที่ว่าง 400 เม็ก กดอัพเดทไม่ได้ ขึ้นว่าพื้นที่ไม่พอ... ต้องลบๆ ให้เหลือมากกว่า 500 ถึงจะอัพเดทได้ คือมันกลายเป็นว่า มาแตกไฟล์ในเครื่องเรา เลยต้องใช้พื้นที่ว่างตอนอัพเดทมากขึ้น
คุ้นๆว่ามันหัก10%จากความจุเต็มกักไว้นะครับ พอความจุ(ที่ไม่รวมส่วนนี้)เต็มมันจะไม่ยอมให้โหลดแอพใหม่
อันนี้เพิ่งรู้เลย หาอ่านจากไหนได้มั่งครับ มีใครทราบมั่ง
Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)
แบบนี้ น่าจะเป็นการ update แบบเต็มอ่ะครับ
ผมเห็น software PC หลายๆ ตัวก็ใช้วิธีแพ็คเฉพาะไฟล์ที่เปลี่ยนแปลงระหว่าง version ไว้แล้วโหลดเฉพาะแค่นั้นมาอัพเดต แอปมือถือนี่ปกติก็น่าจะเป็นรุ่นเกือบๆ ล่าสุดกันหมด ทำแบบนั้นไม่ได้เหรอครับ???