Use the viewHolder pattern to increase performance.

Reducing the number of (relative expensive) findViewById() calls by
holding direct references to all inner views in a small extra class.
Cache the color string and avoid unnecessary html conversion.
Load icons asynchron. Much better initial scrolling performance.

But the icons will not refresh until you begin to scroll or trigger
getView() otherwise. Its possible to fix this by using
AppInfoAdapter::notifyDataSetChanged() in the right moment.