จากงาน Android Bangkok Conference 2019 ที่ผ่านมา
มี session อธิบายถึงการทำงานของ Gradle
ซึ่งเป็น build tool ของ Android project
ไม่ว่าจะเขียนด้วยภาษา Java หรือ Kotlin ก็ตาม
ปัญหาที่ปวดหัวของนักพัฒนาคือ
เวลาในการ build ของ Gradle ที่นานนั่นเอง
ประเด็นหลัก ๆ คือ
ก่อนที่จะแก้ไข ต้องรู้ก่อนว่าการทำงานเป็นอย่างไรบ้าง
ในแต่ละขั้นตอนใช้เวลามากน้อยเพียงใด
โดยใน Gradle จะมีการทำงาน 3 ส่วนคือ
- Initial คือทำการดูว่าจะ build project อะไรบ้าง อย่างไร
- Configuration คือการดูว่าใน build.gradle นั้นมี plugin และ task อะไรบ้าง
- Execution ทำการ run ทุก ๆ task ที่เกี่ยวข้อง
ถ้าเป็นแต่ก่อนเราจะใช้งาน profile ใน gradle
เพื่อดูว่าแต่ละขั้นตอนของการ build เป็นอย่างไร
ยกตัวอย่างเช่น
ผลการทำงานเป็นดังนี้
ตอนนี้ใน gradle ก็มีเพิ่มมาอีกตัวคือ scan
เป็นความสามารถที่มากับ Gradle Enterprise
แต่ใน Gradle community ก็ใช้ได้
ข้อมูลต่าง ๆ จะอยู่ในระบบของ Gradle น่าจะบน Cloud นะ
เพราะว่าหลังจากที่ทำงานเสร็จ เราจะได้ link เพื่อเข้าไปดูผลดังนี้
แสดงผลดังนี้
ดูเป็น Timeline ของแต่ละขั้นตอนได้เลย
ละเอียดมาก ๆ
จาก session นั้นได้แนะนำอีกตัวที่ทำขึ้นมาเองคือ Talaiot
ทำขึ้นมาเพื่อให้ใช้งานได้ง่ายขึ้น
สามารถดูรายละเอียดได้ชัดเจนขึ้น
ที่สำคัญสามารถเก็บผลต่าง ๆ ไว้ใน Time-serie database ได้อีกด้วย
ผลการทำงานเป็นดังรูป
อีกทั้งยังทำ dependency graph สวย ๆ ให้อีกด้วย น่าลองใช้นะ
ดังนั้นก่อนที่จะปรับปรุงการ build ของ Gradle
ควรเข้าใจการทำงานของมันก่อนนะ