Tôi đang làm việc trên ứng dụng để phát trực tuyến nhạc từ internet ... Ứng dụng của tôi thực hiện nhiều thứ và cấu trúc theo cách này: Tôi có chế độ xem tab và mỗi chế độ xem được phân bổ trong bộ nhớ nên mỗi lần Tôi điều hướng qua các tab Tôi tìm lại trạng thái trước đó (mỗi tab cũng có thể mở một webview để tìm thông tin về bài hát, tin tức, vv .. trên internet) tất cả đều phát triển trí nhớ nhưng làm cho ứng dụng trở nên rất thân thiện ... Sau khi đã chú ý để tránh rò rỉ bộ nhớ theo hướng dẫn của Android, tôi cố gắng xem xét nghề nghiệp heap và tôi thấy rằng ứng dụng của tôi phân bổ tối đa 3,5MB bộ nhớ và kích thước phân bổ là 4,5 - 4,6 MB ... Tôi đang làm việc trên trình mô phỏng. Họ không phải là quá nhiều tôi nghĩ, nhưng đôi khi ứng dụng của tôi được khởi động lại thành lập trong LogCat một thông điệp lạ nhưAndroid phát triển vùng heap frag
Grow heap (frag case) to 3.373 for 19764-byte allocation
Nó là gì? một vấn đề giả lập? hoặc cái gì khác? Tôi có sử dụng quá nhiều bộ nhớ không?
Cảm ơn bạn trước sự giúp đỡ nào :)
oh cảm ơn vì câu trả lời ^^ tại sao nó không phải là điều xấu? ứng dụng của tôi thoát khi điều này xảy ra ... Tôi nghĩ rằng điều này là xấu ... lỗi của tôi? Tôi nhận được một tin nhắn khác: heapworker là wedged: 13129ms dành bên trong Landroid/media/MediaPlayer; .finalize() V ... Bạn có biết đây là gì không? – Erenwoid
Vâng, nếu ứng dụng của bạn thoát, thì điều đó thật tệ. Tôi có nghĩa là chỉ sử dụng ~ 4MB đống cho nhiều trang web không phải là xấu. Tôi không biết nhiều về vấn đề 'HeapWorker'. Thông thường nó theo dõi bộ nhớ được cấp phát và chạy bộ thu gom rác trên các đối tượng không sử dụng. Đoán của tôi là một trong các chủ đề của bạn đang sử dụng tất cả CPU và 'MediaPlayer' không có thời gian để chạy' finalize() ', đó là một chức năng chắc chắn không mất 13 giây. –