Pull to refresh
20
0
Majid Jabrayilov @Mecid

iOS Developer

Send message
Еще как я понял загрузку картинок при скроле нельзя тормозить в picasso?
я планирую отказаться от UIL из-за крешей последней версии на android 4.3 при попытке загрузить много картинок.
Хотелось бы еще оптимизировать использование памяти, вот присматриваюсь к Picasso и Glide.
Поддергивания только в реальном использовании можно заметить. Бенчмаркам не поддается))

У вас в реальных проектах picasso используется? есть списки с картинками?
Коэффициент был выбран опытным путем. Picasso использует коэффициент равный 7. Вроде и у них и у меня все ок с этим)
Я использую UIL для загрузки картинок в твиттер клиенте Robird.
Каждый твит имеет как минимум 1 картинку — аватарку пользователя и может еще отображать превью картинок с разных сервисов.
UIL работает очень плавно и быстро подгружает картинки. Никаких поддергиваний при скроле. Вот моя конфигурация:

        Executor downloadExecutor = Executors.newFixedThreadPool(5);
        Executor cachedExecutor = Executors.newSingleThreadExecutor();

        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        int memClass = am.getMemoryClass();
        final int memoryCacheSize = 1024 * 1024 * memClass / 8;

        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showStubImage(android.R.color.transparent)
                .bitmapConfig(Bitmap.Config.RGB_565)
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
                .cacheInMemory(true)
                .cacheOnDisc(true)
                .build();

        File cacheDir = StorageUtils.getCacheDirectory(this);
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
                .taskExecutor(downloadExecutor)
                .taskExecutorForCachedImages(cachedExecutor)
                .memoryCache(new UsingFreqLimitedMemoryCache(memoryCacheSize)) // 2 Mb
                .discCache(new TotalSizeLimitedDiscCache(cacheDir, 52428800))
                .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)
                .defaultDisplayImageOptions(options)
                .build();



К сожалению при использовании Picasso у меня были проблемы со скоростью загрузки картинок. Правда это было в первых версия библиотеки. Как она сейчас работает в плане скорости загрузки и отображения картинок?
Не знаю на сколько удачны будут ваши изменения, но игры в IDE не хотелось бы видеть. Надеюсь ваш механизм подсчета JFC не заставит тормозить среду.
Ждем этого функционала в Android Studio,
Лучше все таки пользоваться REST API, чем этим ужасом
У нас тут Java) Согласен, callback позволяет запутаться, что и откуда пришло.
Но RxJava это просто ужас и дело не в пороге вхождения, который сильно увеличивается. Дело в самой структуре кода.
Android-db-commons конечно всем хорош, но использовать его не хочется только из-за того, что тянет за собой огромную Guava.
На счет вьюх не согласен, это сильно понижает читабельность кода
Советую использовать Universal-Image-Loader.
Использую его в твиттер клиенте Robird.
Каждый элемент списка имеет Аватарку пользователя + иногда картинка в твите.
Все кешируется и работает просто замечательно.
RxJava сильно портит читабельность кода
Думал о написании подобного поста, но вы меня опередили.
Внесу свои пять копеек.

Для генерации content provider на основе контрактов есть отличная библиотека github.com/TimotheeJeannin/ProviGen.
Да и кода получается намного меньше чем с вашим решением.

Для выполнения background задач советую посмотреть в сторону решения разработчиков приложения Path
github.com/path/android-priority-jobqueue.

Очередь для задач, которые должны будут выполнены в фоне.
Есть такие фичи, как отслеживание коннекта и выполнение задач, когда есть интернет.
Приоритеты для задач. Повторное выполнение задачи, если произошла ошибка. И много других вкусняшек.
У вас получилось исправить проблемы, которые возникли у ManuelPeinado.
Но в вашем случае обязательно надо наследоваться от Activity и Fragment, что является плохим тоном в разработке библиотек под android.
Как посмотреть. С одной стороны все таки читалка твитов. Может как опцию сделать.
Спасибо за пост. Надо попробовать реализовать в Robird
да, но это не то что хочу. мне не нужен просто DI контейнер, мне нужны плюшки, как в roboguice
Согласен что Roboguice запуск приложения убивает, сейчас столкнулся с дeлемой Roboguice тормозит а AndroidAnnotations не нравится принцип работы, теперь не знаю что делать(

Information

Rating
Does not participate
Location
Баку, Азербайджан, Азербайджан
Date of birth
Registered
Activity