Alexander
Каждому свое, мне в серверной разработке очень помогала либа, на андроиде правда не использовал ее
Sergey
у меня только английский распознает вообще, потому что язык системы стоит англ. Если это вообще от этого зависит
Сергій
ты прибор для измерения? 😁
Alexander
Я тоже его пилю, ушел из серверной разработки в андроид
Sergey
у меня, например, клава русская, но все равно только англ. распознает
Sergey
может реально от языка системы зависит? пробовал?
Anonymous
Ребят, подскажите, вот у меня есть перманентная запись в коллекцию из одного потока, есть чтение по таймеру (каждые 10 секунд) из этой колекции из второго потока. Использую CopyOnWriteArrayList<Long>. При анализе данных вижу, что есть лаг. Походу чтение из CopyOnWriteArrayList блокирует запись на некоторое время. Какие практики, чтобы этого избежать?
Dmitrii
Anonymous
так вот вопрос в том, как избежать синхронизации? Или я тебя не понял. Я думал мб есть варик быстро создать копию коллекции и читать из нее, чтобы запись вообще не тормозить?
Anonymous
ах да, после прочтения, данные нужно удалять
Anonymous
то есть раз в 10 сек, я должен брать коллекцию, читать из нее, удалять эти прочтенные данные, но запись должна продолжать идти
Sergey
готовенько
Sergey
https://www.wikihow.tech/Change-the-Language-on-Android%E2%80%99s-Voice-Typing-Keyboard
Anonymous
перекладывать данные из первой во вторую и от туда читать?
Влад
Олег
читаешь раз в 10 сек, значит раз в 5 сек перекладываешь)00)
Dmitrii
Чёт залез в настройки Gboard, там голосовой ввод поддерживается где-то для 15 языков
Сергей
Сергей
Возможно лаги из за времени чтения или приоритетов потоков или еще чего
Anonymous
а как быстро склонировать коллекцию?)
Сергей
Через аддОлл?
Anonymous
Через аддОлл?
методы эти знаю, не знаю как быстро это отрабатывает
Сергей
Они нативным копированием памяти обычно херачатся.
Очень быстро.
Oleksandr But
Oleksandr But
вроде работает
Anonymous
MoveBitchISaidMove()
Unat
А читать данные надо каждый раз из полной коллекции или только N последних элементов?
Unat
А то, может, это тот редкий случай, когда "Пойдем, LinkedList, настало твоё время?"
0145
можно как-то получить контент из textview по кол-ву строк. Допустим всего 10 строк, а нужно получить контент первых трех?
Unat
Пахнет непониманием бизнес-требований
Сергей
Если "строка" определяется как текст до символа абзаца то легко.
Сергей
Это уже три предложения)
Сергей
Или сокращения
Unat
А ещё можно рендерить текст буква за буквой на канвасе размером с TextView и останавливаться, когда наберется 10 строк
Мухаммет
Друзья,хочу для разных flavor сделать строку.Правильно ли я делаю?
Мухаммет
у меня не выходит он просто говорит, что APP_TYPE=""
Unat
Значит неправильно
Мухаммет
а как правильно сделать ?
Мухаммет
че загуглить
Мухаммет
не могу найти решение
0145
Anonymous
А читать данные надо каждый раз из полной коллекции или только N последних элементов?
вообще у меня просто идет перманентная запись в коллекцию и стоит задача сливать эти данные без лага на бек. Вот сперва из коллекции я делаю кэширование в sqlite. Записываю пары: время, значение. Потом раз в 30 минут отправляю батчи на сервер. А на сервере уже видно, что есть лаг. И походу он берется, тогда когда я делаю кэширование в sqlite
Unat
Unat
Вооот... вилы.
Unat
Конечно тут будет лаг
Anonymous
вообще я сейчас сделал вот так:
getCollection() {
CopyOnWriteArrayList<String> readableList = new CopyOnWriteArrayList<String>;
readableList.putAll(writableList);
writableList.clear();
return readableList;
}
}
Anonymous
просто скопировал коллекцию и отдал на кэширование в sqlite, а writable очищается
Unat
Ну... так себе решение.
Unat
Я-бы создал новый пусток список под запись, а записанный отдал на растерзание базе.
Unat
Если там всегда запись в конец списка и последовательное чтение при дампе в базу, то ещё и связный список взял-бы.
Anonymous
Anonymous
Anonymous
при чем тут связный список?
Anonymous
данные последовательно записываются, всегда в конец
Unat
Так LinkedList имеет константное время вставки в конец списка, а ArrayList проверяет, что элемент поместится в выделенной памяти и, если нет, то выделяет больше памяти. Кажется так.
Unat
или в начало списка...
Unat
скорее всего в начало
Mike
Олег
потому что arrayList - динамический массив, а LinkedList - связный список, где ОТЛИЧНО реализована вставка в конец
Mike
Unat
Зато я точно помню, что в эрланге отлично реализованы срезы на связных списках
Олег
Сергей
Anonymous
Олег
Сергей
Что то вроде видел в коде, да
Unat
Но вообще, я не думаю, что выбор алгоритма списка тут будет критичен, достаточно перестать копировать ненужные данные
Mike
Mike
вангую, что у LinkedList предсказуемая, стабильная скорость вставки, он она меньше, чем в ArrayList
Олег
Unat
где бенчмарки?
https://www.programcreek.com/2013/03/arraylist-vs-linkedlist-vs-vector/