Хотите поблагодарить автора блога - жмите здесь !
1 2 0
1 2 0

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

суббота, февраля 07, 2015

Android - куда девается память, как увеличить количество свободной памяти. Или "одним махом троих побивахом" :)

Куда уходит память, в какие города ?
И как найти нам средство, чтоб вновь попасть туда ?
Она уйдет неслышно, когда Android спит,
И писем не напишет, и врядли позвонит...
И зимой и летом, небывалых ждать чудес,
Где ты память где ты, но не здеееесь....
И снова "о наболевшем" - о тому куда пропадает память в Android и как ее вернуть назад. Это серьезная головная боль - нехватка памяти Android у всех, у кого устройства имеют RAM(ОЗУ) 512мб и менее. А таких еще осталось очень много, и что удивительно, что некоторые производители как бы издеваясь над своими покупателями продолжают выпускать такие модели. Кроме того, есть у владельцев Android и вторая беда - куда девается системная память ? "Вроде ж почти все приложения сосланы на SD, какие можно, а системной памяти почти не осталось - куда ??? Так вот, причина нашлась, и при этом одно решение, позволяет одновременно освободить как часть оперативной памяти занимаемой системой, так и часть системной памяти, занимаемой программами.
Как освободить максимум памяти, занимаемой приложениями я описывал ранее, но остается память, занимаемая самой системой, которую ни один "cleaner" освободить не способен, и которая на устройствах с памятью 512 и менее составляет иногда более половины всей памяти. Мне случайно удалось обнаружить куда девается значительная часть памяти занимаемой системой Android и как ее освободить.
Оказывается "собака порылась" в механизмах, которые использует Android при установке программ на SD карточку ! Я не буду описывать как я это обнаружил, так как это лирика и везение, опишу только "куда она ушла и как вернуть обратно".

Во первых куда. Начнем с более понятного. С системной памяти программ. Это давно известно, но некоторые пользователи могут не знать. Даже если Вы выбрали "установить программу на карту памяти", на самом деле, на карте памяти размещается только часть программы, и иногда небольшая. А значительная часть ее данных, библиотеки, и часть программы все равно остается в "системной памяти программ", и в итоге. даже если "все ставили на SD карту, системная память программ все равно оканчивается и больше ничего поставить не получается.
Но самое интересное и неожиданное, то о чем умалчивают все мануалы - оказывается установка программы на SD карту, увеличивает объем ОЗУ занятой самой системой, безвозвратно, и никакие клеанеры не способны ее вернуть ! Чем больше у Вас программ установленных на SD карту, не важно пользуетесь Вы ими или нет, тем меньше у Вас остается свободной оперативной памяти, и тем сильнее тормозит Android как при загрузке системы так и при работе, вплоть до того, что если у Вас установленных программ на SD карте много, он иногда даже загрузиться с первого раза не может, уходя пару раз в "повторную перезагрузку", а сам процемм загрузки длится очень долго. Да еще вдобавок после полной загрузки, система еще достаточно долго "тормозит" - перечитывая все установленные на SD карнту программы (не важно что Вы ими в данный момент вообще не пользуетесь), и "сьедая кусок оперативной памяти". Я такого поведения Android ну никак не ожидал - с точки зрения здравой логики, если программа лежит на SD карте, и не запускается, то она может занимать часть хранилища (карты и системной области РПЗУ), но никак не часть оперативной памяти. Но какие "гениальные" решения Гогл при создании Android привели к тому. что даже просто лежаще на карте программы, отбирают часть оперативной памяти ! Догадаться до такого я точно не мог, потому что это противоречит здравому смыслу, обнаружил случайно.

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

Если у Вас есть рут, то все выглядит куда веселее. Для начала нам понадобится еще одна программка из Маркета - Link2SD в гогл маркете. Бесплатная версия нам тоже подойдет, особенно если задача прежде всего освободить ОЗУ. Если же не хватает еще и тн "памяти на телефоне" (системной памяти программ), то желательно приобрести платную версию - у нее шире возможности. Также, если приобрести возможности нет, особенно учитывая что Гогл взялся блокировать доступ к маркету например жителям Крыма, можно взять полную версию (либо кракнутую) бесплатно вот здесь Link2SD на 4pda.ru. К стати там есть множество программ под  Андроид в "полной версии", что может очень помочь жителям Крыма, когда нужно установить полную версию программы. а Гогл принципиально отказывается дать возможность честно купить нужную программу.
Также нам понадобится "USB читалка флэш карточек". Изымаем карточку из телефона, вставляем в "читалку".
Теперь нам нужно подготовить SD карту. Я для этого использовал Линукс, так как он одинаково хорошо работает и с разделами EXT4 (или EXT3, EXT4 лучше, но EXT3 можно сделать программой под Windows, может в след версиях она будет и EXT 4 поддерживать - какой см ниже) и с разделами FAT32 (изначально у Вас на карточке только FAT32)/ Но если у Вас нет доступа к Линуксу, Вы можете воспользоваться программой под Windows, которая тоже это умеет MiniTool® Partition Wizard, которую можете взять по этой ссылке . ПРЕЖДЕ ЧЕМ НАЧИНАТЬ РАБОТАТЬ С КАРТОЧКОЙ ПАМЯТИ - СОХРАНИТЕ ВСЕ ДАННЫЕ С НЕЕ НА КОМПЬЮТЕР, в отдельный каталог - ВСЕ ПОЛНОСТЬЮ, ЧТО ТАМ ЕСТЬ, ВКЛЮЧАЯ СИСТЕМНЫЕ, иначе Вы с ними распрощаетесь навсегда, или получите проблемы, с программами ранее "установленными на карточку памяти".
Теперь нам надо разбить карточку по новой. Для этого нам нужно удалить существующий на карточке раздел FAT32, так чтобы все место оказалось "свободным". Затем нам нужно создать дополнительный раздел  EXT4(или EXT3). ВАЖНО - оба раздела должны быть "Primary" (основными). Не создавайте "extended". Сначала должен следовать FAT32, его создаем первым, потом "EXTx" - его создаем вторым. Если Вы пользуетесь Windows, то можете посмотреть инструкцию как это делать, с помощью рекомендованной выше MiniTool® Partition Wizard. Инструкция на английском, но там есть скриншоты, так что разобраться думаю проблем не составит. Сначала смотрите какой общий обьем карточки (не тот что на ней написан а тот что укажет программа разбивки карточки на разделы, так как то что на карточке написано это "реклама", а реальный почти всегда меньше).Затем вычитаете из общего размера, размер, который Вы хотите оставить для памяти программ, которые мы будем переносить на SD карточку "нестандартным способом". Я рекомендую оставить не менее 3х гигабайт, а лучше 4-5, если карточка позволяет (размер), чтобы потом не было "мучительно больно" если вдруг "место кончится а хочется еще программку поставить". Результат вычитания - то место, которое мы можем выделить под "обцчную SD карту" (FAT32)/ Потом создаем второй primary EXT4/EXT3, на все оставшееся место. Смотрим сколько он получился. Если "просчитались" и он меньше ожидаемого, снова удаляем оба, и процедуру повторяем со скорректированными размерами.
Теперь у нас есть готовая карточка. Перед тем как ставить ее в телефон, отключите ее от компьютера (читалку от компьютера), подключите вновь, и на появившуюся подключенную карточку в раздел FAT32 (будет виден только раздел с FAT32 если под виндовз), скопируйте назад ВСЕ ранее сохраненные с карточки данные.
Теперь вставьте карточку в телефон, Далее нам нужно установить LINK2SD на аппарат, и перенести приложения. При этом нужно четко отличать. есть два типа приложения - те которые поддерживают "app2SD" (стандартный метод переноса на SD карту), и те которые не поддерживают). И в программе link2SD в меню приложений (попадаете в него по долгому клику на названии приложения которое хотите перенести (или вернуть)), есть 2 варианта "Сослать" (или вернуть), и "Перенести на SD карту" (Вернуть в память телефона). Это два РАЗНЫХ способа переноса. Тот который "сослать на SD карту"  это стандартный, работающий так же как тот что через меню "программы" настроек Android, со всеми его "прелестями" по пожиранию памяти, и он нам не нужен. Нам нужен тот, который "Сослать" (Вернуть - это возможность вернуть назад в память телефона ранее сосланное). Не путайте эти два способа ! Еще нам понадобится "вернуть в память телефона" - чтобы убрать те что мы ранее стандартным способом поместили на SD карту, и потом их "Сослать". В ме5ню сверху (где леечка) Вы можете выбрать список каких программ просматриваете (системные, сосланные (нестандартным способом), на SD карте(перенесенные стандартным способом), В памяти телефона, Обновлено (это системные обновленные, при обновлении на самом деле программа не обновляется, а помещается в память аппарата а а в прошивке остается старая версия - пару слов как освободить занимаемое такими программами место я скажу позже)).
Сначал заходим в те что "на SD карте", и переносим 2-4 из них в "память телефона" (количество зависит от того сколько у Вас свободной памяти есть в телефоне), потом немножко ждем, даже после того как сказано что "перенос осуществлен" - это нужно чтобы аппарат закончил "фоновые операции", определить что закончил можно по тому что меню при прокрутке вверх/вниз перестало подтормаживать. Потом переходим в "в памяти телефона", нахдим те программы которые мы только что переместили с карты памяти в память телефона, и на каждой из них выбираем "Сослать", после чего возникает меню, где можно проставить галочки - ставим все. Если у Вас "платная" (или ломанная) версия, то галочек будет больше чем в "бесплатной" - снова таки ставим все, и подтверждаем перенос. Снова возвращаемся к программам на SD карте, и далее проделываем вышеописанное, пока все программы на SD карте не окончатся. Да, посмотреть сколько у Вас свободной памяти "в телефоне" и на картах, Вы моете не выходя из Link2SD. Для этого войдите в ее меню (справа в углу три квадратика), и выберите "память". После того как Вы полностью окончите перенос "нестандартным способом", можете взглянуть сколько у Вас теперь свободно "памяти телефона" - свободной станет намного больше. Это "приятный бонус" - к освобождению оперативной памяти - попутно мы еще и часть "памяти телефона" освободили :) Это были нюансы, а также детали, которые могли быть не понятны, а как в общем работать с Link2SD Вы можете прочитать тут, со скриншотами и на русском
Собственно с освобождение ОЗУ все, можете перегрузить аппарат, и наслаждаться тем. что обьем свободной оперативной памяти увеличился на 50-100 мегабайт, в зависимости от того, сколько у Вас программ было "установлено на SD карту", и при этом программы по прежнему на SD карте, и "бонусом" освободилась еще и часть внутренней флэш памяти телефона. Плюс загрузка аппарата если у Вас было ранее много программ "установленных на SD карту", после такого "переноса" ускорится раза в полтора-два.
Но раз мы уже установили Link2SD, то мы можем с ее помощью проделать еще несколько приятных вещей, которые позволят освободить еще больше памяти телефона, и навсегда забыть про противное "свободное место оканчивается, не возможно установить программу".
Я ранее обещал рассказать что делать с теми что находятся в "обновленных", и "дублируют" занимаемое место - ведь одна старая копия лежит в "прошивке". а обновление, по сути вторая копия, занимает место "в телефоне". Безобразие ! Лечится просто. Заходите в "обновленные", вызываете меню "по долгому нажатию" для каждой из них, и выбираете "интегрировать в ROM". Операция достаточно длительная - не прерывайте, прерывание в этот момент может повредить прошивку. Так проделываем пока в списке "обновленные" ничего не останется. В момент переноса. могут возникать "ошибки" программы, которую переносите - не обращайте на них внимание - это не ошибка переноса, а просто сама переносимая программа была в этот момент запущена возможно, и неожиданно обнаружила что "она запущена а ее нет в том месте откуда запущена". После того как все программы из "обновленных" будут "интегрированы", ОБЯЗАТЕЛЬНО ПЕРЕЗАГРУЗИТЕ ТЕЛЕФОН.
И это еще не все прелести. которые нам дает эта программка. Помните попадались программы. которые не  удавалось перенсти на SD карту, так как они не поддерживали этой "фичи". Теперь это не важно - Вы их все можете "сослать" - они даже этого не заметят, и будут работать точно также как работали "в памяти телефона", но место в телефоне больше занимать не будут. И еще. У некоторых программ "кеш растет безразмерно".  приводя к тому, что сколько бы не было "памяти телефона" но в итоге можно наткнуться на то что "память окончилась". Такие программы тоже стоит "сослать" на SD карту (не забыть установить все галочки при "ссылке"). В частности это касается приложения Google Plus и некоторых браузеров. После такого переноса, они будут создавать свои кеши уже на SD карточке.
Собственно пока все, мы освободили часть оперативной памяти Android, которую ранее занимала система, и которую никоим другим способом освободить не удавалось, попутно увеличили количество свободного места в самом телефоне, и заодно ускорили загрузку телефона после включения/перезагрузки, в общем "одним махом троих побивахом" :)


Комментариев нет:

Отправить комментарий

Закрыть окно X
Пожалуйста, потратьте несколько секунд на поддержку блога и его автора
Нажмите на рекламную ссылку: Рекламная ссылка для поддержки блога, или на баннер вверху справа страницы.