Это может быть в основном из-за переполнения памяти.Тестирование на симуляторе обычно работает, так как у вас очень мало контактов на симуляторе.Но когда приложение установлено на реальных устройствах, загрузка всех контактов в память - это дорогостоящая операция, а также одновременное отображение их в виде списка.
Возможное решение - визуализировать контакты, которые видны только пользователю, на экране и загрузить остальные, когда пользователь прокручивает страницу вниз.Это уменьшит потребление памяти, и пользовательский интерфейс станет очень отзывчивым.Flipkart имеет очень хорошую реализацию для преодоления этой проблемы.Библиотека известна как RecyclerListView