Как запретить Android выгружать «тяжелое» приложение?
День добрый!
Есть некое приложение, которое умеет делать некие тяжёлые вещи, грузящие и греющие девайс. Написано оно на JavaSciprt / Cordova (так нужно).
Так вот, суть в чём. Если приложение делает не особо тяжелые вещи, то оно работает себе спокойно сутками с активным дисплеем (WakeLock) и никаких вопросов не вызывает.
Но, если его заставить выполнять тяжелые вещи, то примерно через пол часа Android его сворачивает/убивает. Чего быть не должно.
Подобное приложение от других разработчиков при схожей задаче не вылетает, но при этом требует рута. Отсюда предположение, что что-то оно умеет, чего не знаю я и для чего нужны рут-права.
Собственно вопрос, что оно такое делает и как сделать тоже самое? Какой плагин Cordova решает эту проблему? Приложение узкоспециализированное, так что, права рута - не проблема.
Android может убить приложение, находящееся на экране только в самом-самом последнем случае. Когда уже не осталось приложений с меньшим приоритетом. Я за время своей практики ни разу с таким не сталкивался, а иметь дело приходилось со многим.
Вангую, что эта ваша поделка на джиэс просто выжирает всю память и по-тихому грохается с ООМ.
Как показала практика, вылетает только при проигрывании нескольких видео в 720p одновременно. При проигрывании другого контента, либо видео в меньшем количестве - всё прекрасно.
как проигрывание видео тегом video выжирает память, мне пока не ясно. Судя по логам, на старте свободно 640 метров, к моменту вылета - 270.
как проигрывание видео тегом video выжирает память, мне пока не ясно.
В смысле? о_О а видео где, не в памяти, по-вашему? Конечно несколько видео в вебвью будут так сильно нагружать память.
Где такие волшебные логи, что на андроиде досконально можно узнать потребляемую память без профайлера, я, к сожалению, не знаю.