Лучшие убийцы приложений на андроид. Все о процессах в android и работа с task killer. Принцип работы приложений и процессов в андроид

Лучшие убийцы приложений на андроид. Все о процессах в android и работа с task killer. Принцип работы приложений и процессов в андроид

Немного истории…

MS-DOS — операционная система, которая существует и развивается в виде различных версий с 1981 года. Сначала IBM, потом IBM совместно с Microsoft с разными названиями и особенностями (PC DOS) каким-то образом совершенствовали и доводили систему до ума.

Погружаемся в DOS …

Эта гибкая операционная система, которая не требует больших ресурсов персонального компьютера. Наиболее известными и популярными в наше время являются версии 6.22 и 7.1 (7.10). MS-DOS 6.22 — последняя официальная самостоятельная версия, выпущенная в июне 1994 года. MS-DOS 7.10 — не существует как самостоятельная операционка, является составляющей частью Windows 98. Она получилась настолько удачной, что различными народными умельцами из ближнего и дальнего зарубежья были созданы различные сборки, упрощающие установку и настройку системы. Эти сборки создали миф о существовании оригинальной версии MS-DOS 7.10 .

Еще есть MS-DOS 8.0, которая существует с сентября 2000 и входит как составная часть Windows ME, с учётом определённых особенностей и ограничений, широкого распространения данная версия не получила.

MS-DOS и современность.

Какой интерес у современного пользователя может вызвать старая операционная система? Для любителя даунгрейда всё понятно, а может ли система удивить современного среднестатистического пользователя?

Как вам возможности нашей старушки в сфере мультимедиа при современном-то уровне развития компьютерных технологий? Итак, проигрыватель аудио для DOS и Windows. Называется это чудо Mpxplay.

Mpxplay поражает возможностями и качеством воспроизведения звука.

Воспроизводит звук любых современных и не современных форматов аудио и видео (да, да и видео)!

Поддерживаемые операционки:
— MS-DOS 5, 6, 7 или совместимые (FreeDOS, DR-DOS)
— Windows 98, 2000, XP.
Системные требования:
— процессор: Intel 80486 100mhz (DX4-100)
— оперативка: 4-8Mb
Звуковая карта (для DOS):
шина PCI: SB Live/Live24, Audigy 1,2,4,LS, X-Fi Xtreme Audio; CMI 8338/8738; Intel ICH, VIA 686/8233/8235 и др.
— шина ISA (или эмуляторы): SB16, ESS, WSS, GUS, SBpro и др.

Программа имеет отличный интерфейс, работает с большинством популярных во времена MS-DOS звуковых карт. Мы проверяли на Creative SB Live! (SB 0220 - EMU10k1). Просто прелесть! И эта программка пойдет на Intel 80486 100mhz и RAM: 4-8Mb ! Ну как, разбалованный современными операционками пользователь, ты уже удивился?

И всё же игры!

Старые добрые игрушки! Память о тех незабываемых впечатлениях детства с каждым годом все сильнее и сильнее. Пускай они не запускались с первого раза, пускай не всегда удавалось настроить звук, управление не всегда было понятное, русификация часто отсутствовала, но чувство чего-то внеземного, потустороннего, не реально космического не проходит до сих пор.

Можно, конечно воспользоваться возможностями архива интернет, установить на современный компьютер DOSBox, но это не заменит ощущения запуска любимой игрушки на старом железе!..

Убеждены в необходимости установки на свое устройство различного рода диспетчеров приложений типа Task Killer, так как считают, что с их помощью управление фонововыми задачами в становится более эффективным.

Однако эффективное еще не предполагает достижения более высокой производительности и увеличения времени автономной работы.

Android запущенные приложения

В реальности многие для ручного или автоматического завершения процессов могут как раз напротив, снизить производительность системы и привести к более быстрой разрядке аккумулятора. На деле они совершенно бесполезны, кроме того Android сам прекрасно справляется с распределением памяти и не нуждается в подобных утилитах.

Будем считать, что большинство пользователей Android хорошо знакомы с операционной системой Windows. Известно им и то, что несколько одновременно запущенных приложений включая те, которые висят в системном трее, так или иначе, потребляют определенное количество оперативной памяти.

Если запущенных в слишком много или сами по себе они являются ресурсоемкими, это приводит к ощутимому замедлению работы компьютера. Следовательно, завершение одной или нескольких программ высвободит часть памяти и ускорит быстродействие компьютера

Управление приложениями Android

С операционной системой Android все обстоит несколько иначе. Тут просто нет очевидных инструментов для закрытия приложений, нет никакой красной кнопки с крестиком и это вовсе не упущение со стороны разработчиков Android. Если вы возвращаетесь на либо же запускаете другую программу, открытое приложение не закрывается, а продолжает работать в фоновом режиме.

Вопреки распространенному мнению, большая часть приложений Андроид в фоновом режиме никаких системных ресурсов не потребляют, так как им просто не дается управление. Висят же они в кэше процессов не просто так, а с определенной целью.

Почему Task Killers не нужны?

Когда вы возвращаетесь в приложение, операционная система быстро возобновляет его работу и причем с того места, на котором оно было приостановлено. Если Task Killer это приложение принудительно закроет, то при следующем запуске оно начнет свою работу не с того места, где было остановлено, а с самого начала то есть со всей инициализацией и прочим, что в общем как раз и приведет к усиленному потреблению ресурсов и разрядке аккумулятора.

И только относительно небольшая часть программ, например, или загрузчики, работая в фоновом режиме, продолжают потреблять ресурсы памяти.

Кстати, эти Task Killers сами относится к категории этих же приложений. Находясь в активных процессах и продолжая “кушать” оперативную память, они завершает работу программ, находящихся в фоновых процессах, которые собственно особо ничего не потребляют и батарею не садят! Забавно, не правда ли?

Сторонники использования Task Killer возражают, мол, Android использует много оперативной памяти. Да это отчасти так, но с другой стороны это позволяет быстро переключаться между приложениями без повторной инициализации и распаковки ресурсов.

Android не так уже и глуп, как это может кое-кому показаться. Если ему потребуется больше памяти он сам, автоматически закроет неиспользуемые приложения и, причем сделает это весьма корректно и никакие киллеры ему для этого не нужны.

Когда Task Killers могут помочь

Единственное преимущество Task Killer и аналогичных ему утилит заключается в том, что они позволяют пользователю завершать процессы тогда когда это ему надо. Но еще раз повторим, никакой особой нужды в этом нет.

Убийцы процессов и прочие ему подобные штуки не просто бесполезны, более того, они могут снизить производительность . Причины тому мы уже описали – это и повторная инициализация, и распаковка ресурсов и прочие сопровождающие старт операции. К тому же есть такие приложения, которые после принудительного завершения Task Killer перезапускаются автоматически.

Состояние же памяти никакого влияния на расход заряда аккумулятора не оказывает, – будет ли она заполнена нулями или единицами, количество потребляемой ей энергии как было, так и останется на одном уровне.

Но неужели, спросите вы, все так безнадежно и Task Killer совершенно ни к чему не годены? Ну почему же? Найти применение этой штуке все же можно.

Например, используя ее для завершения зависших приложений или “ненужных” программ, действительно использующих ресурсы устройства. Но не будет ли гораздо проще удалить ненужное или некорректно работающее приложение, чем прибегать к помощи таких сомнительных инструментов как Task Killer.

Сегодня хотим рассказать Вам о таких программах как task killer, как с их помощью, возможно, ускорить работу системы и стоит ли вообще этим заниматься.

В среде пользователей андроид бытует мнение, что чем больше оперативной памяти занято, тем медленнее будет работать вся система. Неплохо было бы поставить программу, которая будет просто глушить, либо убивать на корню не нужные нам процессы, нагружающие телефон или планшет. Но давайте не спешить с выводами, а более детально разберемся во всем этом. А начнем с принципа работы приложений и процессов.

Принцип работы приложений и процессов в андроид

Компания Google, а именно она является разработчиком Android, сделала многое, что бы использование системы было максимально комфортным. В основе она заложило ядро Linux’а. Так вот Linux’ воспринимает запуск приложения, как задействованный процесс и после закрытия приложения совсем не торопиться его завершить. Ведь обращение к нему, возможно, повториться снова. Я думою вы часто замечали, что, не успев закрыть приложение (например, VK) и опять нажав на него, оно всплывает мгновенно. Это случается только потому, что процесс ещё не остановлен и находится в памяти виртуальной машины (оперативной памяти).

Как же система решает, какие из них должны быть закрыты, а какие нет? Для этого существует встроенная утилита OOM Killer .

OOM Killer (out of memory killer - нехватка памяти или её недостаток) занимается тем, что освобождает оперативную память на вашем устройстве.

Но он не осуществляет этого сразу после того как вы закрыли приложение, он делает это при нехватке памяти на устройстве и отключает неиспользуемые процессы. Ведь если бы они вообще не завершались, телефон или планшет просто напросто повис бы либо перегрелся. Но этого не происходит, так как умный Linux’ - Android не даст этому случиться. Лозунг Linux’ был, что бы вся оперативная память, должна работать.

OOM Killer работает по специальному алгоритму, который отключает только те процессы, которые действительно не нужны вам, тем самым минимизировать сбои в работе устройства и ни в коем случае не навредить вам, а наоборот максимально увеличить удобство использования системы.

Приоритеты процессов в андроид

Каждый процесс определяется OOM Killer по нескольким категориям, то есть система понимает какой важнее и какой нужен для успешного выполнения работы. Каждому из них присваивается категория важности. Вот основные:

  1. Foreground applications . Это приложения, которые всегда находятся на переднем плане. К ним относятся так называемые программы постоянного пользования, такие системные службы как «Телефон» или строка состояние, запущенная в режиме foreground. Приложения этой категории имеют наивысший приоритет. Они практически ни когда не закрываются.
  2. Visible applications . Это приложения, которые вы видите. Допустим, вы находитесь в браузере и вам позвонили, приложение браузер уходит с переднего плана на второй и из категории Foreground перейдёт в категорию Visible. Что не сильно понизит его приоритет. А уменьшит его настолько, чтоб вы после могли с лёгкостью к нему вернуться.
  3. Secondary Server . В этой категории находятся сервисные службы. Вы их не можете видеть, и они имеют скрытые процессы. Такие процессы останавливаются крайне редко и даже если это случилось при критической нехватки памяти, то, как только память восполниться они тут же будут запущены. Такие запущенные службы вовсе не потребляют энергию вашей любимой батареи, так как практически всё своё время находятся в ожидания и начинают активную деятельность только после того как выполнилась какую либо манипуляция затрагивающую этот самый процесс. Но только как вы перестанете им пользоваться, он «заляжет в спячку» в ожидании следующей команды
  4. Hidden applications . К этой категории относятся программы, не имеющие определённых служб из-за которых они становятся невидимыми. Допустим, вы работаете в программе и нажали кнопку «Домой». Такое приложение остаётся в памяти устройства. Ведь по критериям Android,а, человек нажавший кнопку «Домой» не собирается закрывать приложение, поэтому обязательно к нему вернётся. При нажатии кнопки «Назад» вы выходите, соответственно программа может быть закрыта.

Если вы действительно захотели завершить работу с приложением, нажмите кнопку «Назад», а не «Домой». Тогда память вашего устройства значительно расширится. Эту ошибку делают 90% пользователей Android.

Таск киллеры как способ удаления процессов

Но и это система не идеальна. Существуют программы, которые сами по себе устанавливаются, осуществляют не нужную загрузку из сети и тому подобные действия, а соответственно хранятся в памяти. Вот с такими процессами надо бороться.

В этом могут помочь менеджеры процессов либо как их еще называют такс киллеры от английского Task killer. Task Killer и аналогичные утилиты позволяют пользователю завершать процессы тогда когда это ему надо. И действительно на старых моделях телефонов они показывали хороший эффект . Возрастала производительность и освобождалась память.

Но теперь, эти не желательные приложения, повторно загружают процессы в память. А соответственно их повторно надо удалять. Постоянное удаление, повторная загрузка, это лишняя нагрузка на процессор и повышенное потребление энергии.

Поэтому наибольший эффект в современных телефонах для очистки памяти и улучшения работы можно добиться с помощью программ чистильщиков . Они комплексно подходят к данной процедуре. А такс киллеры уже ушли на второй план.

Выводы. Современные телефоны не нуждаются в ручном управлении процессами оперативной памяти (task killer). Система андроид сама правильно ей распорядится. Наиболее эффективно очищать свой телефон от не нужных программ с помощью специализированных .

Привет, друзья! Сегодня мы обратимся к крайне спорной и интересной теме - использовании таск киллеров на наших андрофонах. Вашему вниманию представляется перевод весьма популярной в интернетах статьи, написанной мистером flipz для сайта geekfor.me .

Этот вопрос поднимается снова и снова. Люди говорят, что программы выполняются в фоновом режиме и считают, что они тратят их батарейку или сжирают всю память. И их естественная реакция - установить программу, которая может убивать таски. Но есть один момент... скорее всего вы нанесете больше вреда, чем принесете пользы, убивая таски, которые не готовы завершиться. У меня была та же проблема когда я только купил свой CDMA Hero. На нем крутилась целая куча разных программ, а я не хотел этого и постоянно их убивал. Через несколько недель я осознал, что если я перестану пользоваться таск киллером и полностью его удалю, то мой телефон на самом деле начнет работать лучше! Приложения стали закрываться сами и появилось впечатление, что все стало работать лучше. Я понимаю, что, возможно, есть краткосрочные выгоды от удаления таска, но все равно найдите время прочесть эту статью.

Вот немного информации прямо со страницы для разаботчиков под Android. Важные части я отметил жирным шрифтом. Здесь довольно много написано, но я правда считаю, что это важно. Если вы хотите всех подробностей, то читайте по этой ссылке на страницу разработчиков. Если же вы хотите версию "ниасилил, слишком многа букаф", то проскрольте до конца страницы.

По умолчанию каждое приложение выполняется в своем отдельном Linux процессе. Android запускает процесс, когда надо выполнить любой код приложения и завершает процесс, когда он больше не нужен и системные ресурсы требуются другим приложениям.

Поставщик содержимого (СontentProvider) активен только во время ответа на запрос от ContentResolver. Подписчики широковещательных сообщений (Broadcast receivers) активны только во время ответа на широковещательное сообщение. Таким образом, нет никакой необходимости принудительно завершать эти компоненты.Активности (Activities), с другой стороны, представляют собой пользовательский интерфейс. Они являются долгосрочными сеансами общения с пользователем и могут сохранять активность даже в ждущем режиме пока взаимодействие продолжается. Также и сервисы могут продолжать работать длительное время. Поэтому в системе Android есть встроенные методы завершения активностей и сервисов:

  • Активность (Activity) можно завершить, вызвав ее метод finish(). Одна активность (Activity) может завершить другую (порожденную первой с помощью метода startActivityForResult()), вызвав метод finishActivity() последней.
  • Сервис можно остановить, вызвав его метод stopSelf() или вызвав Context.stopService().

Компоненты также могут быть завершены системой, когда они больше не используются или когда системе Android требуется память для более активных компонент.

Если приложение долгое время не используется, система завершает все его активности (Activities) кроме главной (root). Когда пользователь возвращается к приложению все так же как и было, но присутствует только главная активность (Activity). Идея в том, что если пользователь когда-то оставил приложение, то через некоторое время он вернется чтобы выполнить какую-то новую задачу по сравнению с той, что он выполнял до этого.

Жизненный цикл активности (Activity)

Активность (Activity) может по сути находиться в трех состояниях:

  • Активном или выполняемом - когда находится на экране на первом плане (наверху стека активностей текущего приложения). Именно в этой активности пользователь выполняет свои действия.
  • В приостановленном состоянии (paused), если с нее ушел фокус, но она до сих пор видна пользователю. Это происходит в том случае, когда сверху находится другая активность, которая либо прозрачна, либо занимает не весь экран, так что приостановленная активность из-под нее частично видна. Приостановленная активность - полностью действующая (содержит всю информацию о своем состоянии и содержащихся элементах и связана с менеджером окон (window manager), но может быть убита системой в ситуации жесткой нехватки памяти.
  • В остановленном состоянии (stopped), если она полностью закрыта другой активностью. В ней все еще хранится информация о состоянии и содержащихся элементах. Но она больше не видна пользователю и чаще всего будет уничтожена системой, когда память будет нужна еще где-то.

Если активность приостановлена или остановлена, система может выгрузить ее из памяти либо попросив ее завершиться (вызвав ее метод finish()), либо просто убив сам процесс. Когда надо будет ее снова показывать пользователю, ее придется перезапустить и полностью восстановить предыдущее состояние.

Активности отдается приоритет в промежуток времени между вызовом метода onResume() и соответствующим вызовом метода onPause(). В это время активность находится выше всех других на дисплее и именно с ней взаимодействует пользователь. Активность может часто переходить между возобновленным и приостановленным состояниями - например, метод onPause() вызывается когда девайс переходит в ждущий режим или когда стартует новая активность, метод onResume() вызывается когда приходит результат активности или новый Intent. По этой причине в эти два метода не стоит помещать действия, которые могут занять много времени.

Следующая диаграмма демонстрирует циклы и переходы между состояниями активности. Основные состояния, в которых может находиться активность, изображены в виде цветных овалов. Прямоугольниками отображены методы, которые вы можете имплементировать для выполнения каких-либо действий при переходе активности из одного состояния в другое.

Итак... версия для тех, кто не любит много читать:

  • В систему Андроид встроено автоматическое удаление задач при нехватке памяти.
  • В систему Андроид встроено автоматическое удаление задач, закончивших свое выполнение.
  • В систему Андроид встроено автоматическое удаление задач, к которым долгое время не обращались.
  • Большинство сервисов (возможно выполняющихся в фоне) используют крайне мало памяти в том случае, если они не выполняют какую-то трудоемкую задачу.
  • Поставщик содержимого (СontentProvider) интенсивно работает только когда получает сообщение о необходимости предоставления своего содержимого. Во все остальное время он использует очень мало памяти.
  • Унитожение процесса, не готового к этому, приводит только к тому, что он должен снова подгрузиться и начать все с самого начала, когда вновь понадобится.
  • Из-за того, что задача скорее всего выполняется в фоне не без причины, ее уничтожение приветдет лишь к ее перезапуску, когда активность, использующая ее вновь к ней обратится. И ей не останется ничего кроме как начать все с начала.
  • Уничтожение определенных процессов может иметь нежелательные побочные эффекты. Неполученные смски, непрозвонившие будильники и вылетающие программы - только небольшая их часть.
  • Единственный верный способ запретить чему-то выполняться на вашем телефоне - деинсталлировать.apk.
  • Большинство приложений сами завершают работу если вы покидаете их нажимая кнопку “назад” (back) до тех пор, пока они не закроются, а не кнопку “домой” (home). Но даже если вы нажимаете “домой”, Андроид все равно в конце концов выгрузит приложение, если оно довольно долго будет находиться в фоне.

Вопросы? Сомнения? Кажется, что я не прав? Оставьте свой комментарий - давайте обсудим!

Дополнение:

Одна штука, о которой я совсем забыл упомянуть в этой статье - это то, что механизм работы памяти в линуксе отличается от такового в Windows. В общем случае вам нужно ровно столько памяти, сколько вы собираетесь занять. Поэтому, если в целом всем выполняющимся программам нужно 100 мегабайт, то 150 мегабайт памяти будет более чем достаточно. И нет необходимости что-то удалять из памяти пока вы не заполните все 150 мегабайт. Система же Windows, похоже, работает чуть лучше когда у нее больше незанятой памяти, даже если не вся память была занята изначально. Несомненно, те, кто давно сроднились с компьютером, помнят, что существовали программы очистки памяти под винды.

Но линукс не страдает таким поведением. Признаюсь, я не знаю точного механизма и причины этого... но линукс работает одинаково в независимости от того, если ли у него 20 или 200 мегабайт незанятой памяти. И, как я упомянул выше, Андроид начнет автоматически выгружать приложения когда количество памяти понизится. Процитирую Криса Джонстона “Чистить буферы и кеши в ОЗУ довольно-таки глупо. Представьте себе учителя, который вместо того, чтоб писать на всю длину классной доски, как только заканчивает предложение тут же его стирает и СНОВА и СНОВА пишет начиная с верхнего левого края доски. Или, представьте, вам понравилась песня. Вы записываете ее в начало кассеты. Когда вам хочется записать еще одну, вы пишете поверх первой или все-таки после нее?”

Я также встречал много людей, которые ошибочно предполагают, что чем больше памяти используется, тем быстрее садится батарейка. На самом деле, это гораздо больше зависит от количества проделанных процессорных циклов, а не от количества памяти, занятого какой-то программой. Однако, все это наталкивает на мысль! Когда таск менеджер может быть полезным? Когда нужно определить, ЧТО заставляет ваш телефон тормозить, что заставляет батарейку быстрее садиться. Именно такой способ помог нам выяснить, что, оказывается, существует бага , оставшаяся еще с версии 1.5, которая тормозит наши CDMA Hero и по сей день. И в то время как программа, занимающая память не приносит никакого вреда, программа, нагружающая процессор, абсолютно точно это делает. И все равно я не рекомендую использовать таск киллеры для уничтожения программы, которая загружает ваш процессор (если это только не разбушевавшийся процесс-зомби, но в этом случае вообще лучше перезагрузиться). Но они могут помочь вам разобраться, что же происходит с вашим телефоном.

Надеюсь, моя статья кому-то помогла. Вместе со всем вышесказанным... я всегда приветствую экспериментирование. Это ваш телефон и вы вольны делать с ним все, что вздумается. Если вы можете поклясться, что таск киллеры делают из вашего телефона конфетку - используйте их! Спасибо за внимание.

А каково ваше мнение по этой теме? Вы сами используете таск киллеры? Изменило ли что-то прочтение данной статьи? Интересно ли будет почитать еще что-то по этой теме? Делитесь с нами вашим мнением и соображениями!



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows