Среда , Январь 10 2018
Домой / ANDROID / Почему приложения такие большие №1: Социальные сети

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

Twitter

Google+

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

Facebook

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

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

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

ВКонтакте

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что дальше?

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

источник

Загрузка...

Проверьте также

293726986e1a1389f6b2d17c4045652d

Kickstarter и не только. Осень 2017

Twitter Google+ Водный велосипед Этот стартап обошелся без поддержки Kickstarter, хотя на его разработку и ...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *