Dalvik คืออะไร เราได้ยินคำว่าถูกโยนบนอินเทอร์เน็ตจำนวนมากเมื่อพูดถึง Android และผลงานภายใน ในขณะที่ไม่มีคำอธิบายง่ายๆที่เราสามารถให้ในสองสามย่อหน้าเราสามารถครอบคลุมพื้นฐานและชี้คุณในทิศทางที่ถูกต้องหากคุณต้องการให้อาหารด้าน nerdly ของคุณ ในแง่ที่ง่ายที่สุด Dalvik เป็นเครื่องเสมือนจริงที่รันแอพพลิเคชั่นและโค้ดที่เขียนด้วย Java คอมไพเลอร์ Java มาตรฐานเปลี่ยนซอร์สโค้ด (เขียนเป็นไฟล์ข้อความ) เป็น Bytecode จากนั้นรวบรวมเป็นไฟล์. dex ที่ Dalvik VM สามารถอ่านและใช้งานได้ โดยพื้นฐานแล้วไฟล์คลาสจะถูกแปลงเป็นไฟล์. dex (คล้ายกับไฟล์ jar หากใช้ Java VM มาตรฐาน) จากนั้นอ่านและดำเนินการโดย Dalvik Virtual Machine ข้อมูลที่ซ้ำกันที่ใช้ในไฟล์คลาสจะถูกรวมเพียงครั้งเดียวในเอาต์พุต. dex ซึ่งช่วยประหยัดพื้นที่และใช้ค่าใช้จ่ายน้อยลง ไฟล์ที่ปฏิบัติการได้สามารถแก้ไขได้อีกครั้งเมื่อคุณติดตั้งแอปพลิเคชันเพื่อเพิ่มประสิทธิภาพให้กับอุปกรณ์พกพา สิ่งต่างๆเช่นการแลกเปลี่ยนคำสั่งแบบไบต์และการเชื่อมโยงโครงสร้างข้อมูลและฟังก์ชั่นไลบรารีแบบอินไลน์ทำให้ไฟล์มีขนาดเล็กลงและทำงานได้ดีขึ้นบนอุปกรณ์ของเรา Dalvik VM เขียนขึ้นจากแบบสี่เหลี่ยมจัตุรัสโดยคำนึงถึง Android เป็นหลัก
สับสนหรือยัง อย่ารู้สึกแย่การพูดคุยการเขียนโปรแกรมที่เกินบรรยายมักมีผลกระทบนั้น คิดแบบนี้ - เมื่อคุณสร้างแอปพลิเคชัน Java สำหรับคอมพิวเตอร์ของคุณ Java Virtual Machine จะรันเอาต์พุตที่รวบรวมของซอร์สโค้ด นี่คือเหตุผลที่ Java ทำงานบนระบบปฏิบัติการเกือบทุกระบบ Dalvik เป็น Java Virtual Machine รุ่นที่ปรับให้เหมาะกับมือถือสร้างขึ้นด้วยรหัสจากโครงการ Apache Harmony ซึ่งเป็นโอเพ่นซอร์สและทำงานได้ดีกว่า Java VM มาตรฐานบนฮาร์ดแวร์ที่ จำกัด ของเราออกแบบมาเพื่อให้คุณสามารถรันมากกว่าหนึ่ง อินสแตนซ์ของ VM ในเวลา - เช่นมัลติทาสกิ้ง เนื่องจาก Dalvik เป็นโอเพ่นซอร์สจึงได้รับการจัดส่งไปยังระบบปฏิบัติการอื่นเช่นเดียวกับใน BlackBerry PlayBook มันค่อนข้างซับซ้อนและน่ากลัวและ Oracle (บริษัท ที่ซื้อ Java จาก Sun) เกลียด
Android ใช้ Dalvik เพราะในขณะที่ใบอนุญาตสำหรับ Java Virtual Machine มาตรฐานคือ GPL2 (ฟรีและโอเพ่นซอร์ส) เมื่อวางไว้ในอุปกรณ์พกพาและใช้ Java Micro Edition แต่ก็ไม่ได้เป็นเช่นนั้น ข้อพิพาทที่สำคัญระหว่าง Google และ Oracle นั้นมีพื้นฐานมาจาก Dalvik Google อ้างว่าเขียนในสภาพแวดล้อม "ห้องสะอาด" โดยไม่ต้องใช้รหัสของ Oracle และ Oracle ไม่เห็นด้วย เราอ้างว่าไม่มีความคิดเราแค่ดีใจที่ได้ผลเช่นเดียวกับที่ทำ