Спершу це мала бути стаття про оптимізацію лаунчерів (вона вийде пізніше), але я вирішив розділити її на дві, винісши теоретичну частину в цю статтю.
Оперативна пам'ять - це швидкодійна комп'ютерна пам'ять, призначена для запису, зберігання та читання інформації у процесі її обробки (з Вікіпедії). Я підкреслив останні слова, тому що саме цим вона відрізняється від постійної пам'яті. Оперативна пам'ять (або ОЗП) має набагато вищу швидкість, але може зберігати інформацію лише за умови наявності живлення. Якщо електропостачання зникає, всі дані в ОЗП стираються. Цей вид пам'яті застосовується як "посередник" між обчислювальними системами (процесором, відеочіпом тощо) та постійною пам'яттю. Така система використовується тому, що сучасні процесори можуть виконувати мільярди (!) операцій за секунду, а постійна пам'ять (звідки процесори беруть дані та куди зберігають результати обчислень) просто за ними "не встигає". Також, іноді немає необхідності зберігати деяку інформацію в постійну пам'ять. Наприклад, під час гри відеочіп перетворює певний комплекс даних на кадр, який може зберігатися в ОЗП, якщо він має з'явитися на екрані пізніше (така технологія застосовується, наприклад, в грі Forza Horizon 3). Але після його показу необхідно відобразити наступний кадр, а попередній, скоріше за все, більше ніколи не знадобиться. Тому, після показу кадру, він стирається з ОЗП. Це також дозволяє зберегти ресурс постійної пам'яті та подовжити термін її роботи, оскільки вона не призначена для частого перезаписування інформації та в таких умовах швидко виходить з ладу. Тут можна провести аналогію з папером та олівцем. Якщо часто щось писати на папері, потім стирати та знову записувати, то, рано чи пізно, на папері (в місцях найінтенсивнішої роботи) з'являться дірки, тобто деяку інформацію (яка мала бути написана на місці дірки) буде втрачено. Думаю, Ви зрозуміли функції обох видів пам'яті, що застосовуються в комп'ютерних пристроях. До речі, вони є не лише в ПК та смартфонах, а й у кнопкових телефонах, смарт-телевізорах та навіть смарт-годинниках!
Тепер про роботу ОЗП в Android-пристрої. Якщо говорити точно, то вона може бути зовсім різною та залежить від конкретної ОС на основі Android, але для спрощення ми роглядатимемо лише зберігання додатків та, конкретніше, два іхні види - активний та кешований.
Активний режим роботи програми, що зберігається в ОЗП - це такий режим, коли програма не лише знаходиться в пам'яті, а й активно обробляє інформацію, тобто виконує якісь дії. При цьому вона може як відображатися на екрані, так і працювати у фоновому режимі ("безслідно"). Приклад - згорнуте вікно онлайн-гри, яку не видно на екрані, але яка зберігає зв'язок з ігровим сервером щоб не втратити незбережені досягнення гравця. Тут активною діяльністю є саме зв'язок із сервером - програма активно надсилає та отримує певну інформацію, що потребує роботи процесора та зміни певних даних в ОЗП, причому доволі часто. Хоча, такі ігри зустрічаються доволі рідко, оскільки в Android є можливість змінювати роботу програми залежно від її стану. Саме тому в активних процесах зазвичай присутні лише важливі системні служби, відкриті та моніторингові додатки.
Кешований режим - це такий, коли додаток (або його частина) зберігається в оперативній пам'яті, але не виконує ніяких дій, або робить це доволі рідко. Кешований режим застосовується, наприклад, для швидшого відкривання програми (оскільки певна її частина вже знаходиться в ОЗП). При цьому часто кажуть, що програма просто "висить" в пам'яті. Переважна більшість додатків при згортанні переходять саме у цей режим.
Для нас тут важливі три головні факти:
- Програма, що знаходиться в кешованому (пасивному) режимі майже не споживає заряд батареї та ресурси пристрою (звісно, окрім оперативної пам'яті);
- У разі нестачі вільної ОЗП для роботи якогось додатка частина кешу очищується. При цьому багато програм мають механізми збереження даних перед закриттям, тому, скоріше за все, важливу інформацію не буде втрачено.
- Android-додатки під час фонової роботи намагаються максимально знизити споживання ресурсів що пов'язано з меншою (порівняно з настільними комп'ютерами) потужністю смартфонів та планшетів. Це спричиняє перехід до кешованого режиму споживання ОЗП.
Кілька приміток:
ВідповістиВидалити1. (Для експертів) Я розумію, що насправді робота з ОЗП в Android є набагато складнішою, однак в межах цієї статті я намагаюся доступно викласти ту частину, яка може бути корисною звичайним користувачам. Тим паче, влаштуванням Android на глибокому рівні я не володію.
2. (Дня всіх інших) Споживання ресурсів пристрою, включно з оперативною пам'яттю, системою та сторонніми додатками залежить від налаштувань. Оскільки головними темами блогу є налаштування та оптимізація, я вважаю, що його читачі мають усвідомлювати свої дії та відповідальність за них (у т. ч. виконуючи наведені в Блозі налаштування) для чого потрібно знати основи та головні принципи функціонування додатків та оптимізації роботи їх та самої операційної системи.