เราเคยได้เอาเรื่องความเปลี่ยนแปลงบน Android 4.4 Kit Kat มาสรุปให้ได้อ่านกันแล้ว แต่ว่ามีอีกเรื่องนึงที่เราไม่ได้พูดไป รวมถึงทาง Google เองก็ไม่ได้บอกอะไรมากมายเกี่ยวกับตัวนี้ นั่นก็คือ ART runtime ที่ถ้าจะเปรียบเทียบ ก็เปรียบเสมือนกับการยกเครื่องเปลี่ยนจากเครื่องดีเซลดึกดำบรรพ์ เป็นเครื่องดีเซลรุ่นใหม่ล่าสุด ที่จะทำให้เรียกกำลังของเครื่องได้มากขึ้น ในขณะที่กินน้ำมันน้อยลงอะไรประมาณนั้นเลย แต่ว่าขณะนี้ยังอยู่ในช่วงการทดสอบอยู่เท่านั้น ยังมีความไม่เสถียร และอาจเจอปัญหาระหว่างใช้งานได้ครับ

ถ้าใครมี Android 4.4 แล้วก็สามารถลองเปิดเล่นดูได้ที่ Settings > developer options > ART แต่เมื่อกดแล้วต้อง restart เครื่องรวมถึงรอการแปลงแอพให้รองรับ ART นิดนึงนะ (5-10นาที ขึ้นกับจำนวนแอพ)

สำหรับตอนนี้ Android ใช้ Dalvik runtime อยู่ซึ่งเป็นเทคโนโลยีเก่าที่ใช้กันมาเนิ่นนานแล้ว และเป็นสาเหตุของปัญหาหลายๆอย่าง รวมถึงความต้องการด้าน Hardware ที่สูงด้วย โดย ART จะเป็นตัว runtime ที่ทำขึ้นมาโดย Google เองเพื่อใช้สำหรับ Android โดยเฉพาะเลย (ART = Android RunTime)

สำหรับคนที่งงว่า Runtime มันคืออีหยังหว่า ก็ช่วยกันอัญเชิญเทพที่สถิตย์อยู่ ณ Droidsans มาช่วยเขียน อธิบายให้เพื่อนๆได้อ่านอีกสักหน่อย เพราะตัวกระผมเองกว่าจะเขียนได้จริงๆคงต้องใช้เวลาอีกไม่น้อยเลยครับ

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

แต่ข่าวร้ายคือ ยังไม่มีใครบอกได้ว่า ART จะพร้อมและเสร็จได้เมื่อไหร่เหมือนกัน อาจจะเร็วมาก ได้เห็นในอัพเดทหน้า หรือว่าต้องรอจนกว่า Android 5.0 ที่ยังไม่รู้ว่า Google จะปล่อยมาเมื่อไหร่นั่นแล ^__^

สำหรับคนที่สนใจเพิ่มเติม อยากรู้ละเอียดๆหน่อย ก็เข้าไปอ่านกันได้ที่ Android Police หรือ Android Developer ได้นะ 😉
 
ขอขอบคุณ Plaumkamon และ Newgen ที่มาช่วยเขียนสรุปเพิ่มเติมให้นะครับ 😉
[quote=plaumkamon]อย่างที่เราทราบๆ กัน คอมพิวเตอร์หนึ่งเครื่องจะประกอบไปด้วยหลายๆ ส่วน โดยส่วนประกอบสำคัญที่จะขาดไม่ได้นั่นก็คือหน่วยประมวลผล (CPU) เพราะ CPU เปรียบเหมือนสมอง ค่อยสั่งให้ส่วนอื่นๆ ทำงาน ดังนั้นถ้าหากว่าเราต้องการจะสั่งคอมพิวเตอร์ เราจะต้องสั่งผ่าน CPU

 
การที่เราจะให้ CPU ทำงาน เราจะส่งคำสั่งโดยใช้ภาษามนุษย์ไม่ได้ เราต้องใช้ภาษาที่ CPU นั้นเข้าใจ นั่นก็คือภาษาเครื่อง (machine language หรือ machine code)

แต่ภาษาเครื่องนั้นเป็นภาษาที่มนุษย์ทำความเข้าใจยาก ดังนั้นเพื่อความสะดวกจึงมีการคิดค้นภาษาระดับสูง (High-level programming language) ที่มีความใกล้เคียงกับภาษามนุษย์มากขึ้น โดยภาษาระดับสูงเหล่านั้นจะนำ source code (ชุดคำสั่งที่เขียนด้วยภาษาระดับสูง) ไปแปลงเป็นภาษาเครื่องอีกที ซึ่งวิธีการแปลงมี 3 วิธีใหญ่ๆ คือ

  • คอมไพเลอร์ (Compiler) ตัวแปลง source code ให้เป็นภาษาเครื่องแบบพร้อมใช้ โดยเราจะได้ผลลัพธ์ของออกมาเป็น execute file (exe file) ซึ่งข้อดีของมันอยู่ที่คอมพิวเตอร์ต้องเสียเวลาแปลง source code ให้เป็นภาษาเครื่อง สามารถเรียก exe file ทำงานได้เลย แต่การแปลเป็นภาษาเครื่องตรงๆ แบบนี้ก็มีข้อเสียเพราะ exe file ไม่สามารถนำไปใช้ข้ามแพลตฟอร์มได้ เนื่องจากภาษาเครื่องในแต่ละแพลตฟอร์มนั้นไม่เหมือนกัน เช่น exe file ที่ถูกสร้างบน Windows ไม่สามารถนำไปใช้บน Linux ได้
  • อินเทอร์พรีเตอร์ (Interpreter) เป็นตัวแปลง source code ให้เป็นภาษาเครื่องเมื่อจะเรียกใช้โดย Runtime จะไม่มีการแปลงเก็บไว้เป็น exe file เหมือน compiler แต่จะแปลงก็ต่อเมื่อเรียกใช้เท่านั้น ทำให้ต้องแปลงใหม่ทุกครั้งที่เรียกใช้ ความเร็วในการทำงานของวิธีนี้ช้ากว่าแบบบนมาก แต่ข้อดีคือจะไม่มีปัญหาในการนำ source code ไปใช้ต่างแพลตฟอร์ม
  • ไฮบริด (Hybrid) เป็นการเอาทั้งสองวิธีมาผสมผสานกัน อย่างในภาษา Java (ภาษาระดับสูงที่ใช้ใน android) ขั้นแรกจะเอา source code มาแปลงเป็นภาษาที่ใกล้เคียงภาษาเครื่องมากที่สุด (byte code) ซึ่ง byte code ก็เปรียบเหมือน exe file แต่ byte code ที่ว่านี้สามารถนำไปใช้ต่างแพลตฟอร์มได้ โดย byte code ที่ว่าก็จะถูก runtime เอาไปแปลอีกรอบให้เป็นภาษาเครื่อง ซึ่ง runtime บน android นั้นก็คือ Dalvik นั่นเอง

 

สาเหตที่ android ไม่เอา JVM (Java Visual Machine) ซึ่งเป็น rumtime ของภาษา Java บนเครื่องคอมพิวเตอร์มาใช้ในมือถือ นั่นเป็นเพราะว่า JVM ไม่เหมาะกับ CPU บนมือถือที่ไม่ได้มีทรัพยากรเหลือเฟือเหมือนคอมพิวเตอร์ ทำให้ Dalvik จึงถูกเลือก (รายละเอียดเพิ่มเติม)

การพัฒนา java runtime บน android ไม่ได้เกิดขึ้นเป็นครั้งแรก เพราะในเวอร์ชัน 2.2 ก็มีการปรับปรุงครั้งใหญ่ แต่ครั้งนั้นเป็นการปรับปรุง Dalvik ให้ดีขึ้น ส่วนครั้งนี้เหมือนจะเป็นการเปลี่ยน java runtime ตัวใหม่เป็น android runtime ซึ่งน่าจะเป็น java runtime ที่ google ออกแบบมาสำหรับ android โดยเฉพาะ

 
[quote=newgen]Dalvik ใช้การทำงานแบบ Just In Time (JIT) คือ เวลาจะใช้แอป มันถึงจะแปลงโค้ดจากภาษาระดับสูงไปภาษาเครื่องซึ่งจะทำทุกครั้งที่รัน ทำให้ทำงานได้ช้าเพราะต้องมานั้งแปลงทุกครั้ง

ART ใช้การทำงานแบบ Ahead-Of-Time (AOT) คือ ตอนที่ติดตั้งมันจะแปลงโค้ดจากภาษาระดับสูงไปภาษาเครื่องครั้งเดียว จากนั้นจะใช้โค้ดส่วนที่แปลงแล้วรัน ทำให้เร็วขึ้นเนื่องจากมีการแปลงตอนที่ลงครั้งแรกครั้งเดียวเท่านั้น

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

ข้อเสีย
-ขนาดแอปหลังจากติดตั้งใหญ่ขึ้นและใช้เวลาติดตั้งนานขึ้นด้วย