Middle+
Pasakok apie antipatterns Android kūrime.
sobes.tech AI
Atsakymas iš AI
- Ilgalaikių operacijų atlikimui naudokite
AsyncTask(geriau naudoti Kotlin Coroutines arba RxJava). - Perduoti View/Context į ViewModel (gali sukelti atminties nutekėjimą).
- Pagrindinei logikai naudokite tiesiogiai
ActivityarbaFragmentpaveldėjimą (geriau naudoti kompoziciją). - Kietai koduoti eilutės, skaičiai, spalvos vietoj išteklių naudojimo.
- Užblokuoti pagrindinį srautą (
MainThread) ilgomis sinchroninėmis operacijomis. - Naudoti statines kintamąsias duomenims saugoti, kurie reikalauja gyvavimo ciklo.
- Per daug įterptų išdėstymų, kurie sukelia našumo problemas (
ConstraintLayoutarbaLinearLayoutsu svoriu yra geriau). - Nenurodyti konfigūracijos pokyčių (ekrano pasukimo, kalbos keitimo) apdorojimo.
- Tiesioginis prieigos prie duomenų bazės ar tinklo operacijų iš UI srauto.
- Netinkamas
SharedPreferencesnaudojimas dideliems objektams ar konfidencialiems duomenims saugoti. - Trūksta išimčių tvarkymo arba netinkama jos įgyvendinimas (pvz., tušti
catchblokai). - Naudoti neaiškius intentus be patikrinimo, ar yra tinkamų aktyvumų (
resolveActivity). - Netinkamas prenumeratų valdymas (pvz., RxJava), kuris sukelia nuotėkį.
Per daug įterptų išdėstymų pavyzdys:
<!-- Blogai -->
<LinearLayout>
<LinearLayout>
<TextView/>
</LinearLayout>
</LinearLayout>
<!-- Gerai -->
<LinearLayout>
<TextView/>
</LinearLayout>