Как освободить память в андроиде

Мне нужно освободить указатели ниже, как освободить память для холста, краски и матрицы?

 Canvas pcanvas = new Canvas();

 Paint mPaint = new Paint(); 

 Matrix matrix = new Matrix(); 

Заранее спасибо.

android,memory-management,memory-leaks,out-of-memory,

0

Ответов: 2


Java не имеет указателей, и вы не можете явно освободить память.

Однако возможно утечка памяти в Java и Android . Если какой-либо из ваших объектов ссылается на неуправляемую память, вы должны сообщить им, когда они могут освободить эту память.

Поскольку кажется, что вы работаете с графикой, я предполагаю, что вы где-то используете растровые изображения, и они используют много памяти, и память должна быть освобождена. Когда вы закончите использовать растровое изображение, обязательно позвоните Bitmap.recycle().


после того, как вы больше не ссылаетесь на созданный вами объект, присвойте ему нулевое значение. Это, очевидно, не сразу освобождает память, но, таким образом, вы сообщаете сборщику мусора, что объект пригоден для сборки мусора ... (эффективный Java).

Редактировать: как сказал @spatulamania, если вы управляете растровым изображением, вы должны вызвать метод recycle (он, я думаю, вызывает ac / c ++ free), чтобы освободить память, связанную с. Устанавливать в null ссылку на растровое изображение бесполезно, поскольку растровое изображение реализовано в нативном режиме, а объект java занимает несколько байтов.

андроид, управления памятью, память-утечки, из-за нехватки памяти,
Похожие вопросы