dex
tệp là tệp được thực thi trên máy ảo Dalvik.
Máy ảo Dalvik bao gồm một số tính năng để tối ưu hóa hiệu suất, xác minh và giám sát, một trong số đó là Dalvik Executable (DEX).
Mã nguồn Java được biên dịch bởi trình biên dịch Java thành các tệp .class
. Sau đó, công cụ dx
(dexer), một phần của SDK Android xử lý các tệp .class
thành định dạng tệp được gọi là DEX
có chứa mã byte Dalvik. Công cụ dx
loại bỏ tất cả các thông tin dư thừa có trong các lớp. Trong DEX
tất cả các lớp của ứng dụng được đóng gói thành một tệp. Bảng sau cung cấp sự so sánh giữa các kích thước mã cho các tệp jar JVM và các tệp được xử lý bằng công cụ dex
.
Bảng so sánh kích thước mã cho thư viện hệ thống, ứng dụng trình duyệt web và ứng dụng có mục đích chung (ứng dụng đồng hồ báo thức). Trong mọi trường hợp, công cụ dex giảm kích thước của mã xuống hơn 50%.
Trong tiêu chuẩn Java các môi trường mỗi lớp trong kết quả mã Java trong một .class
tập tin. Điều đó có nghĩa, nếu tệp mã nguồn Java có một lớp công khai và hai lớp ẩn danh, hãy nói để xử lý sự kiện, thì trình biên dịch java sẽ tạo tổng số ba tệp .class
.
Bước biên dịch giống nhau trên nền tảng Android, do đó dẫn đến nhiều tệp .class
. Nhưng sau khi tạo ra .class
tệp, công cụ "dx" được sử dụng để chuyển đổi tất cả các tệp .class
thành một tệp .dex
hoặc tệp thực thi Dalvik. Đây là tệp .dex
được thực thi trên máy ảo Dalvik. Tệp .dex
đã được tối ưu hóa để sử dụng bộ nhớ và thiết kế chủ yếu được thúc đẩy bằng cách chia sẻ dữ liệu.
Nguồn
2015-01-09 09:37:56
plz Thấy liên kết này http://stackoverflow.com/questions/1249973/decompiling-dex-into-java-sourcecode – Gensheriff
cách chạy chúng trên thiết bị: http://stackoverflow.com/questions/10199863/how- to-execute-the-dex-file-in-android-với-lệnh –