- Daivik Virual Machine: là máy ảo được xây dựng trong Device để có thể chạy được những ứng dụng với file là apk.
1.1.6 Máy ảo Dalvik
Máy ảo Dalvik (DalvikVM) được đặt bởi Bornstein theo tên một làng chài ở Iceland, nơi tổ tiên của ông sống, đây là một máy ảo register-based. Nói cách khác, “register-based” mà chúng ta đã nói ở đầu là khác so với máy ảo Java thông thường (trên các hệ thống Windows, Linux… của Sun).
Dalvik là tên của máy ảo Android. Nó chỉ là một máy ảo thông dịch thực thi các file ở định dạng thực thi của Dalvik (Dalvik Executable - *.dex), một định dạng được tối ưu hóa cho lưu trữ và sử dụng bộ nhớ hiệu quả. Đây là một máy ảo register-based, và nó có thể chạy các class được biên dịch bởi một trình biên dich Java đã được chuyển thành định dạng tương thích với nó bởi công cụ “dx”. Máy ảo chạy ở mức trên cùng của nhân Linux 2.6 và dựa trên các chức năng phía dưới của hệ thống (giống như luồng và trình quản lý bộ nhớ mức thấp). DalvikVM cũng được tối ưu hóa để chạy đa thể hiện với một very low memory-footprint. Một vài máy ảo cung cấp cơ chế bảo vệ các ứng dụng của chúng không bị ảnh hưởng bởi một ứng dụng gặp lỗi khác.
Cơ chế máy ảo Dalvik?
- Ngay khi thực hiện ứng dụng, quá trình Linux kết hợp với các ứng dụng Android làm việc trong môi trường máy ảo riêng của mình.
- Khi một ứng dụng chạy trong quá trình Linux riêng của mình, hệ thống Android bắt đầu quá trình khi bất kỳ của các thành phần của ứng dụng cần được thực hiện và tắt quá trình khi nó không còn cần thiết.
Hình 1.24 Cơ chế máy ảo Dalvik
Sự khác biệt với máy ảo Java thông thường?
Máy ảo Java có thể tìm thấy trên hầu hết các máy tính ngày nay là stack-based VM. DalvikVM thì khác, là một register-based, bởi vì một vi xử lý di động được tối ưu hóa cho thao tác register-based. Máy ảo register-based cũng cho phép thời gian thực thi nhanh hơn.