Я не могу комментировать преимущества производительности, но я всегда стараюсь работать по принципу «хорошей практики» (или даже «лучшей практики») для любого доступа к любым источникам «данных» (текстовым файлам, базам данных и т. Д.) .
Глядя на вещи в общем (не для Android), решения, которые должны приниматься при определении уровня доступа, сводятся к выполняемой операции, а также к любым внешним воздействиям.
Два примера, которые я могу вспомнить ...
- Если внешний процесс может иметь
ответственность за поддержание данных -
в этом случае он мог «открыться»
источник данных таким образом, чтобы
он блокирует все, кроме «чтения»
любой другой процесс на этапе технического обслуживания. В этом случае,
вашему коду будет отказано в доступе, если
вы запрашиваете права на чтение / запись, когда
это не обязательно.
- Риск нарушения целостности данных - хакерские атаки на системы из внешнего мира могут быть достигнуты через дыру в безопасности с использованием внутреннего кода, который имеет доступ на чтение / запись к данным, когда на самом деле требуется только доступ на «чтение».
Хорошо, эти пункты могут иметь или не иметь отношение к Android (особенно, если ваш источник данных относится к вашему приложению), но, как я уже сказал, я стараюсь смотреть на вещи в общем и использовать подход «наилучшей практики». Если мне не нужен доступ для записи, я не запрашиваю его.