android-lint-00
เมื่อเราทำการพัฒนา Android app ไปเรื่อย ๆ
สิ่งที่เกิดขึ้นมาอย่างมากคือ Resource ต่าง ๆ ที่เราไม่ใช้งานเยอะมาก ๆ
ซึ่งอยู่ใน folder res และ code ของเราตลอดจน library !!
ส่งผลให้ขนาดของไฟล์ APK มีขนาดใหญ่จนเกินไป
ดังนั้น สิ่งที่นักพัฒนาควรทำคือ ลบสิ่งที่ไม่ถูกใช้งานออกไปบ้าง
มาลบกันดีกว่า

เริ่มด้วยวิเคราะห์ก่อนว่ามี resource อะไรบ้างที่ไม่ถูกใช้งาน

ใน Android studio นั้นมีเครื่องมือให้พร้อมเลย เช่น

  • Analyze -> Inspect code
  • Analyze -> Code cleanup
  • Refactor -> Remove unused resources

ปล. แต่นักพัฒนาไม่ค่อยรู้จักหรือใช้งานกันหรือเปล่านะ ?

หรือสามารถใช้งาน Android Lint  ได้อีกด้วย
ด้วยคำสั่ง

$./gradlew clean lint

จะทำการแสดงผลลัพธ์ไว้ที่ build/output/lint-results-devDebug.html และ xml
แสดงดังรูป

android-lint-03

จากนั้นให้ลองทำการสร้างไฟล์ apk ก่อนการลบ resource

เพื่อวิเคราะห์ไฟล์ APK ด้วย Build -> Analyze APK
ซึ่งจากตัวอย่างนั้นไฟล์ APK มีขนาด 7.5 MB
ในตอนนี้เรารู้ค่าเริ่มต้นก่อนทำการแก้ไขแล้วนะ
แสดงดังรูป

android-lint-04

ต่อมาจึงทำการลบ resource ต่าง ๆ ที่ไม่ใช้งานด้วย Refactor -> Remove unused resource

ดังรูป

android-lint-02

โดยผลลัพธ์ที่ได้มันน่าประทับในอย่างมาก
เนื่องจากขนาดของไฟล์ APK ลดจาก 7.5 MB เหลือเพียง 6 MB
แสดงดังรูป

android-lint-05

ยังไม่พอนะครับ ยังมีเครื่องมืออื่น ๆ ให้ใช้งานอีก

เช่น Android Resource Remover จาก KeepSafe
เป็นเครื่องมือสำหรับการลบ resource ที่ไม่ได้ใช้งานจากผลการทำงานของ Android Lint นั่นเอง
ลองติดตั้งและใช้งานดูครับ

สุดท้ายแล้ว นักพัฒนาที่ดีต้องหัดลบสิ่งที่ไม่ใช้งานหรือจำเป็นออกไปบ้างนะ

ปล. สุดท้ายก่อนจบ ในส่วนการ release อย่าลืมทำแบบนี้นะ

ยังไม่พอนะ สำหรับการลดขนาดไฟล์ APK

มีคำแนะนำเพิ่มเติมดังนี้

  • ใช้งาน Proguard ให้คุ้มกันหน่อย
  • ใช้งาน Vector drawable
  • Apk split
  • อย่าลืม optimize png image
  • พยายามใช้งาน 9-patch image
  • ลดขนาดของไฟล์ JPG ด้วย
  • ลบการ debug ใน code ออกไป
  • ลด duplicate ของ code
  • ให้ใช้ Android Lint กันเป็นหลัก
  • พยายาม reuse resource ต่าง ๆ ให้ได้มากขึ้น
  • ระมัดระวังพวก media format ให้มากทั้ง image, audio และ video

Reference Websites
Shrink Your Code and Resources
Reduce size APK