Mastering Gradle สำหรับ Android: งาน Gradle และ Kotlin

ผู้เขียน: Lewis Jackson
วันที่สร้าง: 11 พฤษภาคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
Creating a Gradle / Kotlin Project - Example 1
วิดีโอ: Creating a Gradle / Kotlin Project - Example 1

เนื้อหา


แทนที่จะเป็น Java, XML หรือ Kotlin ไฟล์สร้าง Gradle เหล่านี้จะใช้ภาษาเฉพาะของโดเมน Groovy (DSL) หากคุณไม่คุ้นเคยกับ Groovy เราจะทำการตรวจสอบไฟล์ Gradle build แต่ละบรรทัดเหล่านี้ดังนั้นในตอนท้ายของบทความนี้คุณจะสามารถอ่านและเขียนโค้ด Groovy ได้ง่าย

Gradle มุ่งหวังที่จะทำให้ชีวิตของคุณง่ายขึ้นโดยการตั้งค่าเริ่มต้นที่คุณสามารถใช้กับการกำหนดค่าด้วยตนเองขั้นต่ำ - เมื่อคุณพร้อมที่จะสร้างโครงการของคุณเพียงกดปุ่ม“ Run” ของ Android Studio และ Gradle จะเริ่มกระบวนการสร้าง สำหรับคุณ.

แม้จะมีวิธี "แบบแผนในการกำหนดค่า" ของ Gradle หากการตั้งค่าเริ่มต้นไม่ตรงกับความต้องการของคุณคุณสามารถปรับแต่งกำหนดค่าและขยายกระบวนการสร้างและปรับแต่งการตั้งค่า Gradle เพื่อทำงานที่เฉพาะเจาะจง

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


สำรวจไฟล์สร้าง Gradle

ทุกครั้งที่คุณสร้างโครงการ Android Studio จะสร้างคอลเลคชั่น Gradle build ที่เหมือนกัน แม้ว่าคุณจะนำเข้าโครงการที่มีอยู่ลงใน Android Studio ก็จะเป็นเช่นนั้น ยังคง สร้างไฟล์ Gradle ที่เหมือนกันเหล่านี้และเพิ่มลงในโครงการของคุณ

เพื่อเริ่มทำความเข้าใจกับ Gradle และไวยากรณ์ Groovy ให้ดียิ่งขึ้นลองดูทีละบรรทัดของไฟล์ build ของ Gradle ของ Android

1. settings.gradle

ไฟล์ settings.gradle เป็นที่ที่คุณจะกำหนดโมดูลทั้งหมดของแอปพลิเคชันตามชื่อโดยใช้คำหลัก“ รวม” ตัวอย่างเช่นหากคุณมีโครงการที่ประกอบด้วย“ แอป” และ“ secondModule” ไฟล์ settings.gradle ของคุณจะมีลักษณะดังนี้:

รวมถึง: app,: secondmodule rootProject.name = MyProject

ไฟล์นี้อาจยาวกว่านี้มากขึ้นอยู่กับขนาดโครงการของคุณ

ในระหว่างกระบวนการสร้าง Gradle จะตรวจสอบเนื้อหาของไฟล์ settings.gradle ของโครงการและระบุโมดูลทั้งหมดที่จำเป็นต้องมีในกระบวนการสร้าง

2. build.gradle (ระดับโครงการ)

ไฟล์ build.gradle ระดับโครงการจะอยู่ในไดเรกทอรีรากของโครงการและมีการตั้งค่าที่จะนำไปใช้ ทั้งหมด โมดูลของคุณ (เรียกอีกอย่างว่า "โครงการ" โดย Gradle)


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

ไฟล์ build.gradle ระดับโครงการโดยทั่วไปจะมีลักษณะดังนี้:

buildscript {ที่เก็บ {google () jcenter ()} การพึ่งพา {classpath com.android.tools.build:gradle:3.5.0-alpha06 // หมายเหตุ: อย่าวางแอปพลิเคชันของคุณที่นี่ พวกมันอยู่ใน // ในไฟล์ build.gradle แต่ละโมดูล}} allprojects {ที่เก็บ {google () jcenter ()}} งานทำความสะอาด (ประเภท: ลบ) {ลบ rootProject.buildDir}

ไฟล์ build.gradle ระดับโครงการนี้แบ่งออกเป็นบล็อกต่อไปนี้:

  • Buildscript สิ่งนี้มีการตั้งค่าที่จำเป็นสำหรับการสร้าง
  • คลัง Gradle รับผิดชอบในการค้นหาที่อยู่อาศัยของโครงการและทำให้พวกเขามีอยู่ในงานสร้างของคุณ อย่างไรก็ตามไม่ใช่การพึ่งพาทั้งหมดมาจากแหล่งเก็บข้อมูลเดียวกันดังนั้นคุณจะต้องกำหนดที่เก็บข้อมูลทั้งหมดที่ Gradle ควรทำการค้นหาเพื่อดึงการอ้างอิงของโครงการของคุณ
  • การอ้างอิง ส่วนนี้มีการพึ่งพาปลั๊กอินของคุณซึ่งจะถูกดาวน์โหลดและเก็บไว้ในแคชท้องถิ่นของคุณ คุณควร ไม่ กำหนดการพึ่งพาโมดูลใด ๆ ภายในบล็อกนี้
  • Allprojects ที่นี่คุณจะกำหนดที่เก็บข้อมูลที่ควรใช้งาน ทั้งหมด ของโมดูลโครงการของคุณ

3. build.gradle (ระดับโมดูล)

นี่คือไฟล์ build.gradle ระดับโมดูลซึ่งมีอยู่ในทุกโมดูลตลอดทั้งโครงการของคุณ หากโครงการ Android ของคุณประกอบด้วยหลายโมดูลก็จะประกอบด้วยไฟล์ build.gradle ระดับโมดูลหลายรายการ

ไฟล์ build.gradle ระดับโมดูลแต่ละไฟล์มีชื่อแพคเกจของคุณชื่อรุ่นและรหัสเวอร์ชันรวมทั้ง SDK ขั้นต่ำและเป้าหมายสำหรับโมดูลนี้โดยเฉพาะ

ไฟล์ build.gradle ระดับโมดูลยังสามารถมีชุดคำสั่งและการอ้างอิงที่เป็นเอกลักษณ์ของตัวเอง ตัวอย่างเช่นหากคุณกำลังสร้างแอปพลิเคชันที่มีส่วนประกอบ Wear OS โครงการ Android Studio ของคุณจะประกอบด้วยโมดูลสมาร์ทโฟน / แท็บเล็ตที่แยกต่างหากและโมดูล Wear - เนื่องจากพวกเขากำลังกำหนดเป้าหมายอุปกรณ์ที่แตกต่างกันโดยสิ้นเชิง อ้างอิง!

ไฟล์ build.gradle ระดับโมดูลพื้นฐานโดยทั่วไปจะมีลักษณะดังนี้:

ใช้ปลั๊กอิน: com.android.application แอนดรอยด์ {compileSdkVersion 28 defaultConfig {applicationId "com.jessicathornsby.speechtotunner.speechtotext" minSdkVersion 23 targetSdkVersion 28 versionCode 1 versionName "1.0" ทดสอบเครื่องมือการเรียกใช้ getDefaultProguardFile (proguard-android-optimization.txt), proguard-rules.pro}}} การพึ่งพา {การนำไปใช้งาน fileTree (dir: libs, รวม:) การใช้งาน androidx.appcompat: แอปคอมแพค: 1.0.2 การใช้งาน androidx.constraintlayout: 3 testimmationation junit: junit: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: เอสเพรสโซ่ -core: 3.1.1}

มาดูแต่ละส่วนเหล่านี้อย่างละเอียด:

  • ใช้ปลั๊กอิน นี่คือรายการของปลั๊กอินที่จำเป็นในการสร้างโมดูลนี้ ปลั๊กอิน com.android.application มีความจำเป็นในการตั้งค่ากระบวนการสร้างเฉพาะสำหรับ Android ดังนั้นสิ่งนี้จะถูกเพิ่มโดยอัตโนมัติ
  • หุ่นยนต์ ที่นี่คุณควรวางตัวเลือกเฉพาะแพลตฟอร์มของโมดูลทั้งหมด
  • compileSdkVersion นี่คือระดับ API ที่โมดูลนี้รวบรวม คุณไม่สามารถใช้คุณสมบัติจาก API สูงกว่าค่านี้
  • buildToolsVersion สิ่งนี้บ่งชี้เวอร์ชันของคอมไพเลอร์ ใน Gradle 3.0.0 และสูงกว่า buildToolsVersion เป็นทางเลือก หากคุณไม่ได้ระบุค่า buildToolsVersion Android Studio จะใช้ค่าเริ่มต้นเป็นเครื่องมือสร้างรุ่นล่าสุด
  • defaultConfig ตัวเลือกนี้มีตัวเลือกที่จะนำไปใช้กับเวอร์ชันบิลด์ของแอพทั้งหมดเช่น debug และ release builds
  • applicationId นี่คือตัวระบุที่ไม่ซ้ำกันของแอปพลิเคชันของคุณ
  • minSdkVersion พารามิเตอร์นี้กำหนดระดับ API ต่ำสุดที่โมดูลนี้รองรับ
  • targetSdkVersion นี่คือระดับ API สูงสุดที่แอปพลิเคชันของคุณได้รับการทดสอบ ตามหลักแล้วคุณควรทดสอบแอปพลิเคชันของคุณโดยใช้ API ล่าสุดซึ่งหมายความว่าค่า targetSdkVersion จะเท่ากับค่า compileSdkVersion เสมอ
  • versionCode นี่เป็นค่าตัวเลขสำหรับเวอร์ชันแอปพลิเคชันของคุณ
  • versionName นี่คือสตริงที่ใช้งานง่ายซึ่งแสดงถึงเวอร์ชันแอปพลิเคชันของคุณ
  • buildTypes โดยค่าเริ่มต้นแล้ว Android รองรับสองประเภทบิลด์: ดีบั๊กและปล่อย คุณสามารถใช้บล็อก“ debug” และ“ release” เพื่อระบุการตั้งค่าเฉพาะประเภทแอปพลิเคชันของคุณ
  • การอ้างอิง นี่คือที่ที่คุณจะกำหนดห้องสมุดใด ๆ ที่โมดูลนี้ขึ้นอยู่กับ

ประกาศการขึ้นต่อกันของโครงการของคุณ: ห้องสมุดท้องถิ่น

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

หากต้องการประกาศการขึ้นต่อกันของไฟล์ JAR ในพื้นที่คุณจะต้องเพิ่ม JAR นั้นในไดเรกทอรี“ libs” ของโครงการ

จากนั้นคุณสามารถแก้ไขไฟล์ build.gradle ระดับโมดูลเพื่อประกาศการขึ้นต่อกันของไฟล์นี้ ตัวอย่างเช่นที่นี่เราจะประกาศการขึ้นต่อกันของ "mylibrary" JAR

ไฟล์การนำไปใช้งาน (libs / mylibrary.jar)

อีกทางหนึ่งหากโฟลเดอร์“ libs” ของคุณมี JAR หลายตัวอาจเป็นการง่ายกว่าที่จะระบุว่าโครงการของคุณขึ้นอยู่กับไฟล์ทั้งหมดที่อยู่ในโฟลเดอร์“ libs” เช่น:

การใช้งาน fileTree (dir: libs, include:)

เพิ่มการพึ่งพาการสร้าง: ที่เก็บระยะไกล

หากห้องสมุดตั้งอยู่ในพื้นที่เก็บข้อมูลระยะไกลคุณจะต้องทำตามขั้นตอนต่อไปนี้:

  • กำหนดที่เก็บที่ซึ่งการอ้างอิงนี้ตั้งอยู่
  • ประกาศการพึ่งพาของแต่ละบุคคล

กำลังเชื่อมต่อกับที่เก็บข้อมูลระยะไกล

ขั้นตอนแรกคือบอก Gradle ว่าพื้นที่เก็บข้อมูลใด (หรือที่เก็บ) ที่ต้องตรวจสอบเพื่อดึงการอ้างอิงทั้งหมดของโครงการของคุณ ตัวอย่างเช่น:

ที่เก็บ {google () jcenter ()}}

ที่นี่บรรทัด“ jcenter ()” ช่วยให้มั่นใจได้ว่า Gradle จะตรวจสอบที่เก็บ JCenter ซึ่งเป็นที่เก็บข้อมูลสาธารณะฟรีซึ่งโฮสต์ที่ bintray

อีกทางหนึ่งหากคุณหรือองค์กรของคุณดูแลที่เก็บข้อมูลส่วนบุคคลคุณควรเพิ่ม URL ของที่เก็บนี้ในการประกาศการขึ้นต่อกันของคุณ หากพื้นที่เก็บข้อมูลได้รับการป้องกันด้วยรหัสผ่านคุณจะต้องให้ข้อมูลการเข้าสู่ระบบเช่น:

ที่เก็บ {mavenCentral () maven {// กำหนดค่า URL เป้าหมาย // url "http://repo.mycompany.com/myprivaterepo"} maven {หนังสือรับรอง {ชื่อผู้ใช้ myUsername รหัสผ่าน myPassword} url "http://repo.mycompany.com / myprivaterepo "}

หากมีการอ้างอิงอยู่ภายในที่เก็บข้อมูลหลายแห่ง Gradle จะเลือกเวอร์ชัน "ดีที่สุด" ของการขึ้นต่อกันนี้ขึ้นอยู่กับปัจจัยต่าง ๆ เช่นอายุของที่เก็บแต่ละอันและรุ่นคงที่

ประกาศการพึ่งพาระยะไกล

ขั้นตอนต่อไปคือการประกาศการพึ่งพาในไฟล์ build.gradle ระดับโมดูลของคุณ คุณเพิ่มข้อมูลนี้ลงในบล็อก“ การอ้างอิง” โดยใช้สิ่งใดสิ่งหนึ่งต่อไปนี้:

  • การดำเนินงาน นี่คือการพึ่งพาปกติที่คุณต้องการเมื่อใดก็ตามที่คุณสร้างโครงการของคุณ การพึ่งพา“ การนำไปปฏิบัติ” จะมีอยู่ทั่ว ทั้งหมด งานสร้างของคุณ
  • Testimplementation นี่คือการอ้างอิงที่จำเป็นในการรวบรวมแหล่งทดสอบของแอปพลิเคชันของคุณและเรียกใช้การทดสอบที่ใช้ JVM เมื่อคุณทำเครื่องหมายการพึ่งพาว่าเป็น "การทดสอบ" การทำ Gradle จะรู้ว่าไม่จำเป็นต้องเรียกใช้งานสำหรับการพึ่งพานี้ระหว่างการสร้างปกติซึ่งจะช่วยลดเวลาในการสร้าง
  • Androidtestimplementation นี่คือการพึ่งพาที่จำเป็นเมื่อเรียกใช้การทดสอบบนอุปกรณ์ตัวอย่างเช่นเฟรมเวิร์ก Espresso เป็น“ Androidtestimplementation ทั่วไป”

เรากำหนดการพึ่งพาระยะไกลโดยใช้หนึ่งในคำหลักข้างต้นแล้วตามด้วยแอตทริบิวต์กลุ่มชื่อและเวอร์ชันของการอ้างอิง:

การพึ่งพา {การนำไปใช้งาน fileTree (dir: libs, รวมถึง) การนำไปใช้งาน androidx.appcompat: appcompat: 1.0.2 การนำไปใช้งาน androidx.constraintlayout: constraintlayout: 1.1.3 ทดสอบการใช้งานมิถุนายน: มิถุนายน: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1}

การสร้าง APK หลายตัว: วิธีสร้างชุดตัวเลือกการสร้าง

บางครั้งคุณอาจต้องสร้างแอปพลิเคชันหลายเวอร์ชัน ตัวอย่างเช่นคุณอาจต้องการปล่อยรุ่นฟรีและรุ่นที่จ่ายเงินซึ่งมีคุณสมบัติเพิ่มเติมบางอย่าง

นี่เป็นงานสร้างที่ Gradle สามารถช่วยคุณได้ดังนั้นมาดูกันว่าคุณจะแก้ไขกระบวนการสร้างเพื่อสร้าง APK หลายรายการจากโครงการเดียวได้อย่างไร:

  • เปิดไฟล์ strings.xml ของคุณและลบชื่อแอปพลิเคชันดั้งเดิมของคุณออก
  • ถัดไปกำหนดชื่อของแต่ละรสผลิตภัณฑ์ที่คุณต้องการสร้าง ในตัวอย่างนี้ฉันกำลังใช้:

แอพฟรีของฉัน แอพที่ฉันต้องจ่าย

  • เปิดไฟล์ AndroidManifest.xml ของคุณและแทนที่ android: label =” @ string / app_name” ด้วย:

หุ่นยนต์: ฉลาก = "$ {appName}"

  • เปิดไฟล์ build.gradle ระดับโมดูลของคุณและเพิ่มสิ่งต่อไปนี้ลงในบล็อก“ android”:

flavorDimensions "โหมด" productFlavors {ฟรี {มิติ "โหมด" applicationIdSuffix ".free" manifestPlaceholders =} จ่าย {มิติ "โหมด" applicationIdSuffix ".paid" manifestPlaceholders =}}}

มาวิเคราะห์สิ่งที่เกิดขึ้นที่นี่:

  • flavorDimensions ปลั๊กอิน Android สร้างบิวด์พันธุ์โดยรวมรสชาติจากขนาดที่แตกต่างกัน ที่นี่เรากำลังสร้างมิติรสชาติซึ่งประกอบด้วยแอปของเรารุ่น "ฟรี" และ "จ่าย" ตามรหัสด้านบน Gradle จะสร้างสายพันธุ์สร้างสี่แบบ: paidDebug, paidRelease, freeDebug และ freeRelease
  • productFlavors สิ่งนี้ระบุรายการของรสชาติและการตั้งค่าของพวกเขาซึ่งในรหัสด้านบนคือ "จ่าย" และ "ฟรี"
  • ฟรี / จ่ายเงิน นี่คือชื่อของสองรสชาติผลิตภัณฑ์ของเรา
  • มิติ. เราจำเป็นต้องระบุค่าพารามิเตอร์ "ส่วนข้อมูล"; ในตัวอย่างนี้ฉันใช้“ โหมด”
  • applicationIdSuffix เนื่องจากเราต้องการสร้างแอพของเราหลายรุ่นเราจึงต้องระบุรหัสแอพที่ไม่ซ้ำกันแต่ละ APK
  • manifestPlaceholders แต่ละโครงการมีไฟล์ Manifest ไฟล์เดียวที่มีข้อมูลสำคัญเกี่ยวกับการกำหนดค่าโครงการของคุณ เมื่อสร้างชุดตัวเลือกสร้างหลายรายการโดยทั่วไปคุณจะต้องแก้ไขคุณสมบัติของรายการเหล่านี้ในเวลาสร้าง คุณสามารถใช้ไฟล์ build แบบ Gradle เพื่อระบุรายการ Manifest ที่ไม่ซ้ำกันสำหรับแต่ละรุ่นบิลด์ซึ่งจะถูกแทรกลงใน Manifest ของคุณ ณ เวลาบิลด์ ในรหัสข้างต้นเรากำลังแก้ไขค่า“ appName” ขึ้นอยู่กับว่า Gradle กำลังสร้างแอปของเรารุ่นที่ฟรีหรือจ่ายเงิน

การสร้างงาน Gradle ที่กำหนดเอง

บางครั้งคุณอาจต้องกำหนดกระบวนการสร้างเองโดยใช้ Gradle งาน.

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

ในส่วนนี้เราจะสร้างงาน Gradle ที่กำหนดเองซึ่งจะวนซ้ำไปตามรุ่นย่อยทั้งหมดของโครงการของเรา (PaidDebug, PaidRelease, freeDebug และ freeRelease) สร้างวันที่และเวลาจากนั้นผนวกข้อมูลนี้กับ APK ที่สร้างขึ้นแต่ละรายการ

เปิดไฟล์ build.gradle ระดับโมดูลของคุณและเพิ่มสิ่งต่อไปนี้:

งาน addDateAndTime () {// ย้ำผ่านตัวแปรสร้างเอาท์พุททั้งหมด // android.applicationVariants.all {แปรปรวน -> // ซ้ำผ่านทุกไฟล์ APK // variant.outputs.all {เอาท์ -> // สร้างตัวอย่างของ วันที่และเวลาปัจจุบันในรูปแบบที่ระบุ // def dateAndTime = new Date (). รูปแบบ ("yyyy-MM-dd: HH-mm") // ผนวกข้อมูลนี้เข้ากับชื่อไฟล์ของ APK // def fileName = ตัวแปร ชื่อ + "_" + dateAndTime + ".apk" output.outputFileName = fileName}}}

ต่อไปเราต้องบอก Gradle เมื่อ มันควรดำเนินการงานนี้ ในระหว่างการสร้าง Gradle ระบุตัวตนทุกอย่างที่จำเป็นในการดาวน์โหลดและงานทั้งหมดที่ต้องดำเนินการและจัดเรียงไว้ใน Directed Acyclic Graph (DAG) Gradle จะดำเนินงานทั้งหมดเหล่านี้ตามลำดับที่กำหนดไว้ใน DAG

สำหรับแอปของฉันฉันจะใช้วิธี“ whenReady” ซึ่งรับรองว่างานของเราจะถูกเรียกใช้เมื่อ DAG ได้รับการเติมข้อมูลแล้วและ Gradle ก็พร้อมที่จะเริ่มดำเนินการงานของมันแล้ว

เพิ่มสิ่งต่อไปนี้ในไฟล์ build.gradle ระดับโมดูลของคุณ:

// ดำเนินการงานนี้ // gradle.taskGraph.whenReady {addDateAndTime}

มาทำงานที่กำหนดเองของเรากันเถอะ และ รหัสชุดตัวเลือกการสร้างของเราไปยังการทดสอบโดยการสร้างโครงการนี้โดยใช้คำสั่ง Gradle

สร้างโครงการของคุณด้วยกระดาษห่อหุ้ม Gradle

คุณใช้คำสั่ง Gradle โดยใช้ Gradle wrapper (“ gradlew”) สคริปต์นี้เป็นวิธีที่ต้องการในการเริ่มต้นการสร้าง Gradle เนื่องจากทำให้การดำเนินการสร้างเป็นอิสระจาก Gradle รุ่นของคุณ การแยกนี้จะมีประโยชน์หากคุณกำลังร่วมมือกับผู้อื่นซึ่งอาจไม่จำเป็นต้องติดตั้ง Gradle รุ่นเดียวกัน

เมื่อออกคำสั่ง Gradle wrapper คุณจะใช้“ gradlew” สำหรับระบบปฏิบัติการแบบ Unix เช่น macOS และ“ gradlew.bat” สำหรับ Windows ฉันมี Mac ดังนั้นฉันจะใช้คำสั่ง“ gradlew”

คุณสามารถออกคำสั่ง Gradle จากภายใน Android Studio:

  • ในแถบเครื่องมือ Android Studio ให้เลือก“ ดู> เครื่องมือ Windows> เทอร์มินัล” ซึ่งจะเปิดแผงเทอร์มินัลที่ด้านล่างของหน้าต่าง IDE
  • ป้อนคำสั่งต่อไปนี้ลงในเทอร์มินัล:

./gradlew งานสร้าง

Android Studio ควรมีลักษณะดังนี้:

  • กดปุ่ม "Enter" บนแป้นพิมพ์ของคุณ Gradle จะสร้างโครงการของคุณ

Gradle จัดเก็บ APK ที่สร้างขึ้นทั้งหมดในไดเรกทอรีแอป / build / outputs / apk ของโครงการดังนั้นไปที่ไดเรกทอรีนี้ โฟลเดอร์“ APK” ควรมีหลายโฟลเดอร์และโฟลเดอร์ย่อย ตรวจสอบให้แน่ใจว่า Gradle ได้สร้าง APK สำหรับแต่ละรุ่นของการสร้างและข้อมูลวันที่และเวลาที่ถูกต้องถูกเพิ่มลงในแต่ละไฟล์

มีงาน Gradle อื่น ๆ อะไรอีกบ้าง?

นอกจากงานที่กำหนดเองที่คุณอาจสร้างแล้ว Gradle ยังสนับสนุนรายการงานที่กำหนดไว้ล่วงหน้านอกกรอบ หากคุณอยากรู้อยากเห็นว่ามีงานอะไรให้ทำดังนี้:

  • เปิดหน้าต่างเทอร์มินัลของ Android Studio หากยังไม่ได้เปิด (โดยเลือก“ ดู> เครื่องมือ Windows> เทอร์มินัล” จากแถบเครื่องมือ Android Studio)
  • พิมพ์สิ่งต่อไปนี้ลงในเทอร์มินัล:

./gradlew -q งาน

  • กดปุ่ม "Enter" บนแป้นพิมพ์ของคุณ

ตอนนี้งาน "task" จะทำงานและหลังจากนั้นครู่หนึ่งเทอร์มินัลจะแสดงรายการของงานทั้งหมดที่มีให้สำหรับโครงการนี้พร้อมคำอธิบายสั้น ๆ ของแต่ละงาน

การใช้ประโยชน์จาก Gradle: การเพิ่มปลั๊กอิน

Gradle จัดส่งมาพร้อมกับปลั๊กอินจำนวนหนึ่งที่ติดตั้งไว้ล่วงหน้า แต่คุณสามารถขยาย Gradle ได้โดยเพิ่มปลั๊กอินใหม่ ปลั๊กอินเหล่านี้ทำให้งานใหม่พร้อมใช้งานสำหรับโครงการ Android ของคุณตัวอย่างเช่นปลั๊กอิน Java มีงานที่อนุญาตให้คุณรวบรวมซอร์สโค้ด Java รันการทดสอบหน่วยและสร้างไฟล์ JAR เช่น“ compileJava,”“ compileText,”“ jar,” “ javadoc” และ“ สะอาด”

ในการใช้ปลั๊กอินให้เพิ่มการประกาศ“ ใช้ปลั๊กอิน” ไปยังไฟล์ build.gradle ระดับโมดูลของคุณตามด้วยชื่อของปลั๊กอิน ตัวอย่างเช่นที่นี่เรากำลังใช้ปลั๊กอิน Java:

ใช้ปลั๊กอิน: java

หากคุณอยากรู้ว่ามีปลั๊กอินอะไรบ้างให้ดูที่การค้นหาปลั๊กอินของ Gradle ซึ่งมีการลงทะเบียนของปลั๊กอิน Gradle ที่ครอบคลุม

The Gradle Kotlin DSL

โดยค่าเริ่มต้นคุณจะเขียนสคริปต์การสร้าง Gradle โดยใช้ Groovy DSL แต่หากคุณเป็นหนึ่งในนักพัฒนาจำนวนมากที่ใช้ Kotlin สำหรับการพัฒนา Android คุณอาจต้องการเขียนสคริปต์สร้างของคุณใน Kotlin แทน

ซึ่งแตกต่างจาก Groovy Kotlin เป็นภาษาการเขียนโปรแกรมแบบคงที่ดังนั้นหากคุณทำการสลับไฟล์บิลด์ของคุณจะเข้ากันได้กับคุณสมบัติการเติมข้อความอัตโนมัติและการนำทางของซอร์สโค้ดของ Android Studio นอกจากนี้การย้ายจาก Groovy ไปยัง Kotlin หมายความว่าคุณจะใช้ภาษาการเขียนโปรแกรมเดียวกันในโครงการของคุณซึ่งสามารถทำให้การพัฒนาตรงไปตรงมามากขึ้นโดยเฉพาะถ้าคุณไม่คุ้นเคยกับ Groovy มากเกินไป!

หากคุณต้องการเริ่มเขียนตรรกะการสร้างของคุณใน Kotlin คุณจะต้องตั้งค่า Gradle Kotlin DSL และทำตามคำแนะนำในคู่มือการโยกย้าย

ห่อ

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

คุณได้ขยาย Gradle เพื่อทำให้ส่วนอื่น ๆ ของกระบวนการสร้าง Android เป็นอัตโนมัติหรือไม่ แจ้งให้เราทราบในความคิดเห็นด้านล่าง!

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

หูฟัง MW65 มีน้ำหนักเพียง 250 กรัมและมีการผสานรวมกับ Google Aitantวันนี้ Mater & Dynamic บริษัท เครื่องเสียงระดับพรีเมี่ยมเปิดตัวหูฟังขจัดเสียงรบกวนตัวแรก: MW65 หูฟังแบบครอบหูมีคุณสมบัติผสานรวมกั...

บทความที่น่าสนใจ