
If you wish to evaluate how fast your ListView is rendering, check out the Profiling GPU Be sure to check out this Udacity video on view recycling as well. Refer to this ListView guide for another look at how this works to optimize the performance of your lists. Here is another related diagram on view recycling:

In this way, even for a list of 1000 items, only ~7 item view rows are ever instantiated or held in memory. Instead, as the user scrolls through the list, items that leave the screen are kept in memory for later use and then every new row that enters the screen reuses an older row kept around in memory. At that point, no additional row items are created in memory. When your ListView is connected to an adapter, the adapter will instantiate rows until the ListView has been fully populated with enough items to fill the full height of the screen. When using an adapter and a ListView, we need to make sure to understand how view recycling works. Note as shown above that there are other data sources besides an ArrayAdapter such as the CursorAdapter which instead binds directly to a result set from a Local SQLite Database. How to convert any given item in the array into a corresponding View object.

Which array to use as the data source for the list.The ArrayAdapter fits in between an ArrayList (data source) and the ListView (visual representation) and configures two aspects: The simplest adapter to use is called an ArrayAdapter because the adapter converts an ArrayList of objects into View items loaded into the ListView container. In Android development, any time we want to show a vertical list of scrollable items we will use a ListView which has data populated using an Adapter.
