1. Считать из базы некоторое кол-во данных.
2. Передать их в адаптер ListView
3. Установить обработчик скроллинга ListView
4. Поймать конец списка во время прокрутки
5. Подгрузить из базы следующую порцию данных
6. Передать их в адаптер
7. notifyDataSetChanged
Можно, но сложно. До последних версий апи не поддерживало 2симки. Каждый вендор реализовывал разделение по своему. Я видел на гитхабе, где программер собирает реализации производителей
Ставишь самое последнее sdk без всяких system image
Ставишь build tools, platform tools
И почти все из последнего пункта, где support либы и Google play либы
1. самый простой, открыть два потока, один качает, второй играет
2. взять стороннюю библиотеку, которая умеет отдавать байты и проигрывать одновременно,
к примеру BASS