จากบทความเรื่อง
Yelp Android App Went On A Diet
ซึ่งทีมพัฒนา Android app ของ Yelp ทำการอธิบาย
วิธีการลดขนาดของไฟล์ APK (Android Application Package)
มันมีความสำคัญมาก ๆ สำหรับ Android developer ทุกคน
จึงทำการแปลและสรุปไว้อ่านนิดหน่อย
คำถามที่น่าสนใจคือ เราใส่ใจเรื่องนี้มากน้อยกันเพียงใด ?
ในการพัฒนา Mobile app นั้น มีหลายสิ่งอย่างที่ต้องใส่ใจ
เช่น battery, network, storage เป็นต้น
ซึ่งสิ่งต่าง ๆ เหล่านี้มันคือ
การใส่ใจเรื่อง resource ของผู้ใช้งานนั่นเอง
หนึ่งในเรื่องที่สำคัญคือ ขนาดของไฟล์ APK
ลองคิดดูสิว่า
ถ้าไฟล์ APK มีขนาดใหญ่ต้องใช้เวลาในการ download นาน
ยิ่งถ้าความเร็วของระบบ network ที่ใช้งานช้าอีกล่ะ
ไหนจะเป็นเรื่องขนาดของ storage บนเครื่องผู้ใช้งานอีก
ดังนั้นมาดูกันว่าทางทีมพัฒนาของ Yelp ทำอย่างไรกันบ้าง ?
อย่างแรกมีระบบแจ้งเกี่ยวกับขนาดของไฟล์ APK ที่ release ออกมาตลอด
ซึ่งทำให้เห็นว่าแนวโน้มของขนาดไฟล์เป็นอย่างไร
แสดงดังรูป
คำอธิบาย
ยิ่งทำการเพิ่ม feature ใหม่ ๆ เข้าในใน App
ขนาดของไฟล์ APK ก็ใหญ่ขึ้นเท่านั้น !!
แต่ถ้ามีแนวโน้มแบบนี้ต่อไป คงไม่ดีอย่างแน่นอน
ดังนั้นสิ่งที่ต้องเข้าใจต่อไปก็คือ ไฟล์ APK มันประกอบไปด้วยไฟล์อะไรบ้าง ?
เป็นการลงไปในรายละเอียด เพื่อค้นหาว่าปัญหามาจากส่วนไหนบ้าง
แต่ก่อนอื่นทำการบีบอัดไฟล์ต่าง ๆ ในกระบวนการสร้างไฟล์ APK
ด้วยเครื่องมือ
ZipAlign
แสดงดังรูป
จากภาพจะเห็นได้ว่า ส่วนที่มีจำนวนเยอะมาก ๆ ก็คือ Image หรือ รูปภาพที่ใช้ใน App
เมื่อทีมพัฒนาเข้าไปดูพบว่า
รูปต่าง ๆ ไม่ได้ทำการบีบอัดเลย !!
โดยใน Android 4.2.1 นั้นสนับสนุนรูปแบบรูปภาพใหม่คือ
WebP
ซึ่งอ้างว่าเข้ารหัสได้ดีกว่า PNG และ JPEG
ที่สำคัญคือ มีขนาดที่เล็กกว่าแถมคุณภาพไม่ได้ต่างกันมาก
ดังนั้นจึงทำการบีดอัดรูปภาพจำนวน 2,000 รูปจาก PNG ไปเป็น WebP
ผลที่ได้ไม่ได้ลดมากตามที่คาดหวัง !!
คือมีขนาดลดจาก 27.1 MB เหลือ 23.1 MB โดยไม่สูญเสียคุณภาพ
แสดงดังรูป
ยังไม่พอนะ สิ่งที่ต้องตรวจสอบเพิ่มเติม คือ
เมื่อเปลี่ยนเป็น WebP แล้วต้องดูประสิทธิภาพการทำงานของ App ด้วย
ว่าเป็นอย่างไร ดีขึ้น หรือ แย่ลง ?
ด้วยการใช้งาน
Android performance tool
ผลที่ได้คือ ประสิทธิภาพการทำงานไม่ได้แตกต่างกันเลย
เพียงเท่านี้ก็สบายใจล่ะ
ส่วนขั้นตอนการแปลงรูปภาพนั้นจะทำงานแบบอัตโนมัติ
เมื่อทำการ commit หรือ เปลี่ยนแปลงรูปภาพ
ซึ่งลดภาระการทำงานลงไปอย่างมาก
หลังจากทำการเปลี่ยนไปเป็น WebP พบว่าขนาดของไฟล์ APK เป็นดังนี้
สิ่งที่ต้องระวังในการแปลงรูปภาพ คือ คุณภาพของรูป
เนื่องจากรูปขนาดใหญ่ลดคุณภาพไม่ได้เลย
มิเช่นนั้นจะกระทบต่อผู้ใช้งานอย่างมาก
สามารถอ่านแบบเต็ม ๆ ได้ที่
Yelp Android App Went On A Diet
สุดท้ายแล้ว
Android developer ควรใส่ใจกับขนาดของไฟล์ APK กันด้วย
ในบทความนี้เป็นเพียงหนึ่งวิธีการเท่านั้นนะ