Android приложение - рисование более 100 динамических графиков одновременно
Мигрирую с windows приложения в android т.к. надоело таскать ноутбук, в общем - я не силён в разработке под java android, но кое как скрипя суставами набросал софт, перенёс пока процентов 15% от общего windows функционала, т.е. пока только графики и пару взаимодействий
Но уже проблема в том что это лагает сильно, пишу в 2023.1.1, использую lecho.lib.hellocharts.*, проц MediaTek Dimensity 8200
Лог от устройства обновляется 20гц, если вывести все графики - выглядит примерно на 5 fps и лагает сам телефон - весь, динамика графика (т.е. его движение) реализована путём удаления первой точки и добавления в конец новой, всего точек 32 на каждый график
Первый вопрос, каким инструментом можно вывести 100 и более графиков одновременно в динамике ?
Второй вопрос, не понял как выполнять post запросы на сервер, может есть у кого то пример или статья?
private void pushPacket() {
for (int chart = 0; chart < this.items.length; chart++) {
if (entries[chart].size() > 32) {
int index = 0;
entries[chart].remove(entries[chart].get(0));
for (PointValue item : entries[chart]) {
item.set(index++, item.getY());
}
}
// ...
Line line = new Line(entries[chart]).setColor(Color.parseColor("#d30303")).setCubic(true).setPointRadius(3);
List<Line> lines = new ArrayList<>();
lines.add(line);
datasets[chart].setLines(lines);
charts[chart].setLineChartData(datasets[chart]);
List<PointValue>[] sorted = new List[64];
sorted = entries;
float min = 0xFFFF;
float max = 0;
for (PointValue item : sorted[chart]) {
if (item.getY() < min) { min = item.getY(); }
if (item.getY() > max) { max = item.getY(); }
}
final Viewport v = new Viewport(charts[chart].getMaximumViewport());
v.top = (max > min ? max : (min + 1));
v.bottom = min;
charts[chart].setMaximumViewport(v);
charts[chart].setCurrentViewport(v);
}
}