2015-02-22 48 views
8

Tôi biết hệ thống android bao gồm máy ảo Dalvik (DVM) Nhưng tôi không hiểu liệu hệ thống Android có bao gồm JVM cũng Hoặc DVM là một sự thay thế cho JVM? Cảm ơnHệ thống Android có bao gồm JVM không?

+0

Dalvik là thời gian chạy Java. –

Trả lời

2

Nhưng tôi không hiểu nếu hệ thống android bao gồm JVM

số

Hoặc DVM là một sự thay thế cho JVM?

Máy ảo Dalvik là để thực thi các ứng dụng Android được biên dịch sang Dalvik bytecode. Máy ảo Java là để thực thi các ứng dụng Java được biên dịch sang bytecode Java. Cho dù bạn xem là một thay thế cho người khác là tùy thuộc vào bạn.

9

Chương Trình thường viết bằng Java và biên dịch để bytecode cho máy ảo Java, sau đó được dịch sang Dalvik bytecode và lưu trữ trong .dex (Dalvik thực thi) và .odex (Tối ưu hóa Dalvik Executable) tập tin.

Trong ngắn hạn, các chương trình được biên dịch thành bytecode JVM, sau đó được giải thích thành mã bytecode DVM. Thay vì chạy mã Java đã biên dịch, Dalvik biên dịch nó và sau đó dịch mã đó thành mã riêng của nó. Nó theo một cách nào đó là một sự thay thế cho JVM.

Môi trường thời gian chạy thay thế được gọi là Android Runtime (ART) được bao gồm trong Android 4.4 "KitKat" làm bản xem trước công nghệ. ART thay thế Dalvik hoàn toàn trong Android 5.0 "Lollipop".

ART, Thời gian chạy Android, được thay thế Dalvik trong Android 5.0. ART vẫn sử dụng cùng một tệp .dex nhưng thay vào đó chúng được dịch thành các tệp .elf (Tệp có thể thực thi và định dạng có thể liên kết). Đây là một thay thế khác cho JVM, khi mã Java được biên dịch thành mã bytecode JVM, sau đó được dịch sang mã byte bytecode DVM, sau đó được dịch thành một tệp ELF và được thi hành.

@ Chris Thompson thực hiện công việc tuyệt vời giải thích mã bytecode DVM trên Understanding disassembly of Dalvik code.

Nguồn: Wikipedia/bạn bè/Kinh nghiệm

Các vấn đề liên quan