Владислав
Медленная, использует рефлексию.
А, тогда да Room, как я посмотрел, не плохо выглядит , но не много инфы смог отрыть, даже мануалов каких или документации
Oleg
Какую либу используешь для плеера?
Нашел другой способ, большое спасибо :-)
Anonymous
Назовите хороший способ работать с action bar во фрагменте. То есть чтобы был back arrow или menu actions и чтобы это корректно работало))
Igor
Медленная, использует рефлексию.
И что это прям заметно на фоне того что там IO (запросы к диску)?
Владислав
И что это прям заметно на фоне того что там IO (запросы к диску)?
Ну, с рефлексией это всегда не айс ведь По скорости Видимо, другие решения выглядят лучше в этом аспекте
ММ
ребят какой минимум sdk выбирать при разработке приложения?
ММ
26 (будь мужиком бл##ть)
чувак) давай без приколов пожалуйста) нормально ведь спросил
Mike
И что это прям заметно на фоне того что там IO (запросы к диску)?
Заметно. Честно говоря, IO, по моим наблюдениям, как раз незаметно. (немного другая история: считывал 100 Киб JSON за 1 мс и парсил этот byte[] последующие 20 мс)
Igor
Заметно. Честно говоря, IO, по моим наблюдениям, как раз незаметно. (немного другая история: считывал 100 Киб JSON за 1 мс и парсил этот byte[] последующие 20 мс)
Те ты свой опыт с json парсингом смапил на ormlite тк там “тоже рефлексия” и делаешь из этого выводы о тормознутости? (и я даже спрашивать не будет зачем ты json по 100kb гоняешь)
Mike
Лучше на room смотреть тогда, так?
Не могу сказать, не пользовался.
Mike
Те ты свой опыт с json парсингом смапил на ormlite тк там “тоже рефлексия” и делаешь из этого выводы о тормознутости? (и я даже спрашивать не будет зачем ты json по 100kb гоняешь)
Там не было рефлексии. Это пример того, что IO достаточно быстрый. А ORMLite действительно достаточно медленный. Ну и рефлексия приносит другие проблемы.
Mike
Попробуй вне офиса на 3g ;)
Ну при чём тут? Мы же про встроенную память.
Igor
Телефоны бывают очень разные, а уже если у тебя SQL из 10 JOIN тут тебе никакая кодогенерация не поможет
Igor
Короче я хотел сказать перформанс надо тюнить, когда ТОРМОЗИТ и нужно ПРОФИЛИРОВАТЬ, а не надеятся что кодо-генерация решит все проблемы
Mike
Короче я хотел сказать перформанс надо тюнить, когда ТОРМОЗИТ и нужно ПРОФИЛИРОВАТЬ, а не надеятся что кодо-генерация решит все проблемы
Я вообще крайне редко сталкиваюсь с проблемами производительности в своём коде, потому что беру то, что заведомо быстрее :)
Vladislav
Всем привет! Как отдебажить запрос из SQLite? запрашиваю из бд 20 случайных вопросов по ID. Где то после 12-14 вопроса пропускает пару штук и потом снова продолжает запрашивать. В коллекции вместо 20 нужных получается 16. В тех проблемных вопросах в try не входит QuestionCursorWrapper cursor = queryQuestion(QuestionDbSchema.QuestionTable.Cols.ID +"=?", new String[]{questionsNumber}); try { cursor.moveToFirst(); while (!cursor.isAfterLast()) { mQuestions.add(cursor.getQuestion(getAnswers(new String[]{questionsNumber})));// cursor.moveToNext(); } } finally { cursor.close(); }
Sereja
Главный минус орм очень медленная работа при связянных таблиц. Она дико медленная
Gregory
Gregory
10 дексов на приложение викторины в прямом эфире 👍
Vladislav
Дичь какая то. если ID вопроса больше 1390, его из БД не берет. а в бд 2000 вопросов( как можно исправить? неужели есть ограничения?
FromSi
Дичь какая то. если ID вопроса больше 1390, его из БД не берет. а в бд 2000 вопросов( как можно исправить? неужели есть ограничения?
Не пробовали использовать Room либу?) Она по проще будет для реализации БД. P.S. https://developer.android.com/training/data-storage/room/accessing-data.html
Vladislav
в плане кода все отлично работает. я пробовал запросить вопрос с id=1389, все ок. если id больше или равно 1390, то заходит в try, доходит до while (!cursor.isAfterLast()) и переходит в finally try { cursor.moveToFirst(); while (!cursor.isAfterLast()) { mQuestions.add(cursor.getQuestion(getAnswers(new String[]{questionsNumber}))); cursor.moveToNext(); } } finally { cursor.close(); }
Dug
Пиздец
Vladislav
есть
Mike
есть
ну раскапывай код, выясняй, что возвращает непосредственно sqlite, а что — твоя обёртка
FromSi
@Harmonizr вы используете в некоторых проектах либу "Butter Knife" для оптимизации кода? Почему, если нет?
Mike
@Harmonizr вы используете в некоторых проектах либу "Butter Knife" для оптимизации кода? Почему, если нет?
Почему ко мне вопрос? Не использую. Так же многословно, как findViewById. Либо kotlin-android-extensions, либо Anko.
Vladislav
Кто-нибудь представляет, как в EditText можно реализовать автодополнение хинтом? Пример: поле ввода номера. Пустое поле – "ххх хх хх". Частично заполненное поле – "123 1х хх". Символы "х" отображаются как placeholder.
Vladislav
@Harmonizr , это просто фейспалм. я храню последнюю версию БД не в папке с проектом. там действительно была старая версия бд, в которой не было еще этих вопросов) написал крутой рандом, он запуслился с первого раза и тут такой затуп) никогда по нормальному не бывает) Спасибо за помощь!)
Vladislav
Глеб
10 дексов на приложение викторины в прямом эфире 👍
👍 "Proguard порежет"(с) 🤔... по крайней мере должен... как-то сам... догадаться
Anonymous
народ с кем можно связаться по разработке простенького приложения - лого, контакты, отправка обращения по е-мейл
Глеб
Так "Простенькое" оно ж собственно-ручно пишется на раз-два. Там всё простенько, нужно лишь: скачал студию, посмотрел примеры, скопипастил из stackoverflow - готово 👍 Оптимизация бизнеса - 100% (+ полный контроль над качеством продукта и сроками из коробки)
Airoks
Приветствую, нужно выполнить задачу в определенное время, к примеру в 15:00 и выводить время отставшееся до 15:00. CountDownTimer подойдет ?
Gregory
👍 "Proguard порежет"(с) 🤔... по крайней мере должен... как-то сам... догадаться
оно вообще не обфусцировано, но выглядит так, что просто накидали туда кучу библиотек и связали их минимумом своего кода
Глеб
оно вообще не обфусцировано, но выглядит так, что просто накидали туда кучу библиотек и связали их минимумом своего кода
Ну подожди - они ж... эти....как их .... библиотеко-таскатели - всегда аппелируют к тому, что "Proguard порежет"(с) я наивно пологал - что вот они сидят и реально сутками там напролёт кипы с конфигами настраивают..... ччёрт.... нельзя никому верить в этом мире а я всё и думаю - как это они такими тоннами либы тащат - и никто не жалуется на "сложный долгий тюннинг обфускации"
Глеб
Я не давно вот... com.google.common.util.concurrent.Striped - ом хотел воспользоваться который на мою беду в гуаве оказался..... 😁 так с меня семь потов сошло, пока я конфиг настроил чтоб "впритирочку" только этот Stripped остался без гуавы - но рабочий
Mike
— У нас тут огромная библиотека, стопицот часов компилируется. — Забей. Не рефактрить же!
Alexey
Guava - 22k методов сразу, в одном проекте чисто ради богомерзкого евентбаса используется
Глеб
Ненавижу гуаву, если речь идёт не о фрукте. И Rx, и GMS, и все остальные монолиты больше тысячи методов.
Слушай, ну а вот как например как в моём случае, когда нужен один класс. Map lock-ов можно и самому написать, но ониж там всё до мелочей продумали. Я так понимаю, все их продукты с гуавой по фундаментом.... а тут concurrency - дело тонкое...... и соблазн, что есть один класс - который железно работает
Aleksey
Могут ли быть проблемы у RecyclerView при частом обновлении списка элементов? Например, список обновился, пока DiffUtil проводит подсчеты и т.д., список опять обновился и все поехало.
Aleksey
Запросто, diffutil не моментально всё делает
А какая вероятность этого и как это предотвратить?
Alexey
А какая вероятность этого и как это предотвратить?
Не обновлять безумно и учитывать анимацию
Aleksey
Сейчас у меня костыльное решение - я для каждого вызова DiffUtil отдаю свежесозданный список
Глеб
Локи медленные, предпочитаю атомы. Не, ситуацию я понимаю, не раз копировал себе исходники из библиотек в проект.
Вот - я тоже скопировал - только это ж гуава....., .... там как вермишель - тянешь одну - и наматывать можно бесконечно пока вся порция на вилке не окажется. )) пришлось взять jar исходный - и перегонять в jar-одно-классовый
Aleksey
Это не так важно, более важно как часто это происходит
Стандартная пагинация по 20 элементов на странице🙈
Alexey
Стандартная пагинация по 20 элементов на странице🙈
Так при пагинации добавлять нужно а не реплеисить
Alexey
и да, diffutil там на пол не упал
S
вопрос по realm: норм в качестве primary key использовать UUID.randomUUID().... (realm не умеет сам гинерить primary key) кто как выкручивается?
Aleksey
1. Ну я добавляю, но в Adapter'е у меня просто весь список реплейсится, т.к. из презентера приходит не новая страница, а весь новый список элементов. Так нельзя? :( 2. Окей, а как? Тупо Adapter#notifyItemsInserted?
Aleksey
Вот блин :(
Alexey
но вообще лучше всегда знать что и к чему добавлять
Aleksey
Дело в том, что у меня список состоит из разных элементов. Хотя, это же не важно, да?
Alexey
Поню реализовывал как-то пагинацию с автоуданием элементов из начала и подгрузкой в конец из базы данных, да ещё всё это меняться могло и ещё чтоб scrollbar был в нужной позиции - веселуха та ещё
Глеб
Поню реализовывал как-то пагинацию с автоуданием элементов из начала и подгрузкой в конец из базы данных, да ещё всё это меняться могло и ещё чтоб scrollbar был в нужной позиции - веселуха та ещё
Ща вроде гугл сделал библиотеку в сапортах для пагинации - сам, правда ещё не юзал. Но судя по описанию - они "там всё сделали". Может в эту сторону посмотреть. Или может тут есть ребята, кто уже использовал