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

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

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

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

โมดูล

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

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

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

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

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

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

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

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

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

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

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

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

หากต้องการเรียนรู้เพิ่มเติม โปรดอ่านเกี่ยวกับ การนำส่งฟีเจอร์ Play

โมดูลคลัง
จัดเตรียมคอนเทนเนอร์สําหรับโค้ดที่นํามาใช้ซ้ำได้ ซึ่งคุณใช้เป็นแหล่งที่มาของโมดูลแอปอื่นๆ หรือนําเข้าไปยังโปรเจ็กต์อื่นๆ ได้ ตามโครงสร้าง โมดูลไลบรารีจะเหมือนกับโมดูลแอป แต่เมื่อสร้างแล้ว โปรแกรมจะสร้างไฟล์ที่เก็บโค้ดแทน 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 คุณต้องประกาศดังนี้

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

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

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

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

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

ภายในโมดูลแอป 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) ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ NDK ของ Android
main/
มีไฟล์ชุดซอร์ส "หลัก" ซึ่งได้แก่ โค้ดและทรัพยากร Android ที่ตัวแปรของบิลด์ทั้งหมดใช้ร่วมกัน (ไฟล์สำหรับตัวแปรของบิลด์อื่นๆ จะอยู่ในไดเรกทอรีย่อย เช่น src/debug/ สำหรับประเภทบิลด์แก้ไขข้อบกพร่อง) ดังนี้
AndroidManifest.xml
อธิบายลักษณะของแอปพลิเคชันและคอมโพเนนต์แต่ละรายการ ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมไฟล์ Manifest ของแอป
java/
มีซอร์สโค้ด Kotlin หรือ Java หรือทั้ง 2 อย่าง หากแอปของคุณมีทั้งซอร์สโค้ด 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 ของโมดูล โปรดดู กำหนดค่าตัวแปรของบิลด์

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

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

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

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