Назад к вопросам
Middle+
73
questionbank
Расскажи об антипаттернах в разработке Android.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
- Использование
AsyncTaskдля долгих операций (лучше использовать Kotlin Coroutines или RxJava). - Передача View/Context в ViewModel (вызывает утечки памяти).
- Наследование от
ActivityилиFragmentнапрямую для базовой логики (лучше использовать композицию). - Жесткое кодирование строк, чисел, цветов вместо использования ресурсов.
- Блокировка основного потока (
MainThread) с помощью долгих синхронных операций. - Использование статических переменных для хранения данных, требующих жизненного цикла.
- Чрезмерное использование вложенных Layouts, что приводит к проблемам с производительностью (
ConstraintLayoutилиLinearLayoutс weight лучше). - Отсутствие обработки конфигурационных изменений (повороты экрана, смена локали).
- Прямой доступ к базам данных или сетевым операциям из UI-потока.
- Неправильное использование
SharedPreferencesдля хранения больших объектов или конфиденциальных данных. - Отсутствие обработки исключений или ее неправильная реализация (например, пустые блоки
catch). - Использование неявных интентов без проверки наличия подходящих активити (
resolveActivity). - Неправильное управление подписками (например, в RxJava), что приводит к утечкам.
Пример избыточного вложения Layouts:
<!-- Bad -->
<LinearLayout>
<LinearLayout>
<TextView/>
</LinearLayout>
</LinearLayout>
<!-- Good -->
<LinearLayout>
<TextView/>
</LinearLayout>