Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

[Android] ลดขนาดของไฟล์ APK ด้วยการลบสิ่งที่ไม่ใช้งานออกไปบ้าง

$
0
0

android-lint-00

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  ได้อีกด้วย ด้วยคำสั่ง [code] $./gradlew clean lint [/code] จะทำการแสดงผลลัพธ์ไว้ที่ 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 อย่าลืมทำแบบนี้นะ [gist id="fa4f06654e0e4ea5397a013c62a0e4fc" file="build.gradle"]

ยังไม่พอนะ สำหรับการลดขนาดไฟล์ 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

Viewing all articles
Browse latest Browse all 1997

Trending Articles