2011-09-01 33 views
5

Ai có thể cho tôi biết Asset Allocations có nghĩa là gì trong adb shell dumpsys meminfo Android? Tôi thấy điều này khi khởi động thiết bị Android của mình và tôi thấy tài nguyên của ứng dụng của mình.arsc đang tiêu thụ 516K mặc dù ứng dụng của tôi không chạy.Asset Allocations có nghĩa là gì trong adb shell dumpsys meminfo

Cảm ơn.

Trả lời

1

Với resources.arsc, có hai điều có thể xảy ra.

Thông thường, tệp được lưu trữ trong .apk chưa nén. Android mmap() s tệp và chỉ đọc từ tệp nếu cần, mà không tải toàn bộ tệp vào RAM.

Nếu nó được nén, truy cập ngẫu nhiên trực tiếp vào tệp sẽ không còn là tùy chọn nữa, do đó nó sẽ được giải nén và lưu trong bộ nhớ cho các hoạt động tiếp theo (ví dụ: tải chuỗi).

Tôi không chắc chắn lý do tại sao điều này xảy ra nếu ứng dụng không chạy. Có lẽ nó được giữ như một background process?

+0

lý do tại sao Android không nén nó và sao chép dữ liệu/dữ liệu hoặc thực hiện một số điều đầu tiên để apt sau đó đặt nó vào dữ liệu/ứng dụng để tệp APK có thể nhỏ hơn? – DzMonster

+0

Tôi không có câu trả lời hay. Tôi nghĩ bạn sẽ phải thỏa hiệp theo một trong hai cách. Nếu bạn lưu nó vào '/ data/data', bạn sẽ lãng phí dung lượng đĩa. Nếu bạn tải nó vào RAM, bạn lãng phí RAM. Tệp của bạn có đủ lớn để phân bổ đó là một vấn đề không? – Vlad

+0

Có, bây giờ nó có kích thước gần 30MB, tệp resource.arsc là 6mb. Bởi vì nó có rất nhiều ngôn ngữ bên trong. Bất kỳ đề xuất nào? – DzMonster