Як я не можу додатків вбивати під час сну?


11

У мене Droid 2. У мене довга, ресурсомістка гра (спектральні душі), яку я хотів би залишити працювати, поки не користуюся телефоном. Якщо я натискаю кнопку "Домашній Android", щоб повернутися на головний екран, а потім негайно запустити гру, це буде саме там, де я зупинився. Те саме, якщо натиснути кнопку живлення для сну, а потім негайно увімкніть телефон, розблокуйте та знову запустіть гру.

Якщо я залишу його на деяку кількість часу (кілька годин), то коли я повернусь і запускаю гру, вона починає свіжою, ніби ніколи не працює. Тим часом телефоном нічого не було використано, хоча синхронізація ввімкнена.

Моє запитання двояке: як я можу отримати більше інформації про те, які програми вбиваються, коли і чому, і як я можу налаштувати її, щоб ця програма продовжувала працювати? Мені не потрібно, щоб нічого робити на задньому плані, я просто хочу, щоб він все ще був там, коли я повернусь.

Я знайомий з концепцією очищення оперативної пам'яті Android, оскільки вона потрібна і не потребує вбивці завдань, але я хочу, щоб це не вбивало ЦЕ завдання, якщо я дійсно не вийду з нього.


Я припускаю, що у вас немає доступу до фактичного коду?
Нанна

Правильно, це додатки із закритим кодом, придбані поза магазином додатків.
Джейсон Вірс

Відповіді:


2

Я майже впевнений, що це не варіант в дизайні Android за замовчуванням. Я ніколи особисто не бачив програми для подібних речей, тому що більшість людей бажають, щоб програми вимикалися, щоб швидкість телефону не була вимкненою. Це система Android, яка вимикає невикористані програми. Творцю програми потрібно було б розробити сервіс, щоб він працював у фоновому режимі або, можливо, як завжди на обчисленнях чи аудіо, щоб система подумала, що програма щось робить. Це з'їсть ваш акумулятор.


Хоча ваше перше і третє речення абсолютно правильні, інші - ні.
Майкл

2

Пропозиція: Використовуйте програму Tasker, щоб вимкнути час очікування екрана для вашої програми. Це може перешкодити йому відійти на другий план.


Я погляну і спробую, дякую! Я зазначу будь-який успіх чи невдачу.
Джейсон Віерс

Я можу підтвердити, що зміна таймауту екрана в Tasker НЕ перешкоджає програмі вбиватись. Дякую за пропозицію, хоча.
Джейсон Віерс

1
Зачекайте, чи це не завадить вимкнути екран? Таким чином витрачає акумулятор?
Майкл

2

До першої частини вашого питання;

як я можу отримати більше інформації про те, які програми вбиваються, коли і чому?

Android SDK має швидкий підсумок пам’яті Android http://developer.android.com/guide/topics/fundamentals.html

За замовчуванням кожна програма працює у власному Linux-процесі. Android запускає процес, коли будь-який із компонентів програми потрібно виконати, а потім вимикає процес, коли він більше не потрібен або коли система повинна відновити пам'ять для інших програм.

Настільки ефективно Android можна назвати програмою вбивства, коли він визначить, що ви його не використовуєте (я натиснув кинути в додатку) або коли у нього не вистачає ресурсів. Наприклад, якщо у вас 512 Мб оперативної пам’яті та 10 безкоштовних, і ви запускаєте додаток, якому потрібно 12, він спробує визначити найменш використаний додаток, з якого він може захопити 12.

Це, як правило, робить це досить добре (принаймні, з мого досвіду). Можливо, ви зможете повернутися додому зі своєї гри та зробити пару речей, але по-третє, це виселить гру. Майте на увазі, наскільки саме ресурсомісткі ігри, тому, швидше за все, це вб'є це програма швидше, ніж пізніше.

Тепер причина, по якій вона зникає через час, полягає в тому, що у вас, ймовірно, є процеси синхронізації, які намагаються запуститись і конкурувати за ресурси. Сторінки пам’яті додатків на даний момент потрапляли дуже рідко, тому справедлива гра з рекультивацією пам’яті, яку ОС вважає необхідною.

До вашого другого питання;

як я можу його налаштувати, щоб ця програма продовжувала працювати?

Я не використовую вбивцю завдань, але я впевнений, що в хороших (схоже, ATK є лідером https://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) має виняток список. Можливо, ви можете додати білий список потрібної гри та передати в чорний список інші процеси.

Я також не знайомий з цією грою, тож я не впевнений, які здібності до автоматичного збереження та подібні є. Сподіваюсь, мені була допомога.


1

Як отримати додаткову інформацію про те, які програми вбиваються і чому?

Ви можете підключити телефон до adb ; а потім увімкніть logcat ; збереження виводу у файл.
У файлі журналу ви будете мати тонна інформації; шляхом пошуку вашої назви програми; ви можете дізнатися, коли його вбивають.

Що ви можете зробити, щоб андроїдна система не зупинилася?
Не знаю; сподіваємось, відповідь rAndy спрацює.
Однак; Я би звернувся до розробника і повідомив би його про проблему, оскільки йому / їй повинен бути найлегший час, щоб виправити це


Я збирався згадати рішення logcat. Просто хочу додати, що ви занадто шукаєте ActivityManager (це внутрішній андроїд "вбивця завдань"). Ви не можете запобігти андроїд від програми вбивств. Ідея Android полягає в тому, що якщо процес додавання повністю загине, додаток повинен мати можливість відновити попередній стан. Тому розробники додатків повинні переконатися, що ви не починаєте гру з самого початку.
Потік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.