Как использование ОЗУ влияет на разряд батареи?


17

Я действительно запутался в управлении памятью Android.

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

Это означает, что использование слишком большого количества оперативной памяти не разряжает батарею? Поскольку ОЗУ - это аппаратное обеспечение, что-то на нем не должно разряжать батарею Что если я играл в Temple Run и просто нажал кнопку «Домой», чтобы приложение загрузилось быстрее при следующем запуске? Или мы должны просто нажимать кнопку назад, пока приложение не выйдет, как мы всегда делаем? Я также искал в интернете, но некоторые сказали, что это разрядит батарею, так как она находится в оперативной памяти, некоторые сказали, что нет разницы между оперативной памятью, хранящей реальные данные или ничего. Должны ли мы отказаться от нашей привычки убивать приложения и просто расслабиться?

Некоторые точные ответы будут с благодарностью. Благодарю. :)


1
Ваша оперативная память является одним из наименее энергозатратных аппаратных средств ...
Брайан С.

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

Ответы:


22

Я сомневаюсь, что существует прямая связь между потреблением батареи и использованием оперативной памяти. Аппаратное обеспечение не знает, какие ячейки ОЗУ содержат «использованные» данные, а какие нет. Таким образом, не может быть никакой разницы в потреблении батареи на этом уровне.

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

И да, вам определенно следует отказаться от привычки убивать приложения. В большинстве случаев Android способен управлять ресурсами системы достаточно хорошо, и вам не стоит беспокоиться о ручном уничтожении приложений. Они определенно не будут разряжать батарею, если будут просто бездействовать и потреблять немного оперативной памяти. Конечно, если эти приложения постоянно используют процессор, они разряжают батарею (но это обычно является признаком ошибки в приложении или плохо реализованном приложении).


С другой стороны, есть неправильно работающие приложения, которые просыпаются и не засыпают в течение разумного периода времени. Это приложения, которые могут вызвать проблемы с аккумулятором. Вы можете взглянуть на них, используя Wakelock Detector
Ehtesh Choudhury

Вот почему я сказал, что приложения, использующие постоянно процессор, обычно неисправны или, по крайней мере, плохо реализованы. Обратите внимание, что я бы не рекомендовал использовать такие приложения, как Wakelock Detector, поскольку эта функция теперь является частью Android (с 4.4 IIRC).
поток

16

Думайте об оперативной памяти как о бумажном блокноте. Вы можете записать данные в книгу (карандашом), и вы можете стереть эти данные и заменить их новыми данными, но книга всегда имеет одинаковый вес. Книга не становится тяжелее, что бы вы ни написали в ней. Точно так же с современной технологией ОЗУ использование батареи ОЗУ является фиксированным, независимо от того, что (если что-либо) хранится в нем.

С точки зрения Android, не имеет значения, выходите ли вы из приложения с помощью кнопки «Домой» или «Назад». Нажатие кнопки «Назад» не убивает приложение и не удаляет его из оперативной памяти. Удаление приложения из списка «недавних приложений» не приводит к его уничтожению или удалению из ОЗУ. Единственное отличие, которое он имеет, - это изменение того, что приложение показывает вам при следующем запуске: экран, на котором вы были раньше, или основной / первый экран приложения.

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

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

Это именно то, что Android делает с вашей оперативной памятью. Большой книжный шкаф со справочными книгами похож на внутреннюю память вашего телефона: вы не можете использовать его напрямую (потому что книги напечатаны, а не написаны карандашом), поэтому копирование данных в вашу тетрадь обходится дорого (это требует времени и энергии) RAM) для работы.

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

Думая об этом таким образом, легко ответить на ваш вопрос. Использование большего объема ОЗУ не потребляет больше энергии напрямую. Приложение диспетчера задач может заставить вас использовать больше энергии, потому что вам приходится копировать вещи из внутреннего хранилища в оперативную память, что в противном случае вам не понадобилось бы. Таким же образом, одно приложение, требующее ОЗУ, стоит вам вдвое дороже: сначала вы должны записать всю информацию этого приложения в записную книжку, а затем, когда вы закончите с этим, есть много информации, которую вам пришлось стереть (чтобы сделать пространство), которое вы должны скопировать с книжной полки снова.


2
Хаха, мне нравится аналогия (+1). (Хотя, технически, если вы напишите что-нибудь для ноутбука, он будет весить чуть больше ... но я слишком критичен.) Еще кое-что, что стоит отметить для @MinNaingOo, это то, что, если вы запускаете диспетчер задач, это Диспетчер задач также использует циклы питания (AKA CPU), чтобы делать то, что ему нужно. Следовательно ... больше батареи используется.
JasCav

2
Также стоит упомянуть сборщик мусора. Ваша записная книжка не просто содержит информацию, которая вам может понадобиться снова. Он также содержит «мусор» - информацию, которая вам больше никогда не понадобится. Это потому, что андроид ленив и даже не стирает мусор, пока ему не понадобится больше памяти. Когда у вас мало памяти, он будет собирать этот мусор, чтобы сэкономить место. Если у вас часто не хватает памяти, то она будет собирать мусор чаще и использовать больше батареи.
James_pic

@James_pic Вот о чем четвертый абзац. Я не хочу дополнительно включать в него GC внутри приложения, так как это большая тема, относящаяся только к программистам.
Дэн Халм,

The only difference it makes is changing what the app shows you next time you launch it- Эхх, в основном верно, но не всегда. «Назад» говорит приложению «хорошо, я закончил», поэтому оно может сразу же выполнить дополнительную очистку. Я уничтожил свой тарифный план однажды, когда случайно нажал «Домой» вместо «Назад» из Карт Google - он продолжал обновляться в фоновом режиме.
Изката

> Удаление приложения из списка «недавних приложений» не приводит к его уничтожению или удалению из ОЗУ. Это было изменено в последних версиях Android. Смотрите , например: code.google.com/p/android/issues/detail?id=63618
JIS

1

Как объяснила вам статья, не имеет значения, сколько материалов загружено в ОЗУ, поэтому вполне нормально, если вы не закрываете бездействующие приложения. Но если приложение постоянно выполняет какую-либо деятельность, например синхронизирует некоторые данные, загружает или даже записывает звук, оно разряжает батарею, поскольку оно использует процессор, который высасывает энергию из батареи, в этом случае закрытие приложений приведет к быть хорошей вещью, чтобы рассмотреть. В противном случае, если вы уверены, что приложение не будет выполнять постоянную активность в фоновом режиме, вам не стоит беспокоиться о том, что оно хранится в ОЗУ, это то же самое, что хранить ваши файлы на SDCard (я имею в виду, что SDCard не использовать батарею, верно?). Так что просто расслабьтесь :) Я думаю, что храмовый забег не делает никаких действий в фоновом режиме, так что не беспокойтесь, чтобы оставить его в баране. Надеюсь, я объяснил тебе. Ура!


0

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


В чем преимущества заморозки приложения?
Мин Наинг Оо

1
@MinNaingOo, «плохое» приложение, не может заставить пользователя думать, что батарея iPhone выходит из строя. Так что останавливая пользователя, обвиняющего яблоко.
Ян Рингроз

1
@MinNaingOo Прочитайте это addictivetips.com/android/…
bluehallu

1
@Hallucynogenyc Я использую Greenify на всех своих устройствах Android, хотя я не очень много знал о ее преимуществах. Спасибо за ссылку :)
Min Naing Oo

1
@MinNaingOo Прочитайте это stackoverflow.com/questions/11417837/…
bluehallu

0

Отвечая на вопрос названия: «Может ли чрезмерное использование ОЗУ разрядить аккумулятор?»
(Не ваш «реальный» вопрос, но, возможно, полезен для других, интересующихся названием вопросов.)

Да, когда приложениями или службами, пытающимися работать одновременно, используется слишком много ОЗУ, системе может потребоваться уничтожать некоторые из них очень часто, даже несколько раз в секунду, и перезапускать их, как только что-то понадобится.
Это использует много циклов ЦП и, следовательно, некоторую емкость батареи.

Обратите внимание, что это не обычный случай, такой как «не убивать некоторые приложения вручную», это «очень испорченное» состояние - но я видел, что это происходит, похоже, связано со многими сервисами, которые мешают работе и конкурируют за память.


-1

Поскольку основное ОЗУ является динамическим (сделано из конденсаторов, которые теряют информацию), они должны быть обновлены. Это обновление потребляет энергию, а полный (или использованный) блок должен потреблять больше энергии для «перезарядки», чем один раз, содержащий все 0, или каким-то образом знает, что он не используется.

Однако, если это действительно заметно, это для кого-то с большим количеством ноу-хау электроники.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.