Tags:
Node Thumbnail

กูเกิลประกาศใช้วิธีอัพเดตไฟล์แอพแบบใหม่บน 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 เท่านั้น

alt="upic.me"

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

ที่มา - Android Developers Blog

Get latest news from Blognone

Comments

By: K_AViar
Windows PhoneUbuntuWindowsIn Love
on 7 December 2016 - 21:35 #957398

ไฟล์ใหญ่ไม่กลัว อัพเดทผ่านไวไฟอยู่แล้ว

By: Catzilla
Android
on 7 December 2016 - 21:51 #957403 Reply to:957398

น่าจะเป็นประโยชน์โดยตรงกับกูเกิ่ลนะครับ

"ช่วยให้กูเกิลประหยัดทราฟฟิกได้ถึงวันละ 6 petabyte"

By: photo-life
AndroidUbuntuWindows
on 7 December 2016 - 23:31 #957423 Reply to:957403

เห็นด้วยครับ

By: K_AViar
Windows PhoneUbuntuWindowsIn Love
on 8 December 2016 - 08:00 #957448 Reply to:957403

ครับผม

By: big50000
AndroidSUSEUbuntu
on 7 December 2016 - 21:50 #957402
big50000's picture

storage จะพังก่อนวัยอันควรไหมนี่

By: neonicus
Android
on 7 December 2016 - 22:04 #957406

เรื่อง auto update เนี่ยจริงๆไม่ต้องรีบอัพกลางวันก็ได้
น่าจะมีจับการใช้ว่าวางนานสุดโดยไม่ใช่เลยเป็นช่วงไหน

คนธรรมดาทั่วไปก็น่าจะตี4
ทำงานเป็นกะ ก็มีช่วงหลับอยู่แล้ว

By: lingjaidee
ContributoriPhoneAndroid
on 7 December 2016 - 22:47 #957417
lingjaidee's picture

GG คิดมุมกลับ เยี่ยมเลย
มันเป็นนวัตกรรมที่ควรชื่นชมไม่ใช่เหรอ ;)


my blog

By: horakung
iPhoneAndroidWindows
on 7 December 2016 - 23:37 #957424
horakung's picture

ประเด็นคือ ภาระอยู่บนเครื่องของผู้ใช้ และจะพบปัญหาว่า "พื้นที่" ไม่พอสำหรับการอัพเดท ซึ่งพบได้ในมือถือที่มีรอมประมาณ 8-16 จื๊ก
วันก่อนเพิ่งเจอ จะอัพเดทแอปขนาดแค่ 40 กว่าๆเม็ก แต่พื้นที่ว่าง 400 เม็ก กดอัพเดทไม่ได้ ขึ้นว่าพื้นที่ไม่พอ... ต้องลบๆ ให้เหลือมากกว่า 500 ถึงจะอัพเดทได้ คือมันกลายเป็นว่า มาแตกไฟล์ในเครื่องเรา เลยต้องใช้พื้นที่ว่างตอนอัพเดทมากขึ้น

By: sonexo_tic
Blackberry
on 8 December 2016 - 00:36 #957429 Reply to:957424

คุ้นๆว่ามันหัก10%จากความจุเต็มกักไว้นะครับ พอความจุ(ที่ไม่รวมส่วนนี้)เต็มมันจะไม่ยอมให้โหลดแอพใหม่

By: time3957
iPhoneWindows PhoneAndroidWindows
on 8 December 2016 - 13:49 #957548 Reply to:957429

อันนี้เพิ่งรู้เลย หาอ่านจากไหนได้มั่งครับ มีใครทราบมั่ง

By: McKay
ContributorAndroidWindowsIn Love
on 8 December 2016 - 07:21 #957443 Reply to:957424
McKay's picture

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


Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)

By: loptar on 8 December 2016 - 12:17 #957523 Reply to:957424
loptar's picture

แบบนี้ น่าจะเป็นการ update แบบเต็มอ่ะครับ

By: hisoft
ContributorWindows PhoneWindows
on 8 December 2016 - 13:16 #957541
hisoft's picture

ผมเห็น software PC หลายๆ ตัวก็ใช้วิธีแพ็คเฉพาะไฟล์ที่เปลี่ยนแปลงระหว่าง version ไว้แล้วโหลดเฉพาะแค่นั้นมาอัพเดต แอปมือถือนี่ปกติก็น่าจะเป็นรุ่นเกือบๆ ล่าสุดกันหมด ทำแบบนั้นไม่ได้เหรอครับ???