การสร้างและเรียกใช้แอปผ่าน Gradle และ Android Studio ช้ากว่า Eclipse


461

ฉันมีหลายโครงการ (~ 10 โมดูล) ซึ่งสิ่งปลูกสร้างใช้เวลาประมาณ 20-30 วินาทีในแต่ละครั้ง เมื่อฉันกด Run ใน Android Studio ฉันต้องรอทุกครั้งที่จะสร้างแอปขึ้นใหม่ซึ่งช้ามาก

เป็นไปได้ไหมที่จะสร้างกระบวนการใน Android Studio โดยอัตโนมัติ หรือคุณมีคำแนะนำเกี่ยวกับวิธีทำให้กระบวนการนี้เร็วขึ้น?

ใน Eclipse ต้องขอบคุณการสร้างอัตโนมัติการรันโครงการเดียวกันบนอีมูเลเตอร์ใช้เวลาประมาณ 3-5 วินาที

นี่คือไฟล์ build.gradle ของฉัน (โมดูลแอป):

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:SharedLibs')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:FacebookSDK')
    compile project(':libraries:GooglePlayServices')
    compile project(':libraries:HorizontalGridView')
    compile project(':libraries:ImageViewTouch')
    compile project(':libraries:SlidingMenu')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

23
โปรดทราบว่าในขณะนี้ทั้งระบบการสร้างแบบ Gradle หรือ Android Studio นั้นเป็นเกรดการผลิตไม่
CommonsWare

11
เวลาที่ใช้ในที่นี้มีโอกาสมากที่สุดในขั้นตอน DEXing น่าเสียดายที่การผลิต android studio ดูเหมือนว่าจะทำความสะอาดทุกครั้งทำให้ไฟล์ dex ก่อนหน้านี้ถูกลบ หวังว่าเราจะเห็นการแก้ไขบิลด์ที่เพิ่มขึ้นในไม่ช้า
Richard J. Ross III

3
ในระหว่างนี้มีวิธีที่ง่าย ๆ ในการบอกการเปลี่ยนงาน Gradle เริ่มต้นเช่นที่พวกเขาไม่ได้ทำความสะอาดอยู่ตลอดเวลาหรือไม่?
sigmabeta

10
@ คอมมอนส์ดูดีไม่มีข้อแก้ตัวตอนนี้เราอยู่ในเวอร์ชั่น 1.02 แต่มันก็ยังเป็นปัญหาใหญ่อยู่ ด้วยสตูดิโอ Android ที่ใช้งานแล็ปท็อปคอร์ขนาด 4GB ของฉันใช้หน่วยความจำขนาด 3.75gb เพียงแค่ถืออินสแตนซ์เดียวของโครงการ Hello World มันก็เป็นผลที่ตามมาช้ามาก สำหรับฉันแล้วมันบ่งบอกถึงข้อบกพร่องร้ายแรงและการออกแบบที่กำลังดำเนินอยู่ ฉันหวังว่าทุกอย่างจะได้รับการแก้ไข
แอนดรูว์เอส

7
@ แอนดรูว์ฉันรู้สึกว่ามันน่าเสียดายที่เราต้องเปลี่ยนระบบปฏิบัติการของเราเพียงเพื่อให้เกรเดียนต์ทำงานด้วยความเร็วที่เหมาะสมเมื่อเทียบกับเครื่องมือก่อนหน้านี้
Richard Le Mesurier

คำตอบ:


441

ฮาร์ดแวร์

ฉันขอโทษ แต่การอัพเกรดสถานีพัฒนาเป็น SSD และ RAM จำนวนมากอาจมีอิทธิพลมากกว่าจุดรวมด้านล่าง

รุ่นเครื่องมือ

การเพิ่มประสิทธิภาพการสร้างมีความสำคัญสำหรับทีมพัฒนาดังนั้นให้แน่ใจว่าคุณกำลังใช้GradleและAndroid Gradle Pluginล่าสุด

ไฟล์การกำหนดค่า

สร้างไฟล์ที่ชื่อgradle.propertiesในไดเรกทอรีใดก็ตามที่ใช้:

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (Mac)
  • C:\Users\<username>\.gradle (Windows)

ผนวก:

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.krd1mm27v
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects. 
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

# Set to true or false to enable or disable the build cache. 
# If this parameter is not set, the build cache is disabled by default.
# http://tools.android.com/tech-docs/build-cache
android.enableBuildCache=true

คุณสมบัติ Gradle ทำงานท้องถิ่นถ้าคุณวางพวกเขาในและทั่วโลกถ้าคุณวางไว้ที่projectRoot\gradle.properties user_home\.gradle\gradle.propertiesคุณสมบัติที่ใช้ถ้าคุณเรียกใช้งานการไล่ระดับสีจากคอนโซลหรือจากแนวคิดโดยตรง:

การตั้งค่า IDE

เป็นไปได้ที่จะปรับแต่งการรวม Gradle-IntelliJ จาก GUI การตั้งค่า IDE การเปิดใช้งาน "งานออฟไลน์" (ตรวจสอบคำตอบจากyavaด้านล่าง) จะปิดใช้งานคำขอเครือข่ายจริงในทุก ๆ "ไฟล์ไฟล์เสียงประสานการซิงค์"

การตั้งค่า IDE

Native multi-dex

หนึ่งในขั้นตอนที่ช้าที่สุดของ apk build คือการแปลง java bytecode เป็นไฟล์ dex ไฟล์เดียว การเปิดใช้ Multidex ดั้งเดิม (minSdk 21 สำหรับการสร้างข้อบกพร่องเท่านั้น) จะช่วยให้เครื่องมือในการลดปริมาณงาน (ตรวจสอบคำตอบจากAksel Willgertด้านล่าง)

การอ้างอิง

ชอบการ@aarพึ่งพาโครงการย่อยของห้องสมุด

ค้นหาแพ็คเกจ aar บนmavenCentral , jCenterหรือใช้jitpack.ioเพื่อสร้างไลบรารี่จาก github หากคุณไม่ได้แก้ไขแหล่งที่มาของไลบรารีการพึ่งพาคุณไม่ควรสร้างมันขึ้นมาทุกครั้งที่มีแหล่งโครงการของคุณ

ป้องกันไวรัส

พิจารณาแยกไฟล์โครงการและแคชออกจากการสแกนไวรัส เห็นได้ชัดว่านี่เป็นการแลกเปลี่ยนที่ปลอดภัย (อย่าลองทำที่บ้าน!) แต่ถ้าคุณสลับไปมาระหว่างสาขาจำนวนมากแล้วโปรแกรมป้องกันไวรัสจะสแกนไฟล์อีกครั้งก่อนที่จะอนุญาตให้กระบวนการ gradle ใช้ซึ่งจะทำให้เวลาในการสร้างช้าลง (โดยเฉพาะในโครงการ AndroidStudio ที่ซิงค์กับไฟล์ gradle และทำดัชนี วัดเวลาการสร้างและประมวลผล CPU โดยมีและไม่มีไวรัสเปิดใช้งานเพื่อดูว่าเกี่ยวข้องหรือไม่

การสร้างโปรไฟล์การ build

Gradle มีในตัวสนับสนุนสำหรับโปรไฟล์โครงการ โปรเจ็กต์ต่างกันกำลังใช้ปลั๊กอินและสคริปต์ที่กำหนดเองต่างกัน การใช้--profileจะช่วยในการค้นหาคอขวด


1
เกี่ยวกับการพึ่งพา @aar: การใช้ eg dependencies {compile 'com.android.support:support-v4:21.0.+'}เป็นวิธีแก้ปัญหาที่ช้าหรือไม่ ไม่แน่ใจว่าจะเข้าใจ
younes0

1
การถ่ายภาพที่คุณได้เพิ่มห้องสมุดเช่นนี้: github.com/novak/numberpicker มันมีคุณค่าให้การแก้ไขปัญหารหัส แต่ผู้เขียนไม่ได้เผยแพร่ที่ใดก็ได้เช่น maven หรือ jCenter ตอนนี้คุณอาจนำไลบรารีนั้นมาเป็นโครงการของคุณและสร้างมันทุกครั้งที่โครงการหลักสร้างหรือรวบรวมเพียงครั้งเดียวและยอมรับ @aar เฉพาะในที่เก็บโครงการของคุณ ดังนั้นจึงเป็นตัวเลือกการพึ่งพาแหล่งที่มา / ไบนารี หากคุณไม่ได้แก้ไขแหล่งที่มาคุณควรนำการพึ่งพาของคุณเป็นไบนารีที่คอมไพล์แล้ว สำหรับไลบรารี java ธรรมดาที่เป็น. jar, สำหรับไลบรารี Android ที่เป็น. aar
Sergii Pechenizkyi

1
มันคือการตั้งค่าโปรเจค> gradle ดูภาพหน้าจอด้านล่าง: i.stack.imgur.com/wrwgo.png
Sergii Pechenizkyi

2
ฉันได้ตั้งค่าการปรับให้เหมาะสมทั้งหมดตามที่อธิบายไว้อย่างไรก็ตามใน Android Studio ใช้เวลา 3 ถึง 4 นาทีในการเริ่มต้นแอปของฉันในขณะที่ใช้เวลาประมาณ 30 วินาทีใน Eclipse อึ. เพียง 12 โครงการแอปเดียวที่จะทำงาน! Android dev กลายเป็นเรื่องยุ่งยากไปแล้วและนั่นก็มากกว่าหนึ่งปีต่อมา
3c71

1
ฉันใช้การปรับให้เหมาะสมทั้งหมดและยังคงใช้เวลาประมาณ 20 วินาทีในการสร้าง HelloWorld apk เทียบกับ 2-3 วินาทีใน Eclipse
Pawel

148

คุณสามารถละเว้นการตรวจสอบการอัพเดทแบบ gradle

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับ Windows ที่ใช้ Android Studio 1.5: ไปที่ File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

ลดลงจาก ~ 30 + วินาทีถึง ~ 3 วินาที


24
นั่นเจ๋งมาก นั่นเป็นสิ่งที่เร็วกว่ามาก แต่สิ่งที่จะทำลายนี้
John Ballinger

2
ทางออกที่ดีที่สุด ฉันจะทราบผลข้างเคียงของวิธีแก้ปัญหานี้ได้
ไหม

26
@JohnBallinger ทำงานออฟไลน์ - ใช้ช่องทำเครื่องหมายนี้เพื่อทำงานกับ Gradle ในโหมดออฟไลน์ ในกรณีนี้ Gradle จะใช้การอ้างอิงจากแคช Gradle จะไม่พยายามเข้าถึงเครือข่ายเพื่อทำการแก้ไขการอ้างอิง หากการพึ่งพาที่ต้องการไม่มีอยู่ในแคชการพึ่งพาการดำเนินการสร้างจะล้มเหลว (ที่มา: jetbrains.com/idea/help/gradle-2.html )
cprcrack

10
มันเป็นค่าเริ่มต้นที่จะใช้อ้างอิงแคชก่อนที่จะผ่านเครือข่ายหรือไม่ ฉันไม่สามารถจินตนาการการตรวจสอบนี้สำหรับการอ้างอิงที่อัพเดททุกครั้งที่gradleมีการเรียกใช้ นั่นเป็นสิ่งที่แปลกประหลาด
Ehtesh Choudhury

1
@EhteshChoudhury มันแปลกมาก สภาพแวดล้อม Gradle / Android Studio dev ทั้งหมดนั้นมีความเงียบงัน คนส่วนใหญ่คิดว่ามันช้าเพราะ Java ฉันทำ Java dev ฝั่งเซิร์ฟเวอร์กับ IDEA และสิ่งต่าง ๆ ทำงานได้อย่างราบรื่นมาก
stepanian

34

ค้นหาทุกสิ่งนี้และในที่สุดก็พบทางออกที่เหมาะกับเรา การเปิดใช้งานบิลด์ขนาน (บน OSX:) preferences -> compiler -> gradle -> "Compile independent modules in parallel"และการเปิดใช้งาน 'ทำให้โครงการโดยอัตโนมัติ' ลดระดับลงจาก ~ 1 นาทีถึง ~ 20 วินาที ขอบคุณ / u / Covalence

http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/


56
20 วินาทียังคงช้ามาก
Johannes Brodwall

6
โปรดทราบว่าสิ่งนี้จะช่วยได้ก็ต่อเมื่อคุณมีโมดูล / โครงการอิสระหลายรายการ ฉันทดสอบมันในแอพโมดูลเดียวและมันก็ไม่ได้สร้างความแตกต่างเลย
Sam

ฉันมีโครงการที่ค่อนข้างใหญ่และใช้เวลา 2 - 3 นาทีสำหรับ MacBook Pro 2012 Core i7, RAM 8 GB มันโอเคไหม
Sermilion

25

ฉันเพิ่งซื้อ SSD ใหม่และเปลี่ยนจาก Windows เป็น Linux เวลาการสร้างของฉันตอนนี้กลายเป็นเรื่องสำคัญเร็วขึ้นและไม่น่ารำคาญอีกต่อไป

แม้ว่ามันจะไม่ตอบคำถามของคุณโดยตรงว่าทำไมมันถึงช้ากว่า eclipse แต่ก็แสดงให้เห็นว่ากระบวนการนั้นมีขอบเขตดิสก์และการอัปเกรดเป็น SSD อาจเป็นวิธีแก้ปัญหา (ค่อนข้างแพง) ฉันคาดเดาว่าจะมีคนกำลัง Google ปัญหาและสิ้นสุดที่นี่ที่อาจชื่นชมประสบการณ์ของฉัน


11
นักพัฒนาในทีมของฉันมี SSD ที่รวดเร็วในเครื่องที่เร็วและมีหน่วยความจำมากมาย สำหรับแอปที่ไม่สำคัญการปรับใช้ใหม่หลังจากการเปลี่ยนแปลงรหัสเล็กน้อยยังคงใช้เวลาประมาณ 45 วินาทีเมื่อเทียบกับการปรับใช้อีกครั้งใน Eclipse แม้แต่การรัน JUnit แบบธรรมดาที่ไม่ใช่ Android ก็เป็นสิ่งต้องห้ามอย่างช้าๆ "การอัปเกรด" เป็น Android Studio และ Gradle ได้มีการปรับลดรุ่นใหญ่แล้ว : - /
spaaarky21

@Lionleaf เปลี่ยนจาก windows ไปเป็น linux ได้เร็วขึ้นเท่าไหร่?
younes0

@ younes0 ฉันไม่รู้ ฉันเปลี่ยนมาใช้ Linux ในเวลาเดียวกันฉันเปลี่ยนเป็น SSD ฉันไม่ได้บอกว่ามันมีผลในเชิงบวกใด ๆ มันเป็นเพียงแค่สองตัวแปรที่ฉันเปลี่ยนไปเพื่อเพิ่มความเร็ว
Andreas Løve Selvik

4
ในกรณีของฉันเปลี่ยนจาก Windows เป็น Linux ทำให้ Android สร้างเร็วขึ้น 40% ... ดังนั้นมันจึงคุ้มค่าแน่นอน
kosiara - Bartosz Kosarzycki

ฉันสองสิ่ง @Bartosz Kosarzycki พูด ฉันลงเอยด้วยการใช้ Ubuntu vm พร้อม virtualbox บนเครื่อง dev ของฉัน ~ 54 วินาทีใน Windows, 7 วินาทีสำหรับการสร้างเดียวกันภายในเครื่องเสมือนบนฮาร์ดแวร์เดียวกัน การเร่งความเร็วบ้าโดยการย้ายไปที่ Linux
Eric Cornelson

20

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 แล้วคลิกในกล่องทำงานแบบออฟไลน์

ป้อนคำอธิบายรูปภาพที่นี่

  1. ไปที่คอมไพเลอร์จาก 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 โดยมีและไม่มีไวรัสเปิดใช้งานเพื่อดูว่าเกี่ยวข้องหรือไม่ ฉันหวังว่านี่จะช่วยได้. แสดงความคิดเห็นหากคุณมีคำถามหรือเคล็ดลับอื่น ๆ สำหรับการปรับปรุงประสิทธิภาพการสร้าง

ลิงค์ที่เป็นประโยชน์


19

หากใช้บริการ Google Play ทั้งนี้ขึ้นอยู่กับไลบรารีที่คุณต้องการแทนที่จะเป็น Blob ทั้งหมดสามารถทำให้สิ่งต่าง ๆ เร็วขึ้น

หากคุณต้องการเพียงแผนที่ใช้:

compile 'com.google.android.gms:play-services-maps:6.5.+'

แทน:

compile 'com.google.android.gms:play-services:6.5.+'

หลังนำวิธี 20k (ดูบล็อก)มาไว้ใน classpath ซึ่งอาจเป็นวิธีรวมทั้งหมดที่มากกว่า 64k

ที่จะบังคับให้ใช้ proguard หรือmultidexแม้กระทั่งการดีบักบิลด์ สำหรับหนึ่งในโครงการของฉันฉันมีเวลาสร้างต่อไปนี้

  • multidex build (พร้อมสนับสนุนห้องสมุด) ~ 40 วินาที
  • proguard build ~ 20sec
  • สร้างเมื่อวิธีการ จำกัด <64k ~ 5sec

หากพัฒนาบน sdk 21+ เป็นไปได้ที่จะเพิ่มประสิทธิภาพ multidex builds ตามที่ระบุไว้ในเอกสารประกอบ android

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
    ...
}

2
แทนการรวบรวมทุกplay-serviceห้องสมุด I เรียบเรียงเท่านั้นmapsและและผู้พิการlocations multidexฉันรู้สึกแตกต่างอย่างมาก ขอบคุณ +1
Sami Eltamawy

16

คำตอบที่ได้รับการยอมรับสำหรับ Android เวอร์ชั่นเก่าและส่วนใหญ่ยังคงทำงานอยู่ในขณะนี้ การอัปเดต android studio ทำให้เร็วขึ้นเล็กน้อย อย่ากังวลที่จะระบุขนาดฮีปเนื่องจากจะเพิ่มโดยอัตโนมัติเมื่อมีการเพิ่ม Xms และ Xmx นี่คือการดัดแปลงบางอย่างด้วย VMoptions

  1. ในโฟลเดอร์ bin มีไฟล์ studio.vmoptions เพื่อตั้งค่าสภาพแวดล้อม ในกรณีของฉันนี่คือ studio64.vmoptions เพิ่มบรรทัดต่อไปนี้หากยังไม่ได้เพิ่มและบันทึกไฟล์ ในกรณีของฉันฉันมี 8GB RAM

    -Xms4096m
    -Xmx4096m
    -XX:MaxPermSize=2048m
    -XX:+CMSClassUnloadingEnabled
    -XX:+CMSPermGenSweepingEnabled 
    -XX:+HeapDumpOnOutOfMemoryError
    -Dfile.encoding=utf-8`
  2. เริ่ม android studio ไปที่ File-> Settings-> Build, Execution, Deployment-> Compiler

    • ตรวจสอบโมดูลอิสระที่คอมไพล์ในแบบขนาน
    • ในตัวเลือกบรรทัดคำสั่งเขียน: - ออฟไลน์
    • ทำเครื่องหมายโครงการโดยอัตโนมัติ
    • ตรวจสอบการกำหนดค่าตามต้องการ

ในกรณีที่ใช้ mac ตอนแรกฉันหา vmoptions ไม่เจอ อย่างไรก็ตามนี่เป็นบทความที่ดีเกี่ยวกับวิธีการที่เราสามารถเปลี่ยน vmoptions ใน Mac OSX อ้างจากบทความนี้ที่นี่

เปิดเทอร์มินัลของคุณและวางคำสั่งนี้เพื่อเปิด vmoptions ใน MAC OSX:

open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

1
ตั้งแต่ AS 2.3.2 คุณสามารถเปลี่ยนตัวเลือก vim ได้โดยวิธีใช้ -> แก้ไขตัวเลือก Vm ที่กำหนดเอง
Sam

15

เพียงสร้างไฟล์ชื่อ gradle.properties ในไดเรกทอรีต่อไปนี้:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

เพิ่มบรรทัดนี้ในไฟล์:

org.gradle.daemon=true

สำหรับฉันแล้วตอนนี้ความเร็วเท่ากับ Eclipse

ที่มา: https://www.timroes.de/2013/09/12/speed-up-gradle/


ฉันไม่เห็นโฟลเดอร์. gradle ใน mac วิธีการเปิด
Dharmik

@Dharmik: บางทีคุณอาจติดตั้ง Android Studio ภายใต้ชื่อผู้ใช้อื่น มิฉะนั้นจะติดตั้งไม่ถูกต้องฉันเดา
Yster

1
ไม่เป็นปัญหาอื่น ๆ .. ".gradle" โฟลเดอร์ระบบถูกซ่อนอยู่ .. ดังนั้นฉันไปที่ Go => ไปที่โฟลเดอร์และกว่าที่ฉันพบโฟลเดอร์. gradle .. ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว ..
Dharmik

14

คุณสามารถทำให้กระบวนการเร็วขึ้นหากคุณใช้การไล่ระดับสีจากบรรทัดคำสั่ง มีการปรับแต่งให้เหมาะสมมากสำหรับนักพัฒนา IDE แต่มันเป็นเพียงรุ่นแรก

สำหรับข้อมูลเพิ่มเติมอ่านการสนทนานี้ใน g + กับผู้พัฒนาบางส่วน


3
สิ่งนี้ดูเหมือนจะเป็นจริงแม้ในปี 2559
Leo สนับสนุน Monica Cellio

11

หากใครก็ตามที่ทำงานโครงการที่ซิงค์ผ่านการโค่นล้มและสิ่งนี้ยังคงเกิดขึ้นฉันคิดว่านี่จะทำให้กระบวนการเวิร์กโฟลว์ใน Android Studio ช้าลง ตัวอย่างเช่นถ้ามันทำงานช้ามากในขณะที่: เลื่อนในชั้นเรียน, xml ฯลฯ ในขณะที่แอพของฉันยังคงทำงานบนอุปกรณ์ของฉัน

  • ไปที่การควบคุมเวอร์ชันที่การตั้งค่าและตั้งค่าจากการโค่นล้มเป็นไม่มีป้อนคำอธิบายรูปภาพที่นี่

1
คุณบันทึกวันของฉัน: 2/4 นาที -> 15 วินาที (ฉันปิดการใช้งาน Tortoise HG สำหรับโครงการ)
kaftanati

3
หากใครยังคงใช้การโค่นล้มพวกเขาควรเปลี่ยนไปใช้ Git หรือ Mercurial
Leo สนับสนุน Monica Cellio

8

อัพเดทหลังจาก Android Studio 2.3

คำตอบทั้งหมดนั้นยอดเยี่ยมมากและฉันขอแนะนำให้ใช้วิธีการเหล่านี้กับการปรับปรุงความเร็วในการสร้าง

หลังจากเปิดตัว android 2.2 เมื่อเดือนกันยายน 2559 Android ได้เปิดตัวคุณสมบัติ build build แบบทดลองเพื่อเร่งความเร็วgradleประสิทธิภาพการทำงานของ build ซึ่งตอนนี้เป็นทางการจาก Android Studio 2.3 Canary (บันทึกประจำรุ่นอย่างเป็นทางการ)

มันแนะนำคุณสมบัติการสร้างแคชใหม่ซึ่งเปิดใช้งานโดยค่าเริ่มต้นสามารถเพิ่มความเร็วในการสร้างครั้ง (รวมถึงการสร้างแบบเต็มการสร้างที่เพิ่มขึ้นและการเรียกใช้ทันที) โดยการจัดเก็บและนำไฟล์ / ไดเรกทอรีที่สร้างขึ้นในรุ่นก่อนหน้า โครงการ.

วิธีใช้:

เพิ่มบรรทัดต่อไปนี้ในgradle.propertiesไฟล์ของคุณ

android.enableBuildCache = true
# Set to true or false to enable or disable the build cache. If this parameter is not set, the build cache is enable by default.

ทำความสะอาดแคช:

  • มีภารกิจ Gradle ใหม่ที่เรียกว่าcleanBuildCacheให้คุณทำความสะอาดแคชการสร้างได้ง่ายขึ้น คุณสามารถใช้มันได้โดยพิมพ์ข้อความต่อไปนี้ในเครื่องเทอร์มินัลของคุณ:

    ./gradlew cleanBuildCache

  • หรือคุณสามารถล้างแคชสำหรับ Android studio 2.2 โดยการลบที่เก็บไฟล์ทั้งหมดที่ตำแหน่ง

    C:\Users\<username>\.android\build-cache


7

หลังจากเปลี่ยนการตั้งค่านี้เวลารวบรวมของฉัน 10 นาทีเปลี่ยนเป็น ~ 10 วินาที

ขั้นตอนที่ 1:

การตั้งค่า (ctrl + Alt + S) ->

Build, Execution, Deployment ->

คอมไพเลอร์ ->

พิมพ์ " --offline" ในกล่องตัวเลือกบรรทัดคำสั่ง

ขั้นตอนที่ 2:

ทำเครื่องหมายที่ช่อง“ รวบรวมโมดูลอิสระในแบบคู่ขนาน”

& คลิกใช้ -> ตกลง

ป้อนคำอธิบายรูปภาพที่นี่

ข้อมูลอ้างอิง - https://www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio

ข้อด้อย:

คุณจะไม่สามารถดึงข้อมูลอ้างอิงรุ่นล่าสุดที่ระบุในไฟล์ build.gradle ของคุณลงได้ มันทำงานได้เร็วขึ้นเพราะใช้สแนปชอตแคชของไลบรารีที่นำเข้าเหล่านั้น

หมายเหตุสำคัญ : เมื่อคุณปรับใช้แอปพลิเคชันลบการตั้งค่านี้และสร้างด้วยการอ้างอิงรุ่นล่าสุด


6

แก้ไขฉันด้วย

File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Offline work

Gradle สร้างจาก 8 นาทีเป็น 3 วินาที


4

นี่คือสิ่งที่ช่วยให้โปรแกรมเมอร์ Android ผู้เริ่มต้น (โปรแกรมเมอร์มืออาชีพเมื่อหลายปีก่อน) เร่งความเร็วให้กับ Android Studio 2.2 ฉันรู้ว่านี่เป็นรูปแบบใหม่ แต่สรุปได้ในที่เดียว

การสร้างครั้งแรกยังคงช้าอย่างไร้ความปราณี แต่การรีสตาร์ทแอพที่รันอยู่ในตอนนี้โดยทั่วไปจะสามารถยอมรับได้ ฉันใช้พีซีที่เหมาะสมที่สุด: AMD Quad-Core A8-7410 CPU, RAM 8MB, ไม่ใช่ SSD HD, ชนะ 10 (และนี่คือการโพสต์ Stack Overflow ครั้งแรกของฉัน .... ;)

ในการตั้งค่า -> GRADLE:

ใช่สำหรับ "งานออฟไลน์" (นี่อาจเป็นการตั้งค่าการนำเข้ามากที่สุด)

ในการตั้งค่า -> คอมไพเลอร์:

ใช่สำหรับ "รวบรวมโมดูลอิสระในแบบคู่ขนาน" (ไม่แน่ใจว่าสิ่งนี้จะช่วยให้ใช้มัลติคอร์ CPU ได้หรือไม่)

ใน GRADLE SCRIPTS "build.gradle (โมดูล: แอป)":

defaultConfig {
    ...
   // keep min high so that restarted apps can be hotswapped...obviously, this is hugely faster.
   minSdkVersion 14
   ...
    // enabling multidex support...does make big difference for me.
    multiDexEnabled true

ยังอยู่ใน GRADLE SCRIPTS "gradle.properties (คุณสมบัติโครงการ)":

org.gradle.jvmargs = -Xmx3048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

org.gradle.parallel = true org.gradle.daemon = true

นอกจากนี้การทดสอบอุปกรณ์ทางกายภาพแทนที่จะใช้โปรแกรมจำลองนั้นทำงานได้ดีสำหรับฉัน แท็บเล็ตขนาดเล็กที่ใช้งานได้สะดวก


4

เคล็ดลับการนำเข้าประสิทธิภาพอีกอย่างหนึ่ง:

Android Studio 3.0มี DEX คอมไพเลอร์ใหม่ที่เรียกว่า D8

"คอมไพเลอร์ dex ส่วนใหญ่ทำงานภายใต้ประทุนในการพัฒนาแอพในแต่ละวันของคุณ แต่มันส่งผลกระทบโดยตรงต่อเวลาการสร้างแอปของคุณขนาดไฟล์. dex และประสิทธิภาพรันไทม์"

"และเมื่อเปรียบเทียบคอมไพเลอร์ D8 ใหม่กับ DX คอมไพเลอร์ปัจจุบัน D8 จะคอมไพล์ได้เร็วขึ้นและส่งออกไฟล์. dex ขนาดเล็กลงในขณะที่มีประสิทธิภาพรันไทม์ของแอพที่เหมือนกันหรือดีกว่า"

D8 เป็นทางเลือก - ใช้เราต้องใส่ gradle.properties ของโครงการ

android.enableD8=true

ข้อมูลเพิ่มเติม: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

PS มันสร้างเวลาสร้างของฉันประมาณ 30%


1

การตั้งค่านี้ทำงานได้รวดเร็วมากสำหรับฉัน (ประมาณ 2 วินาทีในการสร้าง)

build.gradle

android {

    dexOptions {
        incremental true
        preDexLibraries = false
        jumboMode = false
        maxProcessCount 4
        javaMaxHeapSize "6g"
    }
}

gradle.properties

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx8192M

พีซีของฉัน:

  • ซีพียู Intel (R) Pentium (R) CPU G2030 @ 3.00GHz, 3000 Mhz, 2 หน่วยประมวลผลหลัก, 2 หน่วยประมวลผลกลาง
  • x64
  • Microsoft Windows 7 Professional
  • (RAM) 16,0 GB

ไฟล์โครงการ
- ทั้งหมดตั้งอยู่ใน HD ในเครื่อง


1

โปรดทำตามขั้นตอนต่อไปนี้

  1. เปิดใช้งานโหมดออฟไลน์: โปรดตรวจสอบด้านล่างหน้าจอการพิมพ์

    https://i.stack.imgur.com/RF9uG.png

  2. เปิดใช้งานการเรียกใช้ทันที: โปรดตรวจสอบด้านล่างหน้าจอการพิมพ์

    https://i.stack.imgur.com/mvHKJ.png

    หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการรันทันทีโปรดไปที่ไซต์นักพัฒนาซอฟต์แวร์ Android


1

คุณสามารถลองเปิดเมนู gradle ที่ด้านขวาของสตูดิโอและรวบรวมเฉพาะโมดูลที่คุณเปลี่ยนจากนั้นเรียกใช้คำสั่งติดตั้ง เมื่อคุณกดเรียกใช้มันจะรวบรวมทุกอย่างโดยไม่คำนึงถึงการเปลี่ยนแปลงใด ๆ ที่คุณอาจทำกับรหัสที่กำลังประกอบ


0

ฉันยังห่างไกลจากการเป็นผู้เชี่ยวชาญใน Gradle แต่สภาพแวดล้อมของฉันมีบรรทัดต่อไปนี้ใน. gradle / init.gradle

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenRepo name: 'libs-repo', url: 'http://guest-vm/artifactory/repo'
        }
    }
}

แต่ฉันไม่รู้ว่าทำไมบรรทัดนั้นอยู่ที่นั่น แต่ฉันลองเปลี่ยนเป็น

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenCentral()
        }
    }
} 

และในที่สุดฉันก็สามารถทำงานได้โดยไม่ต้องสาบานว่าจะเป็น Android Studio & Gradle


วัตถุในกรณีของคุณอาจใช้เป็นแคชไลบรารี คุณติดต่อเซิร์ฟเวอร์ artifactory ซึ่งดูว่ามีไลบรารีหรือไม่ ถ้าใช่มันคืนให้คุณมิฉะนั้นแล้วมันก็ไปเอามาจาก mavencentral แล้วกลับมาหาคุณ
Fabio Marcolini

0

ในกรณีเฉพาะของเราปัญหาเกิดจากการมี ปลั๊กอินretrolambdaซึ่งบังคับให้โครงการและโครงการย่อยทั้งหมดคอมไพล์ใหม่ทุกครั้งที่เราพยายามเปิดตัวแอปพลิเคชันของเราแม้ว่าจะไม่มีการแก้ไขโค้ดในโมดูลหลักของเราก็ตาม

การเอาretrolambaออกซ่อมให้เรา หวังว่าจะช่วยใครซักคน


0

ลองทำสิ่งนี้ก่อน มันเป็นประสบการณ์ส่วนตัวของฉัน

ผมมีปัญหาเดียวกัน. สิ่งที่ฉันทำคือปิดการใช้งานโปรแกรมป้องกันไวรัสอย่างถาวร (Mine is Avast Security 2015) หลังจากปิดการใช้งานโปรแกรมป้องกันไวรัสแล้ว การไล่ระดับสีเสร็จสิ้นเรียบร้อยแล้ว นับจากนี้ภายในไม่กี่วินาทีการไล่ระดับสีจะเสร็จสิ้น (ใช้เวลาเพียง 5-10 วินาที)


0

สวัสดีฉันรู้ว่านี่เป็นคำตอบที่ล่าช้ามาก แต่อาจช่วยคนที่
ฉันใช้

compile 'com.android.support:support-v4:23.1.1'

ในแอปของฉัน Gradle พึ่งพา
แต่หนึ่งในห้องสมุดของฉันมันเป็น

 compile 'com.android.support:support-v4:23.0.1'

หลังจากเปลี่ยนทั้งหมดเป็นรุ่นล่าสุดปัญหาของฉันแก้ไขได้


0

การทำตามขั้นตอนจะทำให้เร็วขึ้น 10 เท่าและลดระยะเวลาการสร้าง 90%

ขั้นแรกสร้างไฟล์ชื่อ gradle.properties ในไดเรกทอรีต่อไปนี้:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

เพิ่มบรรทัดนี้ในไฟล์:

org.gradle.daemon=true
org.gradle.parallel=true

และตรวจสอบตัวเลือกนี้ใน Android Studio

ป้อนคำอธิบายรูปภาพที่นี่



0

เล็กน้อยเปลี่ยนแปลง (กับ XML resoruce) ยังคงใช้เวลา10 นาที ตามที่@rivareกล่าวไว้ในคำตอบของเขาการสร้างบรรทัดคำสั่งจะเร็วขึ้นกว่าเดิม (ใช้เวลาถึง15 วินาที )
นี่คือขั้นตอนบางขั้นตอนในการสร้างบิวทิลเล็กน้อยจากบรรทัดคำสั่งสำหรับ Windows

  1. ไปยังรากโครงการของคุณ (ที่ gradlew.bat เป็น):

    cd c: \ android \ MaskActivity

  2. ดำเนินการสร้าง :

    รวมตัวกัน

  3. ถอนการติดตั้ง apk จากโทรศัพท์โดยตรง (ลากเพื่อถอนการติดตั้ง)

  4. เมื่อการสร้างเสร็จสิ้นให้ฆ่ากระบวนการ java ขนาดใหญ่โดยใช้ Windows Task Manager

หรือถ้าคุณมีเครื่องมือยูนิกซ์ในเครื่อง Windows ของคุณ:

ps

จะแสดง "pid":

kill -9 <pid>
  1. ตอนนี้ติดตั้ง apk ของคุณ:

    adb -d ติดตั้ง C: \ Android \ MaskActivity \ app \ build \ outputs \ apk \ app-debug.apk



0

เมื่อต้องการเรียกใช้ Android สภาพแวดล้อมบนเครื่องกำหนดค่าต่ำ

  1. ปิดแท็บเว็บที่ไม่จำเป็นในเบราว์เซอร์
  2. สำหรับผู้ใช้ Antivirus ให้แยกโฟลเดอร์บิลด์ที่สร้างขึ้นโดยอัตโนมัติ
  3. Android studio มีฮีปเริ่มต้นที่ 1.2 Gb สามารถลดลงเหลือ 512 MB วิธีใช้> แก้ไขตัวเลือก VM ที่กำหนดเอง studio.vmoptions -Xmx512m การวางเลเยอร์การแสดงจะเร็วขึ้น

  4. สำหรับ Gradle หนึ่งในองค์ประกอบหลักใน Android studio Mkae แน่นอนว่าตอนนี้ 3.0beta เป็นรุ่นล่าสุด

เคล็ดลับด้านล่างอาจส่งผลต่อคุณภาพของรหัสดังนั้นโปรดใช้ด้วยความระมัดระวัง:

  1. สตูดิโอมีโหมดประหยัดพลังงานเมื่อเปิดใช้งานมันจะปิดการทำงานของพื้นหลังที่ไม่เป็นไปตามข้อกำหนดรหัสบ่นและอื่น ๆ

  2. คุณสามารถเรียกใช้ lintcheck ด้วยตนเองเมื่อต้องการ. /grww ผ้าสำลี

  3. ส่วนใหญ่ใช้อีมูเลเตอร์ Android โดยเฉลี่ยจะใช้ RAM 2 GB ดังนั้นหากเป็นไปได้ให้ใช้อุปกรณ์ Android จริงซึ่งจะช่วยลดการใช้ทรัพยากรของคุณบนคอมพิวเตอร์ของคุณ หรือคุณสามารถลด RAM ของตัวจำลองและจะลดปริมาณการใช้หน่วยความจำเสมือนบนคอมพิวเตอร์ของคุณโดยอัตโนมัติ คุณสามารถค้นหาได้ในการกำหนดค่าอุปกรณ์เสมือนและการตั้งค่าล่วงหน้า

  4. โหมด Gradle ออฟไลน์เป็นคุณสมบัติสำหรับผู้ใช้ที่ จำกัด แบนด์วิดท์เพื่อปิดการดาวน์โหลดการพึ่งพาบิลด์ มันจะลดการทำงานเบื้องหลังที่จะช่วยเพิ่มประสิทธิภาพของ Android studio

  5. สตูดิโอ Android มีการเพิ่มประสิทธิภาพเพื่อรวบรวมหลายโมดูลในแบบคู่ขนาน สำหรับเครื่องที่มี RAM ต่ำคุณสมบัตินี้อาจส่งผลเสียต่อประสิทธิภาพการทำงาน คุณสามารถปิดการใช้งานได้ในกล่องโต้ตอบการตั้งค่าคอมไพเลอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.