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

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

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

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

โมดูล

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

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

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

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

โมดูลแอป Android

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

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

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

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

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

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

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

Groovy

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

Kotlin

    dependencies {
        implementation(project(":my-library-module"))
    }
    
ทดสอบข้อบังคับ

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

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

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

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

โดยค่าเริ่มต้น 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) ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ 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 จากแผงนี้ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อกําหนดของโมดูลได้ที่หัวข้อกําหนดค่าตัวแปรการสร้าง

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

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

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

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