You can use MPAndroidChart.
It's native, free, easy to use, fast and reliable.
Core features, benefits:
- LineChart, BarChart (vertical, horizontal, stacked, grouped), PieChart, ScatterChart, CandleStickChart (for financial data), RadarChart (spider web chart), BubbleChart
- Combined Charts (e.g. lines and bars in one)
- Scaling on both axes (with touch-gesture, axes separately or pinch-zoom)
- Dragging / Panning (with touch-gesture)
- Separate (dual) y-axes
- Highlighting values (with customizeable popup-views)
- Save chart to SD-Card (as image)
- Predefined color templates
- Legends (generated automatically, customizeable)
- Customizeable Axes (both x- and y-axis)
- Animations (build up animations, on both x- and y-axis)
- Limit lines (providing additional information, maximums, ...)
- Listeners for touch, gesture & selection callbacks
- Fully customizeable (paints, typefaces, legends, colors, background, dashed lines, ...)
- Realm.io mobile database support via MPAndroidChart-Realm library
- Smooth rendering for up to 10.000 data points in Line- and BarChart
- Lightweight (method count ~1.4K)
- Available as .jar file (only 500kb in size)
- Available as gradle dependency and via maven
- Good documentation
- Example Project (code for demo-application)
- Google-PlayStore Demo Application
- Widely used, great support on both GitHub and stackoverflow - mpandroidchart
- Also available for iOS: Charts (API works the same way)
- Also available for Xamarin: MPAndroidChart.Xamarin
Drawbacks:
Disclaimer: I am the developer of this library.