2016-04-06 6 views
1

Ich arbeite an einer Android-Anwendung, die die Herzfrequenz mit einem Liniendiagramm darstellt. Ich empfange alle 65 Millisekunden ein Datenpaket über UDP-Broadcast, das ich plotten muss. Das Graph Rendering ist in den ersten 2-3 Minuten sehr flüssig und danach wird es langsamer. Könnte mir jemand helfen herauszufinden, was es im Laufe der Zeit langsam macht? Wie kann man beim Zeichnen großer Datenmengen den Speicher freigeben?Plotten langsam im Laufe der Zeit-Android, wie der Speicher zu befreien, wenn eine Echtzeit-Daten mit MPAndroidChart Liniendiagramm plotten?

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; 

} 
+1

Leider unterstützt MPAndroidChart keine große Datenmenge. Also wähle ich eine andere Plotbibliothek. – somia

Antwort

0

Wir liefen ein paar Tests Leistung von various Android Charting Libraries hier zu vergleichen und MPAndroidChart kam an zweiter Stelle, aber SciChart for Android wurden zum ersten Mal mit großem Abstand.

Dies ist eine neue (kommerzielle) Diagrammkomponente, die für die Echtzeitnutzung in Android-Apps und eingebetteten Systemen zugeschnitten ist. Es ist ein paar Tage von der Veröffentlichung entfernt, also noch nicht verfügbar, aber wird sehr bald sein!

enter image description here

Disclosure: Bitte beachten Sie, ich auf dem SciChart Android-Projekt arbeiten.