Команда Square Inc. запустила Android-библиотеку Picasso, рассчитанную на разработчиков и призванную облегчить процесс создания софта. Если вы хотя бы единожды пытались написать программу под «зеленого робота», то наверняка сталкивались с определенными проблемами, возникающими в ходе работы с графикой. Для опытных девелоперов проблема решаема сравнительно просто, однако в случае с новичками дело обстоит гораздо сложнее. К счастью, на специализированных ресурсах существует множество тематических материалов, помогающих со всем разобраться, мы же рассмотрим проблемы, которые поможет решить Picasso.

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

ANR проблема

Сначала программе нужно связаться с сервером для получения списка новых статей. В ответ он выдаст все новые имена и URL картинок, после чего начнется процесс их загрузки в программу. Именно на этом этапе может проявить себя ранее указанная проблема, выводя на экран сообщение «Приложение не отвечает». В чем кроется подобное поведение? Дело в том, что программа занята загрузкой графики и времени на ее отображение на дисплее мобильного у нее нет, то Android расценивает отсутствие активности в качестве неспособности программы работать дальше.

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

Проблема вращения экрана

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

Случайное закрытие

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

Причем здесь Picasso? При том, что несколько строчек его кода решат вышеперечисленные проблемы за вас! Преимущества очевидны.