ภาพรวมโปรเจ็กต์

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

เมื่อคุณเริ่มโปรเจ็กต์ใหม่ Android Studio จะสร้าง สำหรับไฟล์ทั้งหมดของคุณ และทำให้สามารถดูได้ใน หน้าต่างโปรเจ็กต์ใน Android Studio หากต้องการเปิดหน้าต่าง ให้เลือก ดู หน้าต่างเครื่องมือ > โปรเจ็กต์

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

โมดูล

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

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

หากต้องการเพิ่มโมดูลใหม่ในโครงการ ให้คลิกไฟล์ ใหม่ > โมดูลใหม่

Android Studio มีโมดูลที่แตกต่างกัน 2-3 ประเภท ดังนี้

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

Android Studio มีโมดูลแอปประเภทต่อไปนี้

  • โทรศัพท์และแท็บเล็ต
  • ยานยนต์
  • Wear OS
  • โทรทัศน์
  • ตัวสร้างโปรไฟล์พื้นฐาน
  • เปรียบเทียบ

แต่ละโมดูลจะมีไฟล์ที่จำเป็น และเทมเพลตโค้ดบางส่วนที่ ที่เหมาะสมกับแอป หรืออุปกรณ์ประเภทนั้นๆ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มโมดูล โปรดอ่าน เพิ่มโมดูลสำหรับอุปกรณ์ใหม่

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

Android Studio มีโมดูลฟีเจอร์ประเภทต่อไปนี้

  • โมดูลฟีเจอร์แบบไดนามิก
  • โมดูลคลังฟีเจอร์แบบไดนามิกทันใจ

ดูข้อมูลเพิ่มเติมได้ที่การนำส่งฟีเจอร์ Play

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

Android Studio มีตัวเลือกในหน้าต่างสร้างโมดูลใหม่ โมดูลไลบรารีประเภทต่อไปนี้

  • ไลบรารี Android: ประกอบด้วยไฟล์ทุกประเภทที่รองรับ ในโปรเจ็กต์ Android ยกเว้นโค้ด C++ แบบเนทีฟ ซึ่งรวมถึงซอร์สโค้ด Java และ Kotlin ทรัพยากร และไฟล์ Manifest ผลลัพธ์ของบิลด์คือไฟล์ Android Archive (AAR) ที่คุณเพิ่มเป็น ทรัพยากร Dependency สำหรับโมดูลแอป Android ของคุณ
  • ไลบรารีเนทีฟของ Android: มีไฟล์ทุกประเภทที่รองรับ ในโครงการ Android ซึ่งคล้ายกับไลบรารี Android อย่างไรก็ตาม ไลบรารีที่มาพร้อมเครื่อง Android สามารถมีซอร์สโค้ด C++ ดั้งเดิมได้ ผลลัพธ์ของบิลด์คือไฟล์ Android Archive (AAR) ที่คุณ เพิ่มเป็นทรัพยากร Dependency สำหรับโมดูลแอป Android
  • ไลบรารี Java หรือ Kotlin: มีเฉพาะไฟล์ต้นฉบับ Kotlin หรือ Java ผลลัพธ์การสร้างคือไฟล์ Java Archive (JAR) ที่คุณเพิ่มเป็น Dependency สำหรับโมดูลแอป Android หรือโปรเจ็กต์ Kotlin หรือ Java อื่นๆ ได้

บางครั้งโมดูลจะเรียกว่าโปรเจ็กต์ย่อย เนื่องจาก Gradle ยังหมายถึงโมดูลว่าเป็นโปรเจ็กต์อีกด้วย

เมื่อสร้างโมดูลไลบรารีและต้องการเพิ่มเป็นทรัพยากร Dependency ให้กับโมดูลแอป Android คุณต้องประกาศดังนี้

Groovy

dependencies {
    implementation project(':my-library-module')
}

Kotlin

dependencies {
    implementation(project(":my-library-module"))
}

ไฟล์โปรเจ็กต์

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

ความแตกต่างเชิงโครงสร้างบางอย่างระหว่างมุมมอง Android และ ในดิสก์คือมุมมองสำหรับ Android

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

ภายในโมดูลแอป Android แต่ละรายการ ไฟล์จะแสดงในกลุ่มต่อไปนี้

ไฟล์ Manifest
มีไฟล์ AndroidManifest.xml
java
มีไฟล์ซอร์สโค้ด Kotlin และ Java ซึ่งคั่นด้วยชื่อแพ็กเกจ รวมถึงโค้ดทดสอบ JUnit
ความละเอียด
มีทรัพยากรทั้งหมดที่ไม่ใช่โค้ด เช่น สตริง UI และ ภาพบิตแมปที่แบ่งออกเป็นไดเรกทอรีย่อยที่เกี่ยวข้อง หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับประเภททรัพยากรที่เป็นไปได้ โปรดดูภาพรวมแหล่งข้อมูลของแอป

มุมมองโปรเจ็กต์

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

คุณจะเห็นไฟล์จำนวนมากเมื่อเลือกมุมมองโครงการ และไดเรกทอรี ซึ่งรวมถึงข้อมูลต่อไปนี้

module-name/
build/
มีเอาต์พุตการสร้าง
libs/
มีห้องสมุดส่วนตัว
src/
มีโค้ดและไฟล์ทรัพยากรทั้งหมดสำหรับโมดูลในสิ่งต่อไปนี้ ไดเรกทอรีย่อย:
androidTest/
มีโค้ดสำหรับการทดสอบการวัดคุมซึ่งทำงานในอุปกรณ์ Android ดูข้อมูลเพิ่มเติมได้ที่ทดสอบใน Android Studio
cpp/
มีโค้ด C หรือ C++ แบบเนทีฟโดยใช้ Java Native Interface (JNI) สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารประกอบเกี่ยวกับ Android NDK
main/
มี "หลัก" ไฟล์ชุดแหล่งที่มา: โค้ดและทรัพยากรของ Android แชร์โดยตัวแปรของบิลด์ทั้งหมด (ไฟล์สำหรับตัวแปรบิลด์อื่นๆ อยู่ในไดเรกทอรีระดับเดียวกัน เช่น src/debug/ สำหรับ ประเภทบิลด์การแก้ไขข้อบกพร่อง):
AndroidManifest.xml
อธิบายลักษณะของแอปพลิเคชันและองค์ประกอบแต่ละอย่างของแอปพลิเคชัน สำหรับข้อมูลเพิ่มเติม โปรดดู ไฟล์ Manifest ของแอป ภาพรวม
java/
มีซอร์สโค้ดของโค้ด Kotlin หรือ Java หรือทั้งสองอย่าง หากแอปมีทั้ง Kotlin และ Java ซอร์สโค้ด
kotlin/
มีเฉพาะแหล่งที่มาของโค้ด Kotlin
res/
มีทรัพยากรของแอปพลิเคชัน เช่น ไฟล์ที่ถอนออกได้และไฟล์สตริง UI สำหรับข้อมูลเพิ่มเติม โปรดดู ทรัพยากรของแอป
assets/
มีไฟล์ที่จะคอมไพล์ลงในไฟล์ APK ตามที่มีอยู่ ตัวอย่างเช่น บริเวณนี้จะเป็นตำแหน่งที่ดีสำหรับพื้นผิวและข้อมูลเกม คุณสามารถ ไปยังไดเรกทอรีนี้ในลักษณะเดียวกับระบบไฟล์ทั่วไป โดยใช้ URI และอ่านไฟล์เป็นสตรีมของไบต์โดยใช้ AssetManager
test/
มีโค้ดสำหรับการทดสอบในเครื่องซึ่งทำงานบน JVM ของโฮสต์
build.gradle หรือ build.gradle.kts (โมดูล)
ส่วนนี้ระบุการกำหนดค่าบิลด์เฉพาะโมดูล build.gradle คือ ชื่อไฟล์ถูกต้อง หากคุณใช้ Groovy เป็นภาษาสคริปต์ของบิลด์ build.gradle.ktsหากใช้สคริปต์ Kotlin
build.gradle หรือ build.gradle.kts (โปรเจ็กต์)
ซึ่งระบุการกำหนดค่าบิลด์ที่ใช้กับโมดูลทั้งหมด build.gradle คือ ชื่อไฟล์ที่ถูกต้องถ้าคุณใช้ Groovy เป็นภาษาสคริปต์ของบิลด์ build.gradle.ktsหากใช้สคริปต์ Kotlin ไฟล์นี้เป็นไฟล์สําคัญของโปรเจ็กต์ ดังนั้นให้เก็บไฟล์นี้ไว้ในระบบควบคุมเวอร์ชันพร้อมกับซอร์สโค้ดอื่นๆ ทั้งหมด

สำหรับข้อมูลเกี่ยวกับไฟล์บิลด์อื่นๆ โปรดดู กำหนดค่าบิลด์

การตั้งค่าโครงสร้างโปรเจ็กต์

หากต้องการเปลี่ยนการตั้งค่าต่างๆ สำหรับโปรเจ็กต์ Android Studio ให้เปิด กล่องโต้ตอบโครงสร้างโครงการโดยคลิก ไฟล์ > โครงสร้างของโครงการ ซึ่งประกอบด้วย ส่วนต่อไปนี้

  • โปรเจ็กต์: ตั้งค่าเวอร์ชันสำหรับ Gradle และ ปลั๊กอิน Android Gradle และชื่อตำแหน่งที่เก็บ
  • ตำแหน่ง SDK: ตั้งค่าตำแหน่งของ JDK, Android SDK และ Android NDK ที่โปรเจ็กต์ของคุณใช้
  • ตัวแปร: ให้คุณแก้ไขตัวแปรที่ใช้ภายในบิลด์ สคริปต์
  • โมดูล: ช่วยให้คุณแก้ไขการกำหนดค่าบิลด์เฉพาะโมดูลได้ ซึ่งรวมถึง SDK เป้าหมายและ SDK ขั้นต่ำ ลายเซ็นแอป และทรัพยากร Dependency ของไลบรารี หน้าการตั้งค่าของแต่ละโมดูลจะแบ่งออกเป็นแท็บต่อไปนี้
    • พร็อพเพอร์ตี้: ระบุเวอร์ชันของ SDK และเครื่องมือสร้างที่จะใช้คอมไพล์โมดูล
    • การเซ็น: ระบุใบรับรองที่จะใช้ ลงนาม แอป
  • ทรัพยากร Dependency: แสดงรายการทรัพยากร Dependency ของไลบรารี ไฟล์ และโมดูลสําหรับโมดูลนี้ คุณเพิ่ม แก้ไข และลบทรัพยากร Dependency ได้ จากแผงนี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ของโมดูล โปรดดู กำหนดค่าตัวแปรของบิลด์

  • เวอร์ชันบิลด์: ให้คุณกำหนดค่าเวอร์ชันและประเภทบิลด์ต่างๆ สำหรับโปรเจ็กต์ของคุณ

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

      ตัวอย่างเช่น คุณอาจกำหนด Flavor 1 รายการที่มี SDK ขั้นต่ำ 21 และ SDK เป้าหมาย 29 และอีก Flavor 1 รายการที่มี SDK ขั้นต่ำ 24 และ SDK เป้าหมาย 33

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