В конце времени жизни процесса вся память процесса (как кучи Java, так и C ++) будет освобождена и восстановлена системой. Однако одно дело - закрытие активности Android не обязательно заканчивает процесс. Я не уверен, какова там политика завершения процесса.
С другой стороны, полагаться на сборку мусора и finalize () для меня звучит солидно. Вы утверждаете - «Android не гарантирует finalize()
». У вас есть цитата для этого? Потому что, если он идет с заявлением об отказе «когда объект освобождается как часть завершения процесса ...», тогда мы все еще в порядке.
И если вы супер-параноик, вы можете написать свою собственную обертку malloc () / free () / realloc (), сохранить список всех выделенных объектов и ввести функцию очистки, которая обходит список и освобождает их все. Содержащие объекты Java, однако, могут закончиться в странном состоянии зомби, где память была освобождена из-под них. Это сложное предложение, в котором очень легко ошибиться. Так что я бы еще сказал - верь в сборщика мусора. Отсутствие этого будет ... тревожным.