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