Android Runtime และ Dalvik: หัวใจสำคัญของ Android Runtime

การปรับปรุงครั้งล่าสุด: พฤศจิกายน 11, 2026
ผู้แต่ง: พิกเซล
  • Dalvik ทำงานโดยใช้การคอมไพล์แบบ JIT ซึ่งเป็นการแปลงโค้ดขณะที่แอปกำลังทำงานอยู่
  • ART ปรับปรุงประสิทธิภาพของระบบโดยใช้การคอมไพล์แบบ AOT ซึ่งจะดำเนินการในระหว่างการติดตั้ง
  • ทั้งสองระบบใช้รูปแบบไฟล์ DEX ซึ่งช่วยให้มั่นใจได้ถึงความเข้ากันได้ระหว่างเวอร์ชัน
  • การเปลี่ยนมาใช้ ART ช่วยลดการใช้พลังงานแบตเตอรี่และเพิ่มประสิทธิภาพการทำงานของระบบให้ดียิ่งขึ้น

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

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

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

มรดกของดัลวิก: ยุคแห่งการผลิตแบบทันเวลาพอดี (Just-In-Time)

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

Dalvik เป็นเสาหลักสำคัญตั้งแต่เริ่มแรกของ Android วัตถุประสงค์ของมันชัดเจนคือการอนุญาตให้แอปพลิเคชันที่เขียนด้วยภาษา Java ทำงานบนอุปกรณ์ที่มีทรัพยากรจำกัดมากแตกต่างจากเครื่องเสมือน Java มาตรฐาน Dalvik ได้รับการปรับให้เหมาะสมเพื่อใช้หน่วยความจำน้อยลงและสามารถเรียกใช้งานหลายอินสแตนซ์พร้อมกันได้ โดยมอบหมายการจัดการเธรดให้กับเคอร์เนลของ Linux

  การแก้ไขภาพด้วย Snapseed: คู่มือฉบับสมบูรณ์เพื่อการใช้งานอย่างเต็มประสิทธิภาพ

คุณสมบัติหลักของ Dalvik คือ การคอมไพล์แบบJust-In-Time (JIT)ซึ่งหมายความว่าโค้ดจะถูกแปลงเป็นภาษาเครื่องอย่างแม่นยำเมื่อผู้ใช้โต้ตอบกับแอป เพื่อหลีกเลี่ยงการทำงานที่น่าเบื่อนี้ซ้ำๆ Dalvik จึงสร้างไฟล์ที่เรียกว่าODEX (Optimized DEX)ซึ่งเก็บส่วนที่แปลงแล้วไว้ในแคช ปัญหาคือ กระบวนการคอมไพล์อย่างต่อเนื่องนี้ใช้ทรัพยากร CPU มาก และด้วยเหตุนี้จึงใช้พลังงานมากขึ้น

Android Runtime (ART): ก้าวกระโดดสู่เทคโนโลยี Ahead-Of-Time

สมาร์ทโฟนวางบนแป้นพิมพ์แสดงระดับแบตเตอรี่ พร้อมอ้างอิงถึงประสิทธิภาพการใช้พลังงานของ ART เมื่อเทียบกับ Dalvik

ตั้งแต่ Android 5.0 Lollipop เป็นต้นไป ART เข้ามามีบทบาทอย่างสมบูรณ์ ความแตกต่างที่สำคัญคือ ART ใช้ การคอมไพล์ แบบ Ahead-Of-Time (AOT)แทนที่จะรอให้คุณเปิดแอปพลิเคชัน ART จะจัดการงานหนักทั้งหมดในระหว่างการติดตั้ง โดยใช้เครื่องมือที่เรียกว่าdex2oatเพื่อแปลงไฟล์ DEX ให้เป็นไฟล์ปฏิบัติการ ELF (Executable and Linkable Format) ซึ่งเป็นรูปแบบไฟล์พื้นฐานของ Linux

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

การเปรียบเทียบทางเทคนิคและการปรับปรุงที่สำคัญ

แม้ว่าทั้งสองสภาพแวดล้อมจะเข้ากันได้และใช้ไบต์โค้ด DEX เดียวกัน แต่ ART ได้นำเสนอการปรับปรุงที่ทำให้ระบบทำงานได้เร็วขึ้นอย่างเหลือเชื่อ หนึ่งในสิ่งที่สำคัญที่สุดคือการจัดการหน่วยความจำ (Garbage Collection หรือ GC)ใน Dalvik ตัวจัดการหน่วยความจำเคยเป็นสาเหตุของการหยุดชะงักหรือ "กระตุก" ที่น่ารำคาญในอินเทอร์เฟซ (อาการแล็กที่เลื่องลือ) ART ได้ออกแบบใหม่โดยใช้ ระบบ แบบขนานเป็นหลักทำให้การหยุดชะงักไม่ขึ้นอยู่กับปริมาณหน่วยความจำที่ใช้

  • การดีบักขั้นสูง: ART ช่วยให้นักพัฒนาสามารถดูได้ว่าเธรดใดกำลังถือล็อกใดอยู่ และติดตามอินสแตนซ์ของคลาสได้อย่างแม่นยำยิ่งขึ้น
  • การวินิจฉัยที่แม่นยำ: ปัจจุบัน เมื่อแอปพลิเคชันเกิดข้อผิดพลาด รายงานข้อผิดพลาดจะมีรายละเอียดมากขึ้น โดยเฉพาะในกรณีต่างๆ NullPointerException.
  • การจัดการหน่วยความจำ: แตกต่างจาก Dalvik ซึ่งใช้แคชที่ไม่สามารถแบ่งหน้าได้ ART ใช้หน่วยความจำ RAM ที่ สามารถแบ่งหน้าได้โดยการเพิ่มประสิทธิภาพการใช้งานฮาร์ดแวร์
  Wi-Fi 7: วิธีใช้งานเพื่อปรับปรุงการเชื่อมต่อภายในบ้านของคุณ

กระบวนการบรรจุภัณฑ์: จากโค้ดสู่ไฟล์ APK

สภาพแวดล้อมการพัฒนาโดยใช้แล็ปท็อปและสมาร์ทโฟน แสดงให้เห็นถึงกระบวนการบรรจุซอร์สโค้ดจนถึงไฟล์ APK

เพื่อให้สภาพแวดล้อมเหล่านี้ทำงานได้ โค้ดจะต้องผ่านกระบวนการประกอบแบบแอสเซมบลีเสียก่อน โดยคอมไพเลอร์ Java จะสร้างไฟล์ .class ขึ้น มา จากนั้นเครื่องมือ dexจะแปลงไฟล์เหล่านั้นให้เป็นไฟล์ classes.dex ไฟล์เดียว ไฟล์นี้เป็นแกนหลักของ APK และเป็นสิ่งที่ ART หรือ Dalvik จะประมวลผล

เครื่องมืออย่างaapt ใช้ สำหรับจัดแพ็กเกจทรัพยากร และzipalignช่วยปรับการจัดเรียงข้อมูลให้เหมาะสม ทำให้โปรเซสเซอร์เข้าถึงหน่วยความจำได้อย่างมีประสิทธิภาพที่สุด เมื่อไฟล์ APK ไปถึงอุปกรณ์แล้ว สิ่งมหัศจรรย์ก็จะเกิดขึ้น: หากมี ART ไฟล์ ELF จะถูกสร้างขึ้น หากมี Dalvik ไฟล์ ODEXจะเริ่มถูกสร้างขึ้นโดยอัตโนมัติ

ข้อเท็จจริงที่น่าสนใจเกี่ยวกับ ROM และกระบวนการดีโอเด็กซ์

ในโลกของ ROM แบบกำหนดเอง คำว่าodex และ deodex ถูกใช้กันอย่างแพร่หลาย เนื่องจากไฟล์ ODEX นั้นขึ้นอยู่กับฮาร์ดแวร์และระบบที่สร้างขึ้น จึงไม่สามารถถ่ายโอนจากโทรศัพท์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้ง่ายๆ เพื่อแก้ไขแอปโดยไม่ทำให้ระบบล่ม นักพัฒนาจึงทำการdeodexingซึ่งเกี่ยวข้องกับการรวมไฟล์ที่ปรับแต่งแล้วเข้ากับ APK เพื่อให้การแก้ไขทำได้ง่ายขึ้น

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

  Waze: มันคืออะไรและแอปนำทางโซเชียลนี้ทำงานอย่างไร