Tôi có một ứng dụng Android rất đơn giản bao gồm một Hoạt động đơn lẻ với một số hộp văn bản và một chút mã xử lý.Tại sao ứng dụng Android của tôi phân bổ số lượng bộ nhớ khác nhau đáng kể trên các phiên bản hệ điều hành khác nhau?
Khi tôi cài đặt nó trên thiết bị 2.3 và mở nó lần đầu tiên, nó phân bổ ~ 2,7MB bộ nhớ (theo tab cập nhật Heap trong Eclipse DDMS).
Trên thiết bị 3.1, thiết bị phân bổ ~ 6.1MB.
Trên thiết bị 4.0, thiết bị phân bổ ~ 13,8MB.
Tôi đã không thực hiện thay đổi mã nào giữa 3 và các biện pháp này được thực hiện khi cài đặt/mở ban đầu của ứng dụng (vì vậy không có thời gian để thực hiện bất kỳ rò rỉ nào). Nó không sử dụng hình ảnh, và không cụ thể có tăng tốc phần cứng được kích hoạt.
Có ai biết tại sao dấu chân có thể khác biệt quá nhiều không? Tôi cho rằng nó có liên quan đến sự khác biệt trong các phiên bản hệ điều hành, nhưng tôi tự hỏi liệu có ai biết những khác biệt đó có thể là gì hay không.
Tôi đã đọc về sự thay đổi trong phân bổ Bitmap từ 3.0 trở đi gây ra sự gia tăng rõ ràng trong bộ nhớ được cấp phát, nhưng ứng dụng của tôi không sử dụng bất kỳ hình ảnh nào. Nó chỉ bao gồm một vài trường EditText và TextViews.
Bạn có thể sử dụng Trình phân tích bộ nhớ để biết chi tiết và so sánh phân bổ không? – Asahi