Почему вконтакте много весит андроид

Почему мобильные приложения занимают все больше места

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


Авторы инфографик в оригинальных статьях выделяют две причины такого роста:

  • повышение максимального допустимого размера приложений AppStore
  • оснащение телефонов все большим объемом памяти

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

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

Лишние копии ресурсов в приложении

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

В одной из статей автор решил детально разобрать внутреннее строение приложения Facebook для iOS после того, как оно увеличилось за полгода с 165 до 253 мегабайт. Он обнаружил, что в приложении содержалось свыше 40 мегабайт избыточных дублирующих данных. В основном это были картинки, но также были и абсолютно идентичные внутренние программные файлы. Таким образом, просто удалив дубликаты, можно было бы уменьшить размер приложения на 15% процентов. Что, кстати, Facebook впоследствии и сделал.

А/Б тестирование и внедрение новых функций

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

Переход на более комфортные языки программирования

В случае с приложениями под iOS переход с Objective-C на Swift может дать увеличение размера скомпилированного кода приложения в 3-4 раза. Это происходит из-за того, что ради удобства и скорости разработки новые языки могут:

  • использовать большие типы данных по умолчанию, которые занимают больше места
  • вводить дополнительные тесты и проверки в код при компиляции
  • использовать большую стандартную библиотеку функций
Читайте также:  More popular android apps

Сюда же можно отнести переход приложений на новые фреймворки, которые тащат с собой много необходимых им файлов.

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

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

Среди наиболее популярных «велосипедов», заменяющих стандартные средства ОС, можно выделить:

  • Браузеры
  • Работа с камерой
  • Ввод текста и обработка жестов
  • Проверка орфографии

Рост требований к приложениям

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

  • После появления Retina разработчиков обязали добавлять картинки с большей детализацией и соответственно размеров.
  • Переход iOS с 32 на 64 бита впоследствии заставил всех разработчиков выпускать именно 64-битные приложения.

К слову в AppStore для борьбы с ростом размера приложений по таким требованиям потом была представлена технологий App thinning, по которой на конкретный телефон скачивается адаптированная версия приложения без избыточных ресурсов для других версий телефонов.

Источник

ВК забивает память телефона — как очистить?

Простые советы по удалению кэша и лишних файлов ВК со смартфона.

ВКонтакте — приложение социальной сети, которым пользуется огромное количество людей. Отсюда вытекает и крупный размер приложения, увеличивающийся с каждым обновлением. Что делать, чтобы освободить место, и почему ВКонтакте забивает память телефона?

Почему ВК забивает память смартфона?

Приложение ВКонтакте после нескольких месяцев активного использования может начать забивать память. Его размер у многих пользователей достигает 1 ГБ и даже превышает это число. Существует несколько причин, почему ВКонтакте начинает занимать много памяти.

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

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

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

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

Читайте также:  Как работает квик андроид

Обновления. Чем дольше приложение ВКонтакте используется на телефоне, тем больше обновлений оно получает. Каждое из них обладает своим весом, хоть и по отдельности каждой обновление занимает немного памяти.

Что делать, если ВКонтакте забивает память телефона? Как очистить память?

Уменьшить размер приложения ВКонтакте можно разными способами, при этом удалять важные переписки или файлы вовсе не нужно.

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

  1. Открыть файловый менеджер на телефоне.
  2. Найти папку «VK».
  3. Перейти в папку «Photos» и удалить продублированные фотографии.

Сами оригиналы фотографий при этом не удалятся и будут доступны в переписках и галерее.

Скачанные фотографии из приложения ВКонтакте также находятся в папке «VK» в подпапке «Downloads». В ней можно выбрать ненужные изображения и удалить их, чтобы освободить немного места на телефоне.

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

  1. Открыть настройки телефона.
  2. Выбрать раздел «Приложения».
  3. В списке приложений выбрать ВКонтакте.
  4. Перейти в раздел «Использование памяти» или «Хранилище и кэш».
  5. Выбрать действие «Очистить кэш».

На нашем примере видно, что кэш приложения ВК занимает почти 500 Мб:

После очистки кэша через настройки необходимо очистить кэш в самом приложении. Для этого необходимо:

  1. Открыть приложение ВКонтакте.
  2. Вызвать меню, нажав на три полоски в углу экрана.
  3. Перейти в «Настройки».
  4. Выбрать пункт «Приложение» со значком шестеренки.
  5. Пролистать вниз и в разделе «Кэш», выбрать действия «Очистить кэш» и «Очистить кэш сообщений».

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

Переустановить приложение. Если ВКонтакте все еще занимает слишком много памяти, может помочь его переустановка. Для этого необходимо удалить приложение с телефона и заново установить его через Google Play.

Если найти причину забитой памяти телефона не удалось, рекомендуем прочитать эту статью.

Источник

Почему приложения такие большие №1: Социальные сети

Андрей Подкин

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

Facebook

Приложение занимает почти 70 мегабайт. Основной проблемой для анализа является обфускация. Частично может помочь найденная в сети информация (о правильной структуре пакета и о некоторых других внутренностях). Конечно, хотелось бы получить полную деобфускацию, но просто так это не сделать (например, деобфускатор deguard работает только с пакетами до 16 МБ). Однако поскольку нас не интересуют тонкости, а хочется получить только оценку в общем и целом, то основную информацию может дать даже анализ обфусцированного пакета. Итак, основные «пожиратели мегабайт»:

Читайте также:  Capture traffic from android

  • Само приложение + библиотеки на java — 26,1 Мб;
  • Набор скриптов на JavaScript (обфусцированный Fb4aBundle.js) — 19 Мб:
  • Бинарные библиотеки — 8,9 Мб;
  • Файлы локализации — порядка 13 Мб;
  • Графика — порядка 5 Мб.

ВКонтакте

Здесь, в отличие от Facebook, все намного проще. Приложение не обфусцировано, поэтому можно спокойно смотреть, куда тратится весь 31 мегабайт пакета.

Этот объем в основном приходится на следующие компоненты:

  • Бинарные библиотеки — 15,6 Мб (из них 9,7 Мб — своя библиотека и 4,8 Мб — ffmpeg — стандартная библиотека для работы с видео).
  • Эмодзи — 6,4 Мб (хранятся отдельно от стандартной графики в нескольких размерах);
  • Шрифты — 485 Кб;
  • Графика под разные плотности пикселей — около 6 МБ (здесь есть разные изображения, начиная от иконок и заканчивая баннерами);
  • Собственно приложение + библиотеки на Java — 6,6 Мб.

В итоге ничего особо криминального у VK нет. Хотя сэкономить несколько мегабайт на картинках (эмодзи, баннерах и т.д.) вполне можно было бы.

Одноклассники

Приложение занимает примерно столько же, сколько и VK — 33,5 Мб.

Поэтому интересно будет сравнить эти два приложения. Итак, что же здесь «под капотом»:

  • Графика — более 10 МБ (включая эмодзи и баннеры, которые занимают примерно 4,3 МБ);
  • Бинарные библиотеки — 5,3 МБ (включая библиотеки для работы с видео — 4 МБ);
  • Приложение + библиотеки на Java — 22,8 Мб;

Как и в случае с VK, можно было бы сократить объем приложения за счет графики. Но и само приложение «Одноклассники» построено неоптимально. Например, здесь используются сразу две библиотеки для асинхронной работы — Reactive (RxJava) и Bolts.

LiveJournal, или не все так плохо

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

Как видим, здесь всего один файл *.dex, что говорит о небольшом размере самого приложения и библиотек на Java. Но что еще интереснее — это подход к графике. Здесь нет никаких громоздких баннеров на сотни килобайт. Более того, графика сделана для плотности пикселей не более чем 480 dpi.

Это означает, что на аппаратах с программной плотностью пикселей (подробнее про это см. в статье «Почему большие устройства на самом деле маленькие») 640 dpi (например, LG G3/G4) все будет не максимально красиво, зато на объеме графических файлов удалось неплохо сэкономить.

Что дальше?

Пишите в комментариях, об объеме каких приложений вам бы еще хотелось узнать.

Источник

Оцените статью