Efficient ListView in android

android, android-listview, memory-efficient

Solution

- recycle your views in `getView()`

- use `ViewHolder` pattern

- use lazy loading if you have a lot of data to fill the list with

- use `Cursor` as underlying data instead of object list built from cursor if your data comes from `database`, you save memory by not creating additional objects.

- see http://www.google.com/events/io/2010/sessions/world-of-listview-android.html

- see http://android.amberfog.com/?p=296

Problem

What is the best way of constructing a `ListView` that uses the least memory possible? This is important, because I met a few implementations and most of them is lagging when I scroll the `ListView` on low-end devices, but I saw a few apps, where the scroll is very smooth, even on low-end devices. How can it be done? What is the most efficient way from a memory usage point of view to construct such a `ListView`?

Original source