Speed Up Gradle Build ใน Android Studio 3.2.1
คุณรู้สึกเหมือนกำลังรอการสร้างให้เสร็จสมบูรณ์ใน Android Studio นานหลายนาทีหรือไม่? ฉันด้วย. และมันก็ค่อนข้างน่ารำคาญ โชคดีที่มีหลายวิธีที่คุณสามารถใช้เพื่อปรับปรุงสิ่งนี้ Android ใช้ Gradle สำหรับการสร้าง เวอร์ชันล่าสุดคือ 4.6 มีการเพิ่มประสิทธิภาพอย่างมากในเวอร์ชันก่อนหน้า (ดูรายละเอียดเพิ่มเติมในหมายเหตุที่วางจำหน่าย)
ขั้นตอนที่ 1:อัปเดตเวอร์ชัน Gradle วิธีที่ง่ายกว่าในการทำสิ่งนี้ให้สำเร็จคือไปที่: เปิดการตั้งค่าโมดูล (โครงการของคุณ)> โครงสร้างโครงการ
UPDATE
เปลี่ยนเป็นรุ่น Gradle: 4.6
และเปลี่ยนเป็นปลั๊กอินของ Android เวอร์ชัน: 3.2.1
ดาวน์โหลด Gradle Release distributive จากhttps://services.gradle.org/distribution/gradle-4.6-all.zip
และคัดลอกไปที่โฟลเดอร์ Gradle:
ขั้นตอนสุดท้ายคือการเพิ่มการกระจายของคุณในการตั้งค่า> การไล่ระดับ
อย่าลืมคลิกใช้เพื่อบันทึกการเปลี่ยนแปลง
ขั้นตอนที่ 2:เปิดใช้งานโหมดออฟไลน์, Gradle daemon และบิลด์ขนานสำหรับโครงการโหมดออฟไลน์บอกให้ Gradle ละเว้นการตรวจสอบข้อมูลล่าสุด Gradle ขอการพึ่งพาทุกครั้งและการมีตัวเลือกนี้ทำให้ใช้สิ่งที่มีอยู่แล้วในเครื่องสำหรับการอ้างอิง ไปที่ Gradle จาก android studio Setting แล้วคลิกในกล่องทำงานแบบออฟไลน์
- ไปที่คอมไพเลอร์จาก android studio การตั้งค่าและเพิ่ม“ - ออฟไลน์” ในกล่องบรรทัดคำสั่งแล้วคลิกรวบรวมโมดูลอิสระในแบบคู่ขนาน
ขั้นตอนต่อไปคือการเปิดใช้งาน Gradle daemon และการสร้างแบบขนานสำหรับโครงการของคุณ การสร้างแบบขนานจะทำให้โครงการของคุณมีหลายโมดูล (การสร้างหลายโครงการใน Gradle) เพื่อสร้างแบบขนานซึ่งจะทำให้โครงการขนาดใหญ่หรือโมดูลาร์สร้างได้เร็วขึ้น
การตั้งค่าเหล่านี้สามารถเปิดใช้งานโดยการแก้ไขไฟล์ชื่อ gradle.properties ในไดเรกทอรีสคริปต์ Gradle (เช่น ~ / .gradle / gradle.properties) บางส่วนของตัวเลือกเหล่านี้ (เช่นโมดูล Complie ในแบบคู่ขนาน) พร้อมใช้งานจาก Android Studio และยังเปิดใช้งานโดย ค่าเริ่มต้น แต่การวางไว้ในไฟล์ gradle.properties จะเปิดใช้งานเมื่อสร้างจากเทอร์มินัลและให้แน่ใจว่าเพื่อนร่วมงานของคุณจะใช้การตั้งค่าเดียวกัน แต่ถ้าคุณทำงานเป็นทีมบางครั้งคุณไม่สามารถกระทำสิ่งนี้ได้
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
org.gradle.daemon=true
การใช้ daemon จะทำให้การสร้างเริ่มต้นของคุณเร็วขึ้นเนื่องจากไม่จำเป็นต้องเริ่มต้นแอปพลิเคชัน Gradle ทั้งหมดทุกครั้ง Gradle Daemon ไม่ได้เปิดใช้งานตามค่าเริ่มต้น แต่แนะนำให้เปิดใช้งานเสมอสำหรับเครื่องของนักพัฒนาซอฟต์แวร์ (แต่ปล่อยให้ปิดการใช้งานสำหรับเซิร์ฟเวอร์รวมอย่างต่อเนื่อง) คำถามที่พบบ่อยเกี่ยวกับโหมดนี้สามารถพบได้ที่นี่https://docs.gradle.org/current/userguide/gradle_daemon.html การตั้งค่าการสร้างแบบขนานอาจไม่ปลอดภัยสำหรับบางโครงการ ข้อกำหนดคือโมดูลทั้งหมดของคุณจะต้องแยกออกจากกันหรืองานสร้างของคุณอาจล้มเหลว (ดูhttp://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projectsเพื่อดูรายละเอียด)
ขั้นตอนที่ 3:เปิดใช้งานการตั้งค่าหน่วยความจำ dexign และ tweak ที่เพิ่มขึ้นคุณสามารถเร่งความเร็วงานสร้างของคุณได้โดยการเปิดระบบ dexing แบบเพิ่มหน่วยความจำ ในไฟล์บิลด์ของโมดูล:
เพิ่มตัวเลือกนี้ในบล็อก android ของคุณ:
dexOptions {
incremental true
}
ในบล็อก dexOptions นั้นคุณยังสามารถระบุขนาดฮีพสำหรับกระบวนการ dex ได้เช่น:
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
ที่ "12g" เป็นหน่วยความจำ 12GB ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้สามารถพบได้ที่นี่ google.github.io/android-gradle-dsl/current/ นอกจากนี้คุณยังสามารถกำหนดค่าพารามิเตอร์ Gradle ในไฟล์การตั้งค่าเช่นเพิ่มขนาดสูงสุดของกองในกรณีที่คุณมีโครงการขนาดใหญ่:
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
ดูรายการพารามิเตอร์ทั้งหมดได้ที่นี่: https://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_propertiesสำหรับรายละเอียด
ขั้นตอนที่ 4:ปิดการใช้งาน Antivirus พิจารณาที่จะไม่รวมโครงการและแคชไฟล์จากการสแกนไวรัส เห็นได้ชัดว่านี่เป็นการแลกเปลี่ยนที่ปลอดภัย แต่ถ้าคุณสลับไปมาระหว่างสาขาจำนวนมากแล้วโปรแกรมป้องกันไวรัสจะสแกนไฟล์อีกครั้งก่อนที่จะอนุญาตให้กระบวนการ gradle ใช้ซึ่งจะทำให้เวลาในการสร้างช้าลง วัดเวลาการสร้างและประมวลผล CPU โดยมีและไม่มีไวรัสเปิดใช้งานเพื่อดูว่าเกี่ยวข้องหรือไม่ ฉันหวังว่านี่จะช่วยได้. แสดงความคิดเห็นหากคุณมีคำถามหรือเคล็ดลับอื่น ๆ สำหรับการปรับปรุงประสิทธิภาพการสร้าง
ลิงค์ที่เป็นประโยชน์