ด้วย Nexus 5 (Android 4.4 KitKat), Google ได้จัดส่ง runtimes สองครั้งเพื่อเรียกใช้แอป
Dalvik & ART แตกต่างกันอย่างไรสำหรับผู้ใช้ปลายทาง? endusers จะได้รับผลกระทบจากสิ่งนี้อย่างไร มีเหตุผลใดที่ฉันควรเลือก ART runtime ใหม่หรือไม่
ด้วย Nexus 5 (Android 4.4 KitKat), Google ได้จัดส่ง runtimes สองครั้งเพื่อเรียกใช้แอป
Dalvik & ART แตกต่างกันอย่างไรสำหรับผู้ใช้ปลายทาง? endusers จะได้รับผลกระทบจากสิ่งนี้อย่างไร มีเหตุผลใดที่ฉันควรเลือก ART runtime ใหม่หรือไม่
คำตอบ:
Dalvik VM (Virtual Machine) เป็น Java VM เวอร์ชันของ Google (ซึ่งใช้งานแอพ) VMs ทำให้แอปแยกต่างหากและเป็นอิสระจากฮาร์ดแวร์จริงและแอปอื่น ๆ แต่เพื่อให้สามารถใช้งานได้ Dalvik จำเป็นต้องแปลงค่าที่เรียกว่า bytecode (ออกแบบมาสำหรับเครื่องเสมือน) เป็นรหัสเครื่องดั้งเดิม เพื่อลดการลงโทษประสิทธิภาพที่การแปลงรหัสไบต์เป็นรหัสพื้นเมืองกระบวนการที่เรียกว่าการรวบรวม Just-In-Time (JIT) จะดำเนินการซึ่งแปลงร้อนเช่นมักจะใช้ bytecode เป็นรหัสพื้นเมือง 1
ART (Android Runtime) เป็นการแทนที่สำหรับ Dalvik ที่ใช้การคอมไพล์แบบ Ahead-Of-Time (AOT) ซึ่งหมายความว่าแอพของคุณจะถูกคอมไพล์ไปยังสถานะพร้อมใช้งานก่อนที่คุณจะเปิดใช้งาน โดยปกติจะทำเมื่อติดตั้งแอพทำให้กระบวนการเปิดใช้และใช้งานได้เร็วขึ้นและราบรื่นขึ้น และเนื่องจากนี่หมายความว่าการรวบรวมจะทำได้เพียงครั้งเดียวคุณจึงอาจดูอายุการใช้งานแบตเตอรี่ที่ดีขึ้นเช่นกัน
หาก ART ดีกว่าในแง่ของประสิทธิภาพและมุมมองอายุการใช้งานแบตเตอรี่ฉันควรเริ่มใช้หรือไม่
ไม่หากคุณทำเช่นนั้นคุณอาจแบ่งแอปของบุคคลที่สามออก Google ได้จัดส่งหน้าตัวอย่าง ART นี้พร้อมกับ Android 4.4 เพื่อให้นักพัฒนาทดสอบแอพของตน
หมายเหตุด้านข้าง:แนวทางของ Google กับ ART คือการเอาชนะ iOS (แอป iOS เป็นแบบดั้งเดิมดังนั้นทำงานได้ดีขึ้นแม้ในสเปคฮาร์ดแวร์ต่ำสุด) แต่ฉันไม่รู้ว่ามันกำลังมุ่งหน้าไปที่ใด ... ดูOEM มีอิสระในการสร้างอุปกรณ์โดยใช้หนึ่งหรือทั้งสองอย่าง ในขณะที่รุ่นสุดท้ายไม่ควรส่งผลกระทบต่อแอพส่วนใหญ่ แต่สิ่งที่ไม่ข้ามแพลตฟอร์ม 100%
1โปรดทราบว่าเพิ่ม JIT ใน Dalvik ใน Android 2.2