0Pricing
Kotlin Academy · บทเรียน

ภาพรวม 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ภาพรวม Kotlin/Native: เป้าหมาย ชุดเครื่องมือ และการคอมไพล์
  2. การจัดการหน่วยความจำใน Kotlin/Native: MM ใหม่
  3. การเชื่อมต่อกับ C ด้วย cinterop และไฟล์ .def
  4. Kotlin/WASM: การคอมไพล์เป็น WebAssembly สำหรับเบราว์เซอร์
← กลับไปที่ Kotlin Academy