2011-11-21 38 views
7

Tất nhiên, .dex tệp dành cho máy ảo Dalvik của Android và .class tệp dành cho JVM. Nhưng tôi tự hỏi nếu họ có bố trí tương tự (Constant Pool, Fields, Methods, Attributes, ...)? Bytecode là khác nhau, nhưng có Dalvik cụ thể opcode tương đương với những người thân từ JVM?Sự khác nhau giữa các tệp .class và .dex là gì?

+2

Chưa bao giờ đã vào điều này, nhưng đây là một bước đầu tiên: http://www.slideshare.net/Bhavsidd/diff-of-class-and-dex-file (và điều này: http://www.dalvikvm.com/) – MByD

+0

@BinyaminSharet liên kết thứ hai là chưa sử dụng và không chứa bất kỳ thông tin hữu ích –

+0

Nhìn vào bài viết này, [Sự khác biệt giữa tệp .class và .dex.] (http: //www.risesoftware. com/pg/blog/Bhavya/read/889/sự khác biệt giữa lớp và dex-file) – bharath

Trả lời

15

Trong khi tệp jar Java có nhiều tệp lớp, mỗi tệp APK chỉ có một tệp classes.dex duy nhất, như được hiển thị bên dưới. Theo Google, định dạng APK khác với định dạng tệp lớp vì lý do hiệu suất và bảo mật.

enter image description here

-1

Định dạng thực thi Dalvik là mã, VM thực hiện. Dalvik VM không thể thực thi Java bytecode, nó phải được biên dịch thành dex, bởi vì nó sử dụng một tập lệnh thay thế.

Đọc số wiki article.

+1

OP đã biết điều đó rồi. Vui lòng đọc câu đầu tiên của câu hỏi. –

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