ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์
ทำความเข้าใจเป้าหมายของ Kotlin/Native ที่มีให้ใช้ และคอมไพล์ไบนารี CLI อย่างง่าย
ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์ เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
Kotlin/Native คืออะไร
Kotlin/Native คอมไพล์ซอร์สโค้ด Kotlin เป็นโค้ดเครื่องเนทีฟโดยตรงผ่าน LLVM โดยไม่ต้องใช้สภาพแวดล้อมขณะทำงานของ JVM หรือ Dalvik ผลลัพธ์คือไบนารีแบบในตัวที่ทำงานได้อย่างอิสระ — ไม่จำเป็นต้องติดตั้ง JVM บนเครื่องเป้าหมาย
เป้าหมายที่รองรับ
Kotlin/Native รองรับเป้าหมายที่หลากหลาย:
- macOS / iOS:
macosX64,macosArm64,iosX64,iosArm64,iosSimulatorArm64 - Linux:
linuxX64,linuxArm64 - Windows:
mingwX64 - ระบบฝังตัว / watchOS / tvOS: เป้าหมายประเภทต่าง ๆ
กระบวนการคอมไพล์
กระบวนการคอมไพล์ของ Kotlin/Native คือ ซอร์สโค้ด Kotlin → IR ของ Kotlin (การแสดงแทนระดับกลาง) → IR ของ LLVM → ไบนารีเนทีฟ คอมไพเลอร์ konanc เป็นตัวขับเคลื่อนกระบวนการนี้ แต่ในทางปฏิบัติคุณจะใช้ปลั๊กอิน Gradle ของ Kotlin Multiplatform เสมอ
การตั้งค่าเป้าหมายเนทีฟใน Gradle
ในโปรเจกต์ Kotlin Multiplatform ให้ประกาศเป้าหมายเนทีฟใน build.gradle.kts:
kotlin {
macosArm64("macos") {
binaries {
executable { entryPoint = "main" }
}
}
linuxX64("linux") {
binaries { executable { entryPoint = "main" } }
}
}ชุดซอร์สสำหรับเป้าหมายเนทีฟ
เป้าหมายเนทีฟใช้ commonMain/commonTest ร่วมกับแพลตฟอร์มอื่น โค้ดเฉพาะเป้าหมายจะอยู่ในชุดซอร์ส เช่น macosMain หรือ linuxX64Main ใช้ expect/actual สำหรับส่วนเชื่อมต่อโปรแกรมเฉพาะแพลตฟอร์ม
ประเภทไบนารีเอาต์พุต
Kotlin/Native สามารถสร้างไบนารีได้หลายประเภท:
executable— โปรแกรมบรรทัดคำสั่งแบบทำงานได้ด้วยตนเองstaticLib— ไลบรารีสแตติกสำหรับลิงก์เข้ากับโปรเจกต์ C/C++sharedLib— ไลบรารีไดนามิก (.dylib / .so / .dll)framework— เฟรมเวิร์กของ Apple สำหรับการผสานรวมกับ iOS/macOS
การเรียกใช้การทดสอบเนทีฟ
เรียกใช้การทดสอบเนทีฟด้วย ./gradlew macosArm64Test (หรืองานของเป้าหมายที่เกี่ยวข้อง) การทดสอบจะถูกคอมไพล์เป็นไบนารีเนทีฟและทำงานบนเครื่องโฮสต์ — ไม่มีการใช้ JVM
ข้อจำกัดของการคอมไพล์ข้ามแพลตฟอร์ม
การคอมไพล์ข้ามแพลตฟอร์มของ Kotlin/Native มีข้อจำกัด: คุณสามารถคอมไพล์สำหรับเป้าหมายของ Apple ได้เฉพาะบน macOS เท่านั้น (ต้องใช้ Xcode) เป้าหมาย Linux และ Windows สามารถคอมไพล์บนโฮสต์ที่รองรับใด ๆ ได้ โดยทั่วไปกระบวนการ CI จะใช้เครื่องตัวแทน macOS สำหรับเป้าหมายของ Apple
รูปแบบ klib
ไลบรารี Kotlin/Native เผยแพร่เป็นไฟล์ .klib — รูปแบบไลบรารีของ Kotlin ที่ไม่ขึ้นกับแพลตฟอร์ม ระบบจะแก้ไขการพึ่งพาเป็นไฟล์ .klib และลิงก์ไฟล์เหล่านั้นเข้ากับไบนารีสุดท้ายขณะคอมไพล์
Kotlin/Native ในแอป KMP สำหรับ iOS
ในโปรเจกต์ Kotlin Multiplatform Mobile (KMM) มาตรฐาน โค้ดที่ใช้ร่วมกันจะคอมไพล์เป็น เฟรมเวิร์ก ของ Apple ซึ่ง Xcode จะลิงก์เข้ากับแอป iOS โค้ด Swift/Objective-C เรียกใช้ API ของ Kotlin ผ่าน headers ที่สร้างขึ้น
ลักษณะด้านประสิทธิภาพ
ไบนารีเนทีฟเริ่มทำงานทันที (ไม่มีการเริ่มต้น JVM) ใช้หน่วยความจำน้อยกว่า และเหมาะสำหรับเครื่องมือบรรทัดคำสั่ง แอปพลิเคชันฝั่งเซิร์ฟเวอร์บน Linux และตรรกะที่ใช้ร่วมกันของ iOS/macOS แอปพลิเคชัน JVM ที่ทำงานเป็นเวลานานอาจมีประสิทธิภาพเหนือกว่า Native เนื่องจากการปรับให้เหมาะสมแบบ JIT แต่ข้อได้เปรียบด้านเวลาเริ่มต้นและการใช้หน่วยความจำทำให้ Native เหมาะกับกรณีใช้งานจำนวนมาก
แบบทดสอบสั้น ๆ
ประเภทไบนารีของ Gradle ใดที่สร้างเฟรมเวิร์กของ Apple จาก Kotlin/Native เพื่อใช้ในโปรเจกต์ iOS ของ Xcode
สรุป: ภาพรวม Kotlin/Native
ประเด็นสำคัญ:
- Kotlin/Native คอมไพล์เป็นโค้ดเครื่องเนทีฟผ่าน LLVM — ไม่จำเป็นต้องใช้ JVM
- รองรับเป้าหมาย macOS, iOS, Linux, Windows, watchOS และ tvOS
- กำหนดค่าเป้าหมายและประเภทไบนารีในปลั๊กอิน Gradle ของ KMP
- เป้าหมายของ Apple ต้องใช้ macOS + Xcode และการคอมไพล์ข้ามแพลตฟอร์มมีข้อจำกัดตามแพลตฟอร์ม
- ไลบรารีเผยแพร่เป็น
.klibและผสานรวมกับ iOS ผ่านไบนารีframework
คำถามที่พบบ่อย
บทเรียน “ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์”
ทำความเข้าใจเป้าหมายของ Kotlin/Native ที่มีให้ใช้ และคอมไพล์ไบนารี CLI อย่างง่าย คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์
- การจัดการหน่วยความจำใน Kotlin/Native: MM ใหม่
- การเชื่อมต่อกับ C ด้วย cinterop และไฟล์ .def
- Kotlin/WASM: การคอมไพล์เป็น WebAssembly สำหรับเบราว์เซอร์