想请教安卓大佬们一个问题

218 天前
 troku
我想画一个柱状图的图表,它具有大数据量(几万个数据点)和极快的刷新速度(可能 50ms )

因为我比较熟悉 react ,所以我一开始就想着用 react native 试试,我使用了 React Native Skia( https://github.com/Shopify/react-native-skia?tab=readme-ov-file#react-native-skia)
来画这个图,但效果差强人意。在大数据量和极快的刷新速度的要求下,图表卡顿严重。

我画的图,如下所示


这个图需要用 2d 来模拟 3d 。所以虽然能看到 x, y, z 三个轴,但是柱子仍然是 2d 。

我想问一下如果用安卓原生来实现,应该用什么样的技术,或者有没有能画这种图的现成库,可以满足大数据量和高刷新速度而不卡顿。
5548 次点击
所在节点    Android
10 条回复
anzu
218 天前
真的有必要展示那么多数据吗?这图给人感觉每次也就几百个数据点。随机抽样展示差不多就行了吧。
zuiyue123
218 天前
一般这种都是用抽样绘制算法实现的
troku
218 天前
@anzu 其实我也感觉意义不大,但是需求是这样没办法
ExplodingFKL
218 天前
数据数量上去了真没啥好办法,如果数据是增量还好,每次只绘制差异
Building
218 天前
数据抽样 + 避免重复绘制,50ms 就是靠画图生成 image 都画完了吧
pengzhile
218 天前
感觉这种实时渲染压力太大了吧,能不能滞后一点时间然后离线渲染
ZGame
218 天前
你这跟 Android 应该没啥关系吧..建议标题改成 Android 下 skia 渲染优化...
FranzKafka95
218 天前
OpenGL ES 或者 Vulkan ,用 Native C++,不需要 fence
bagel
218 天前
5 万个数据点,一个点画一条线对应 2 个三角形,一共 10 万个三角形,50ms 更新一次,在 60fps 下一个 frame 需要更新约 3 万个三角形,在旗舰机型上用手动优化过的 OpenGL 代码应该可以做到的,还不行就上 Vulkan🫤

React Native Skia 使用的是静态链接库,在 Android 上硬件加速性能不是最优。
troku
218 天前
@bagel
@FranzKafka95 谢谢大佬🌹🌹🌹

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX