Я написал одно приложение на java и хочу, чтобы у приложения максимальный размер кучи был не 512мб а больше на такую величину какую я задам.
Многие наверно скажут, что без рут это не возможно. Но почему же игры под андроид жрут много памяти и никакой рут им не нужен?
(Надеюсь я понятно высказался - здесь 2 вопроса)
Вроде надо не на Джаве писать, а на С/С++ (NDK).
Ну может потому что приложение на жабе это список инструкций для виртуальной машины. И в угоду скорости и простоте разработки оптимизация и использование ресурсов отодвинуто на 100500е место. Поэтому и жрет … надеясь на сборщик мусора. Но тут еще и сами разработчики особо не парятся над контролем выделяемых структур в программе.
А если писать на сях то придется держать в голове объекты, их размеры, не забывать удалять неиспользуемые блоки и четко понимать структуру кода. Но на это уйдет куча времени разработчика и естественно денег на его оплату.
Всегда проще написать в требованиях к софту не менее 128 гигабайт оперативной памяти чтобы уж наверняка хватило. ))
Так вопрос же в том, как они могут жрать больше макс. доступного обычным приложениям (зависит от устройства, но вроде как одно обычное приложение не может получить все доступные гигабайты памяти)
Ну и ответ вроде как в том, что если использовать NDK, то таких ограничений почему-то нет (но конечно ОС наверно все равно может убить если будет мало памяти).
Игры пишут на движке типа Юнити, и как видно из документации того же Юнити, оно использует NDK.
Благодарю за пояснения.