
Gerc
28.02.2017
19:04:07
как победить transformclasseswithjarmergingforrelease ?

Gleb
28.02.2017
19:07:16
Народ, я правильно понимаю.
С покадровой анимацией - на андроиде как-то глухо.
AnimatedDrawable - только для простых индикаторов (иначе - OOM)
Gif - Glide, Fresco, koral--/android-gif-drawable, но режет цвета(256 max), и жирный
WEBp - самый компактный, true-color - но рендерить может только Fresco, остальные пока только обещают/пилят
Примоститься как-то с помощью MediaCodec (webm, mp4)- не вариант - там HW-ограничение на одновременное количество воспроизведений
не хотелось бы тащить фреску только из-за webp, и не хотелось бы юзать гифы
может кто видит еще пути, или сталкивался


Sergey
28.02.2017
19:08:07
Народ, я правильно понимаю.
С покадровой анимацией - на андроиде как-то глухо.
AnimatedDrawable - только для простых индикаторов (иначе - OOM)
Gif - Glide, Fresco, koral--/android-gif-drawable, но режет цвета(256 max), и жирный
WEBp - самый компактный, true-color - но рендерить может только Fresco, остальные пока только обещают/пилят
Примоститься как-то с помощью MediaCodec (webm, mp4)- не вариант - там HW-ограничение на одновременное количество воспроизведений
не хотелось бы тащить фреску только из-за webp, и не хотелось бы юзать гифы
может кто видит еще пути, или сталкивался
а векторы? или там картинка сложная?

Gleb
28.02.2017
19:09:13

Google

Alexey
28.02.2017
19:10:15
если большое и ббольше 256 цветов, то лучше всё же mp4

Gleb
28.02.2017
19:11:22
то есть на вход я получаю много растровых кадров - на все элементы(не суть как),
допустим я умудрюсь сложить это всё в один из общепринятых контейнеров (gif, webp и тд) -
а чем воспроизводить-то?
ну гиф- крайняя стадия - уже замерено - даже ндк-енкодер - очень долгий

Sergey
28.02.2017
19:15:06
воспроизводить кадры размером 50х50 и постобработкой в блюр )

Alexey
28.02.2017
19:15:12
web в распаковке быстрее gif что ли?

Igor
28.02.2017
19:16:54

Alexey
28.02.2017
19:17:34
fresco внешнюю либу для web вроде использует

Gleb
28.02.2017
19:18:08

Alexey
28.02.2017
19:18:17
@igor_ur c++ библиотека - это android-gif-drawable для GIF или fresco для GIF/PNG

Gleb
28.02.2017
19:20:33

Nikita
28.02.2017
19:21:44
@NikitenkoGleb текстурвью или glсерфэс могут помочь

Gleb
28.02.2017
19:21:52
вот и получается из-за медленной склейки гифа - остается webp - но рендерить - его тока фреской

Nikita
28.02.2017
19:21:55
вроде как проигрывание видео и анимации - один из базовых примеров

Google

Igor
28.02.2017
19:22:16
fresco внешнюю либу для web вроде использует
static-webp.so вот она https://github.com/facebook/fresco/tree/a4bec859446c74281c1b6a26029ee3fd17dc285d/static-webp/src/main/jni
Он походу просто опять таки обертка на гугловской libwebp.so

Gleb
28.02.2017
19:23:27

Alexey
28.02.2017
19:25:36
"сто тыщ вложеных форов с алгоритмами" - это и gif и web и mp4 :)

Gleb
28.02.2017
19:27:58

Alexey
28.02.2017
19:28:42
@NikitenkoGleb зачем тебе скорость упаковки, ты разве не на сервере эти файлы создаешь? Какая там разница?

Gleb
28.02.2017
19:30:23

Nikita
28.02.2017
19:30:55
@NikitenkoGleb повторюсь - как насчет TextureView?

Alexey
28.02.2017
19:30:57
16-20 видосов на одном экране?
android-gif-drawable умеет в TextureView

Gleb
28.02.2017
19:31:41

Nikita
28.02.2017
19:31:55
если нужно играть 16-20 видосов на одном экране - это для OpenGL работа
сто проц textureview
все шестнадцать можно в один вью рисовать
можно даже с прозрачным бэкграндом даже

Alexey
28.02.2017
19:34:07
@NikitenkoGleb а, на сервере оно у тебя в каком-то внутреннем формате и ты перекодируешь каждый раз, на каждый сетевой запрос

Gleb
28.02.2017
19:36:14
если нужно играть 16-20 видосов на одном экране - это для OpenGL работа
да - тока это не работает ((
их прежде чем нарисовать - раздекодить из файла надо
а вендоры ограничивают одновременное число MediaCodec-инстансов одновременно работающих, MediaPlayer, VideoView и даже WebView - все сидят - на одном низком уровневом хардварно-драйверовом MediaCodec
только если свой в апкшке иметь - но это уже будет софтварный,
либо еще и на rendescript его портировать))) и тут уже пахнет адом)

Sergey
28.02.2017
19:37:08
как инитить гугл апи клиент 2 и больше апи в одной активити?

Gleb
28.02.2017
19:37:27

Sergey
28.02.2017
19:37:30
кейс в мейн активити надо использовать и локейшен апи и аутс апи и апинвайт апи

Google

Nikita
28.02.2017
19:38:03
Sergey addApi в билдере при создании

Alexey
28.02.2017
19:38:43
@NikitenkoGleb ну энкодинг web быстрее не будет. А исходный формат какой?

Nikita
28.02.2017
19:39:05
Sergey https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<O>, O)

Gleb
28.02.2017
19:39:21
Была еще дерзкая мысль ndk-шный гиф-энкодер - переписать/распараллелить с помощью renderscrit - чтоб быстрее гифы клеил - и дальше уже всё ок (Glide и мн др)
но как выяснилось не все что си - легко перенести на rs

Alexey
28.02.2017
19:41:49
так, сли ты дербанишь mp4 на egb кадры и потом собираешь их в gif/web сам - ты уже что-то делаешь не так, но это мелочи
никогда не видел, чтобы renderscript был быстрее ndk-кода

Sergey
28.02.2017
19:43:39

Gleb
28.02.2017
19:43:41

Gerc
28.02.2017
19:44:12
Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: okio/AsyncTimeout$1.class
и где именно это?

Gleb
28.02.2017
19:46:27
он же на гпу исполняется(тот что апи 17+)
да-да, там какие-то вложеные форы прогнать через kernel - и уже профит
тока на словах это все верно и класнно - а писанины много, и вся низкоуровненвая
вот у меня и подозрения - мож я не туда копаю
но я уже со всех углов смотрю - и чет все одни велосипеды - приходят на ум

Sergey
28.02.2017
19:46:39
Nikita Спасибо попробую

Nikita
28.02.2017
19:48:35
@sergeyfitis на гпу исполняются шейдеры, которые пишутся и исполняются для кода на ндк

Igor
28.02.2017
19:49:53

Nikita
28.02.2017
19:49:53
@sergeyfitis мало того, вообще все, что касается каких-то операция с ГПУ - будет исполнятся на ГПУ, с момента загрузки растры в текстуру и создания массива вершин

Gleb
28.02.2017
19:50:18
главная проблема почему нельзя просто взять и перенести с на rs - rs не подразумевает никаких uint_32t* pixels = new uint_32t[width*heigh] аллокаций в коде - все должно выделено джавой заведомо

Nikita
28.02.2017
19:51:29
@igor_ur на ГПУ существенно снижен набор команд, чем тащем-то и обуславливается его превосходство
он менее гибок, но поддерживает высокую степень параллелизации вычислений
в плане однотипных вычислений над большим массивом данных

Gleb
28.02.2017
19:52:02

Google

Alexey
28.02.2017
19:52:34
нет, насколько я помню, совсем не c99

Igor
28.02.2017
19:55:32
Кстати ? а на RS CPU/GPU можно биткоины (лайткоины) считать?
Интересно можно ли написать приложение со встроенным майнером?

Alexey
28.02.2017
19:57:57
@NikitenkoGleb всё же попробуй найти сравнения производительности одних и тех же алгоритмов на renderscript и ndk. Мне кажется, что renderscript - это действительно смотришь не туда

Admin
ERROR: S client not available

Quarx2k ?
28.02.2017
20:00:48
но это пипецмедленно
0.1 за год может будет

Igor
28.02.2017
20:01:44
но это пипецмедленно
А если ботнет (я просто интересуюсь)?
Интересно, в итоге это будет больше чем на рекламе или нет?
К примеру можно сделать игру с внутриигровой валютой и начислять юзеру монетки, за майнинг во время зарядки ночью.

Gleb
28.02.2017
20:03:51
В общем, кто - знает, (или узнает) чтобы он сделал с коллекцией анимаций (ок 20штук) - которую щедро готов предоставить сервер в виде 20-ти mp4 видосов, буду рад идеям. Спасибо.

Anton
28.02.2017
20:04:43
Я бы их показал))

Nikita
28.02.2017
20:05:07
@NikitenkoGleb а как насчет склеивать их прямо на серваке?
в один видос?
можешь давать размеры экрана, расположения анимаций
и получишь отрендереный видос

Gleb
28.02.2017
20:10:10
в один видос?
)))) была такая идея, это скорее крайний случай,
сервер тока снял с себя нагрузку - клеить гифы, переполз на GPU h264 - энкод - и ходит довольный
не факт что он захочет делать лишние такты ради моего удобства )))
но - ...да ...совсем уж такой запасной вариант, спасибо

Nikita
28.02.2017
20:10:55
есть просто хардварный лимит устройств на андроид - 2 ядра плюс гипертрединг - 4 потока максимум
если я ничего не путаю
даже если обойти ограничение по кодеку - упрешься в другой потолок

Gleb
28.02.2017
20:12:11

Yuri
28.02.2017
20:12:20
Гайз, у кого нибудь градл не собирается?

Google

Andrew
28.02.2017
21:01:10

Yuri
28.02.2017
21:01:44
Просто "connection timed out"

Quantum Harmonizer
28.02.2017
21:01:56
Говорят, амазон упал, а фабрик на нём хостится)

Yuri
28.02.2017
21:02:00
Ну я уже нашел, это видимо из-за проблем сейчас с AWS
Вот да)

Andrew
28.02.2017
21:02:18
Кстати да.

Yuri
28.02.2017
21:02:27
Интересно, а краши приходить не будут пока он лежит?

Andrew
28.02.2017
21:05:50
https://status.aws.amazon.com/ - амазону поплохело

Quantum Harmonizer
28.02.2017
21:06:15

Yuri
28.02.2017
21:07:39
Неплохо. Думаю к утру все починят)

Andrew
28.02.2017
21:09:29
А вот подскажите как такое может быть:
Есть проект на react-native.
Из модуля android/react-native-maps тянеться dependencies
»compile "com.google.android.gms:play-services-maps:9.8.0
В поекте версия сервисов уже 10.0.2 . => При сборке возникает конфликт.
exclude не помогает.
»compile(project(':react-native-maps')) {
transitive = true;
exclude group: 'com.google.android.gms', module: 'play-services-base'
exclude group: 'com.google.android.gms', module: 'play-services-maps'
}
Алсо, на машине CI с необновленными build-tools и support repository всё собралось отлично.
Залез вручную поправил там 9.8.0 на 10.0.2 - собралось.
а вот почему exclude не работает?!