Update to latest build tool version
ArrayAdapter inheritance, will hit with performance issues with their synchronized methods and locking
operation is more suited for academic purposes.

Overinflation in getView(), is making the application inflate the resources each time the getView is called,
without making use of the recycle views of any Adapter base class. (http://developer.android.com/reference/android/widget/Adapter.html)
View Holder pattern wil saved a reference of the views in a static object in each convertView,
wich will optimize a little bit the scrolling of the views by not making the app look over ids
each time getView is called.  (http://developer.android.com/training/improving-layouts/smooth-scrolling.html#ViewHolder)
Refactor the adapter, avoid having class instantiation for the array and attach
it to the list in the onCreate.
Database operation in the background, we can take advantage of the fact that items are in a loop and this loop is in a thread background code. So we move insert operation to this loop and use a transaction to commit everything.
Save instance state for objects will allow to reuse the objects that have already being fetch and created and
avoid redoing the fetching when the app change from portrait to landscape, or when comming back from home screen.
Places object are valuable and will keep them around to avoid redoing the same thing over and over again.
Caching object mechanism, so in preExecute for the AsyncTask we fetch all items that are in the database, this way we are able
to show something quickly instead of just a blank screen, and fill the adapter.

Note: I forgot to put setTransactionSuccessful in the "database operation in the background" fix, so I included in this commit.