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

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

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

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

โมดูล

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

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

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

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

โมดูลแอป Android

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

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

  • โทรศัพท์และแท็บเล็ต
  • ยานยนต์
  • Wear OS
  • โทรทัศน์

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

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

โมดูลฟีเจอร์
แสดงถึงฟีเจอร์แบบแยกโมดูลของแอปที่ใช้ประโยชน์จากการนำส่งฟีเจอร์ Play ได้ ตัวอย่างเช่น โมดูลฟีเจอร์ช่วยให้คุณมอบฟีเจอร์บางอย่างของแอปให้แก่ผู้ใช้ได้ตามต้องการหรือเป็นประสบการณ์การใช้งาน Instant ผ่าน 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) ที่คุณเพิ่มเป็น การอ้างอิงสำหรับโมดูลแอป Android หรือโปรเจ็กต์ Kotlin หรือ Java อื่นๆ ได้
  • การเปรียบเทียบ > การเปรียบเทียบย่อย: มีไฟล์ที่จำเป็นต่อการวัดประสิทธิภาพของโค้ดและผลลัพธ์การเปรียบเทียบอย่างสม่ำเสมอ โมดูล Microbenchmark มีประโยชน์อย่างยิ่งในการวัดประสิทธิภาพของโค้ดขนาดเล็ก ที่ใช้ซ้ำๆ ดูข้อมูลเพิ่มเติมได้ที่ เกี่ยวกับ Microbenchmark

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

Groovy

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

Kotlin

    dependencies {
        implementation(project(":my-library-module"))
    }
    
โมดูลทดสอบ

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

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

  • เครื่องมือสร้างโปรไฟล์พื้นฐาน: โปรไฟล์พื้นฐานช่วยให้การโต้ตอบของผู้ใช้ เช่น การไปยังส่วนต่างๆ และการเลื่อน เป็นไปอย่างราบรื่นยิ่งขึ้นในครั้งแรกที่เรียกใช้ สร้างโปรไฟล์พื้นฐาน สําหรับเส้นทางของผู้ใช้ที่สําคัญเพื่อปรับปรุงประสิทธิภาพของแอปและประสบการณ์ของผู้ใช้
  • Benchmark > Macrobenchmark: มีไฟล์ที่จำเป็นต่อการวัดประสิทธิภาพของโค้ดและผลการเปรียบเทียบอย่างสม่ำเสมอ โมดูล Macrobenchmark มีประโยชน์อย่างยิ่งในการวัดประสิทธิภาพของกรณีการใช้งานที่ใหญ่ขึ้นของแอป เช่น การเลื่อนดูรายการหรือการจัดการ UI อื่นๆ ดูข้อมูลเพิ่มเติมได้ที่ เขียน Macrobenchmark

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

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

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

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

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

ไฟล์ Manifest
มีไฟล์ AndroidManifest.xml
java
มีไฟล์ซอร์สโค้ด Kotlin และ Java ซึ่งคั่นด้วยชื่อแพ็กเกจ รวมถึงโค้ดทดสอบ JUnit
res
มีทรัพยากรที่ไม่ใช่โค้ดทั้งหมด เช่น สตริง 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 หรือทั้ง 2 อย่าง หากแอปมีทั้งซอร์สโค้ด Kotlin และ Java
kotlin/
มีเฉพาะแหล่งที่มาของโค้ด Kotlin
res/
มีทรัพยากรของแอปพลิเคชัน เช่น ไฟล์ Drawable และไฟล์สตริง 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 ของไลบรารี ไฟล์ และโมดูล สำหรับโมดูลนี้ คุณสามารถเพิ่ม แก้ไข และลบการอ้างอิง จากแผงนี้ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการขึ้นต่อกันของโมดูลได้ที่ กำหนดค่าตัวแปรบิลด์

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

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

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

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