Перейти до основного вмісту

Оперативна пам'ять в Android для початківців

 Спершу це мала бути стаття про оптимізацію лаунчерів (вона вийде пізніше), але я вирішив розділити її на дві, винісши теоретичну частину в цю статтю.

 

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

 

 Тепер про роботу ОЗП в Android-пристрої. Якщо говорити точно, то вона може бути зовсім різною та залежить від конкретної ОС на основі Android, але для спрощення ми роглядатимемо лише зберігання додатків та, конкретніше, два іхні види - активний та кешований.

 Активний режим роботи програми, що зберігається в ОЗП - це такий режим, коли програма не лише знаходиться в пам'яті, а й активно обробляє інформацію, тобто виконує якісь дії. При цьому вона може як відображатися на екрані, так і працювати у фоновому режимі ("безслідно"). Приклад - згорнуте вікно онлайн-гри, яку не видно на екрані, але яка зберігає зв'язок з ігровим сервером щоб не втратити незбережені досягнення гравця. Тут активною діяльністю є саме зв'язок із сервером - програма активно надсилає та отримує певну інформацію, що потребує роботи процесора та зміни певних даних в ОЗП, причому доволі часто. Хоча, такі ігри зустрічаються доволі рідко, оскільки в Android є можливість змінювати роботу програми залежно від її стану. Саме тому в активних процесах зазвичай присутні лише важливі системні служби, відкриті та моніторингові додатки.

 Кешований режим - це такий, коли додаток (або його частина) зберігається в оперативній пам'яті, але не виконує ніяких дій, або робить це доволі рідко. Кешований режим застосовується, наприклад, для швидшого відкривання програми (оскільки певна її частина вже знаходиться в ОЗП). При цьому часто кажуть, що програма просто "висить" в пам'яті. Переважна більшість додатків при згортанні переходять саме у цей режим.

 Для нас тут важливі три головні факти:

  1. Програма, що знаходиться в кешованому (пасивному) режимі майже не споживає заряд батареї та ресурси пристрою (звісно, окрім оперативної пам'яті);
  2. У разі нестачі вільної ОЗП для роботи якогось додатка частина кешу очищується. При цьому багато програм мають механізми збереження даних перед закриттям, тому, скоріше за все, важливу інформацію не буде втрачено.
  3. Android-додатки під час фонової роботи намагаються максимально знизити споживання ресурсів що пов'язано з меншою (порівняно з настільними комп'ютерами) потужністю смартфонів та планшетів. Це спричиняє перехід до кешованого режиму споживання ОЗП.
 З цього випливає наступний висновок - програми, що знаходяться в оперативній пам'яті у кешованому режимі є менш важливими, ніж ті, що працюють в активному режимі, тому закриття перших зазвичай не призводить до проблем з пристроєм (винятки - деякі системні додатки). Це твердження "працює" не завжди, проте актуальне для несистемних програм. 
 
 Щоб переглянути, які програми працюють у фоновому режимі, та, за необхідності закрити деякі з них, необхідно в налаштуваннях "Для розробників" знайти пункт "Запущені служби", "Запущені сервіси" або подібний (залежить від пристрою). Я не раджу вимикати все, що потрапить під руку, оскільки це може викликати збої в роботі ОС.
 
 Дана тема часто переплітається з поняттям циклу життя Activity. Я знайшов цікаву статтю на цю тему (посилання). ПОСИЛАННЯ НЕ Є РЕКЛАМОЮ! Раджу ознайомитися, але перед цим зауважу, що Activity - це певна частина будь-якого додатка для Android. Наскільки мені відомо, всі додатки складаються з Activity.

 Сподіваюся, мені вдалося доступно пояснити загальні принципи взаємодії додатків та оперативної пам'яті в ОС Android. Якщо Ви знайшли помилки та/чи неточності або у Вас залишилися запитання з цієї теми, прошу повідомляти про це в коментарях.
 
 Дякую за увагу!

Коментарі

  1. Кілька приміток:

    1. (Для експертів) Я розумію, що насправді робота з ОЗП в Android є набагато складнішою, однак в межах цієї статті я намагаюся доступно викласти ту частину, яка може бути корисною звичайним користувачам. Тим паче, влаштуванням Android на глибокому рівні я не володію.

    2. (Дня всіх інших) Споживання ресурсів пристрою, включно з оперативною пам'яттю, системою та сторонніми додатками залежить від налаштувань. Оскільки головними темами блогу є налаштування та оптимізація, я вважаю, що його читачі мають усвідомлювати свої дії та відповідальність за них (у т. ч. виконуючи наведені в Блозі налаштування) для чого потрібно знати основи та головні принципи функціонування додатків та оптимізації роботи їх та самої операційної системи.

    ВідповістиВидалити

Дописати коментар

Читайте також

З Новим 2022 роком! (Оголошення 1.01.2022)

  Шановні відвідувачі, гості та колеги!     Хочу щиро привітати усіх вас зі святом! Бажаю в Новому році здоров'я, щастя, благополуччя, а також хорошої роботи ваших гаджетів. 2022 рік обіцяє бути цікавим та активним у сфері технологій: розширення покриття 5G, 4- та 3-нм. техпроцес в мобільних ЦП, поглиблені та ефективніші налаштування Android з допомогою додатка SetEdit , нові пристрої та багато іншого. Будемо разом набувати нових знань та застосовувати їх.  Незважаючи на святковий період, пам'ятаймо про захист себе та своїх близьких від небезпечного вірусу COVID-19!  Дбаймо про себе та свою техніку!  З повагою, Хакер-програміст

Налаштування лаунчера для зниження споживання оперативної пам'яті

Достатня кількість вільної оперативної пам'яті є важливим складником нормального функціонування будь-якого комп'ютерного пристрою, в тому числі смартфона чи планшета. Проте багато людей користуються смартфонами з малою кількістю цієї пам'яті (менше 4 Гб.). Через це їхні пристрої працюють повільно та нестабільно. Частково вирішити такі проблеми можна шляхом комплексної оптимізації ОС. В цій статті я розповім про одне з налаштувань, що може допомогти знизити споживання оперативної пам'яті системою.  Сподіваюся, Ви вже прочитали заголовок та побачили слово "лаунчер". Деякі користувачі-початківці не знають, що це. Тому я вважаю за необхідне пояснити значення цього терміну перш ніж наводити налаштування.     Лаунчер , лончер (від англ. launcher - пускова установка) або додаток головного екрана - це додаток, призначений для відображення головного екрана операційної системи, та, зокрема, встановлених на пристрої програм. Головна функція такого застосунку - дати к...

Як налаштувати Android 12? Повна оптимізація операційної системи

  В цій статті ми будемо проводити повну (або майже) оптимізацію операційної системи Android 12. Вона допоможе поліпшити продуктивність та автономність пристрою, а також захистити Ваші персональні дані. Стаття буде довгою, тому раджу запастися терпінням та, за бажанням, чашечкою гарячого напою та чимось солоденьким :).  Для Вашої зручності налаштування розміщені в тому порядку, в якому вони розташовані в прошивці Pixel Experience . Я обрав саме її за зразок тому, що вона має найбільш "стоковий" вигляд системи та має додаткові функції  від Google Pixel , наявні в багатьох кастомних прошивках. Залежно від встановленої ОС, деякі налаштування можуть відрізнятися або бути відсутніми . Також, деякі ОС можуть мати додаткові опції. Зі зрозумілих причин я не можу перепробувати всі прошивки, тому тут будуть наведені загальні налаштування, доступні на більшості ОС, що базуються на Android 12 . Взагалі, налаштування "Чистого" Android не сильно впливають на продуктивність, то...