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

[Android] ดูสถิติของขนาดและจำนวน method ของไฟล์ APK บน Jenkins กัน

$
0
0

reducing_apk_file_size

reducing_apk_file_size ในการพัฒนา Android app นั้นมีหลายสิ่งที่ต้องให้ความสำคัญ หนึ่งในนั้นคือ ขนาดของไฟล์ APK และ จำนวน method ใน dex bytecode
ซึ่งนักพัฒนาควรจะ ทำให้ขนาดของไฟล์ APK ให้เล็กและจำนวน method น้อย ๆ
แต่ก่อนอื่นต้องรู้ข้อมูลเรื่องเหล่านี้อยู่ตลอดเวลาเมื่อเกิดการเปลี่ยนแปลงขึ้น เพื่อนำข้อมูลเหล่านี้มาวิเคราะห์ และ ปรับปรุงต่อไป ดังนั้นมาดูกันว่ามีวิธีการอย่างไรบ้าง ?

เมื่อไปค้นหาพบว่ามี library ให้ใช้ด้วย

ตัวอย่างเช่น Dexcount gradle plugin ซึ่งทำการคำนวณเรื่องต่าง ๆ ให้เลย เช่น
  • จำนวน method
  • จำนวน field
การใช้งานนั้นก็ง่ายมาก ๆ เพียงแค่ทำการแก้ไขไฟล์ app/build.gradle ดังนี้ [gist id="c52e882d093e9d5840fa8b8106c0feed" file="build.gradle"] จากนั้นทำการ run ด้วยคำสั่ง [code] $./gradlew clean assembleDebug [/code] แสดงผลการทำงานดังนี้ [code] Total methods in app-debug.apk: 18163 (27.71% used) Total fields in app-debug.apk: 8516 (12.99% used) Methods remaining in app-debug.apk: 47372 Fields remaining in app-debug.apk: 57019 [/code] และยังสร้างผลการทำงานออกมาในรูปแบบไฟล์อีกด้วย เช่น
  • debug.csv สรุปจำนวน method และ field
  • debug.txt สรุปรายละเอียดแยกเป็น package
  • รวมทั้ง Chart ที่สวยงาม
แสดงดังรูป apk01 ส่วน Chart แสดงดังนี้ apk02

ส่วนขนาดของไฟล์ APK นั้นก็มี library ให้ใช้งานอีก เช่น APK size plugin

แต่อาจจะจะยากไป เพราะว่าใช้คำสั่ง stat บน OS ต่าง ๆ ได้ (ผมใช้ Mac นะ) [code] $stat -f%z app-debug.apk [/code] จากนั้นก็เขียนใส่ไว้ในไฟล์ เท่านี้ก็น่าจะเพียงพอแล้วสำหรับขนาดของไฟล์ APK

เมื่อการเตรียมการต่าง ๆ เรียบร้อยแล้ว นำมาทำงานบน Jenkins ดีกว่า

เนื่องจากเราต้องการรู้ว่าทุก ๆ ครั้งที่มีการสร้างไฟล์ APK นั้น ขนาดของไฟล์มีขนาดเท่าไร ? จำนวน method และ field มีเท่าไร ? ที่สำคัญเราจะเห็นประวัติหรือแนวโน้มต่าง ๆ อีกด้วย ให้ทำการติดตั้ง plugin ชื่อว่า Jenkins Plot Plugin apk03 จากนั้นใน job สำหรับ build ไฟล์ APK ให้ทำดังนี้ apk04 ทำการเพิ่ม Plot เข้าไปในส่วนของ Post Build Action ดังนี้ apk05 ส่วนของจำนวน method ก็เพิ่มเข้าไปเหมือนกันนะครับ ผลของ Plot ต่าง ๆ เป็นดังนี้ apk06  
เพียงเท่านี้ก็สามารถดูแนวโน้มของไฟล์ APK แบบง่าย ๆ ได้แล้ว ส่วนการวิเคราะห์และปรับปรุงไฟล์ APK เพิ่มเติม แนะนำให้ใช้ APK Analyzer ใน Android Studio 2.2 ได้เลยนะครับ
Reference Websites https://medium.com/@mreichelt/android-apk-size-dexcount-charts-on-jenkins-ae518e961818#.7qkef26z0 http://cyrilmottier.com/2014/08/26/putting-your-apks-on-diet/

Viewing all articles
Browse latest Browse all 2072

Trending Articles