绘制慢时间Android如何在使用MPAndroidChart折线图绘制实时数据时释放内存?
我正在开发一个Android应用程序,它使用一个折线图绘制心率。我每65毫秒通过UDP广播接收一个数据包,我需要绘制数据包。图形渲染在最初的2-3分钟内非常平滑,之后会变慢。有谁能帮我弄清楚是什么让它慢慢变慢的?如何在打印大数据时释放内存绘制慢时间Android如何在使用MPAndroidChart折线图绘制实时数据时释放内存?,android,mpandroidchart,Android,Mpandroidchart,我正在开发一个Android应用程序,它使用一个折线图绘制心率。我每65毫秒通过UDP广播接收一个数据包,我需要绘制数据包。图形渲染在最初的2-3分钟内非常平滑,之后会变慢。有谁能帮我弄清楚是什么让它慢慢变慢的?如何在打印大数据时释放内存 private void addEntryGraph01(int ch0[], LineChart chart) { LineData data = chart.getLineData(); if (data != null) {
private void addEntryGraph01(int ch0[], LineChart chart) {
LineData data = chart.getLineData();
if (data != null) {
ILineDataSet set = data.getDataSetByIndex(0);
if (set == null) {
set = createSet();
data.addDataSet(set);
}
data.addXValue("");
for (int i = 0; i < ch0.length; i++)
data.addEntry(new Entry((float) (ch0[i]), set.getEntryCount()), 0);
chart.notifyDataSetChanged();
chart.setVisibleXRange(50, 50);
chart.moveViewToX(data.getXValCount() - 10);
return;
}
}
private LineDataSet createSet() {
LineDataSet set = new LineDataSet(null, "");
set.setDrawCubic(true);
set.setDrawValues(false);
set.setCubicIntensity(0.1f);
set.setAxisDependency(YAxis.AxisDependency.LEFT);
set.setColor(ColorTemplate.getHoloBlue());
set.setCircleColor(ColorTemplate.getHoloBlue());
set.setLineWidth(1f);
set.setDrawCircles(false);
set.setFillAlpha(65);
set.setFillColor(ColorTemplate.getHoloBlue());
set.setHighLightColor(Color.rgb(244, 117, 177));
set.setValueTextColor(Color.WHITE);
set.setValueTextSize(10f);
return set;
}
private void addEntryGraph01(int ch0[],折线图){
LineData数据=chart.getLineData();
如果(数据!=null){
ILineDataSet集=data.getDataSetByIndex(0);
if(set==null){
set=createSet();
data.addDataSet(set);
}
data.addXValue(“”);
for(int i=0;i
我们运行了一些测试来比较这里的性能,MPAndroidChart排在第二位,但以很大的差距排在第一位
这是一个新的(商业)图表组件,专为Android应用程序和嵌入式系统中的实时使用而定制。它离发布还有几天,所以现在还不可用,但很快就会发布
披露:请注意我从事的是SciChart Android项目 不幸的是,MPAndroidChart不支持大量数据。。所以我选择了一个不同的绘图库。根据他们的文档和Google play store上的演示应用程序,它支持大量数据。