БД SQLite будет работать быстрее, когда она влечет за собой большие объемы данных - она найдет то, что вам нужно, гораздо быстрее.
Для небольших объемов данных файл KML будет иметь намного меньшую нагрузку, чем БД, но не очень полезен для динамических данных.
Если данные необходимо обновить или добавить, вам нужно будет сохранить файл в доступном для записи месте, если вы хотите продолжать использовать файл XML.
Приблизительно для 1000+ записей я хотел бы использовать БД SQLite - вы могли бы сделать здесь одну из двух вещей - предварительно скомпилировать БД для вашего приложения, затем поместить файл БД в папку ресурсов, а затем при первом запуске проверить, файл БД существует - если нет, переместите файл из ресурса forlder в папку БД (см. примечание ниже).
В качестве альтернативы вы можете сохранить записи в файле KML в папке ресурсов, а затем при первом запуске использовать анализатор для записи каждой записи из файла kml в базу данных.
Получение файлов из файла KML или CSV может занять некоторое время, в зависимости от количества записей. У меня есть приложение, которое получает данные из CSV-файла на SDCard и загружает их в БД, так как тестирование около 7000 записей заняло около 35 секунд по желанию.
Также я думаю, что папка raw и asset имеет ограничение на размер около 1 МБ.
Взгляните на эту ссылку, она показывает очень полезный способ перемещения большой БД при первом запуске приложения:
Решение для заполнения баз данных