Насколько я понимаю, теория на Android состоит в том, что запущенные приложения должны освобождать память через механизм обратного вызова, когда другому процессу с более высоким приоритетом (то есть текущему приоритетному процессу) требуется больше памяти; Кроме того, ОС начнет убивать другие приложения, если требования к памяти будут увеличиваться.
Поэтому, если вы хотите, чтобы ваше приложение могло использовать практически всю память системы, вам просто нужно убедиться, что оно остается на переднем плане, или использовать какой-то другой механизм, чтобы гарантировать, что его требования к памяти имеют более высокий приоритет, чем другая память требует (к сожалению, я не могу сказать, как именно будет выглядеть эта последняя часть).
На самом деле вы не можете и не должны делать вручную, чтобы освободить память за пределами вашего конкретного приложения. Операционная система делает правильные вещи: когда требуется память, она сообщает приложениям «удалить все несущественные данные», а затем после этого, если требуется больше памяти, сообщает им о потере. Любой ручной подход к освобождению памяти в основном делал бы то же самое.
Редактировать: Похоже, вы задаетесь вопросом, что делают другие приложения "освобождения памяти". Ответ в том, что они используют ручной подход и делают то же самое, что и ОС - отправляя сигналы запущенным процессам. Причина, по которой это не нужно, заключается в том, что свободный баран на самом деле не приносит вам пользы до того, как он вам понадобится. Операционная система сделает это правильно, прежде чем вам понадобится дополнительное пространство, которое гарантирует, что ни один процесс не будет остановлен раньше, чем это абсолютно необходимо.