Tôi biết đây có thể là một câu hỏi cơ bản trong Android. Nhưng Dalvik và dalvik-cache là gì?
Tôi biết đây có thể là một câu hỏi cơ bản trong Android. Nhưng Dalvik và dalvik-cache là gì?
Câu trả lời:
Dalvik là máy ảo được sử dụng bởi Android. Nó thường được coi là một máy ảo Java, mặc dù điều này không chính xác. Nó sử dụng một mô hình đối tượng giống hệt với Java và mô hình bộ nhớ của nó cũng gần tương đương. Nhưng máy ảo dalvik là máy ảo dựa trên thanh ghi, trái ngược với máy ảo Java, dựa trên ngăn xếp.
Theo đó, nó sử dụng một mã bytecode hoàn toàn khác với Java. Tuy nhiên, Android SDK bao gồm công cụ dx để dịch Java bytecode sang dalvik bytecode, đó là lý do tại sao bạn có thể viết các ứng dụng Android bằng Java.
Khi bạn nói " dalvik-cache ", tôi cho rằng bạn muốn nói đến thư mục / data / dalvik-cache có thể được tìm thấy trên các thiết bị Android thông thường. Khi bạn cài đặt một ứng dụng trên Android, nó sẽ thực hiện một số sửa đổi và tối ưu hóa trên tệp dex của ứng dụng đó (tệp chứa tất cả mã bytecode dalvik cho ứng dụng). Sau đó, nó lưu vào bộ nhớ cache tệp odex ( dex được tối ưu hóa ) kết quả trong thư mục / data / dalvik-cache , để nó không phải thực hiện quá trình tối ưu hóa mỗi khi tải ứng dụng.
Dalvik là Máy ảo dựa trên java chạy Ứng dụng Android trên Android. Dalvik-cache là vùng bộ nhớ cache cho Dalvik VM, nó được tạo khi Dalvik VM tối ưu hóa ứng dụng của bạn để chạy.
Bạn có thể tra cứu thêm trên internet về sự khác biệt giữa mã op Dalvik VM và mã op Java VM "bình thường" nếu bạn muốn.
Dalvik Caches không là gì ngoài việc biên dịch tạm thời mã ứng dụng được lưu trữ dưới dạng tệp thực thi. Vì chúng có thể được biên dịch động từ mã ứng dụng ban đầu bên ngoài Dalvik Cache, bạn có thể xóa Dalvik Cache mà không bị phạt thực sự.
Bộ nhớ cache Dalvik không còn là một phần của các phiên bản Android hiện đại nữa; Android 4.4 KitKat là phiên bản cuối cùng sử dụng cấu trúc này. Xem https://en.wikipedia.org/wiki/Dalvik_(software) để biết thêm chi tiết.