Junior — Middle
Milyen módszerekkel lehet megelőzni a memória szivárgásokat az alkalmazásokban?
sobes.tech MI
Válasz az MI-től
Az Android alkalmazások memória szivárgásait a következő módszerekkel lehet megelőzni:
- Erőforrások felszabadítása: mindig zárja be a Cursor, InputStream, OutputStream és más erőforrásokat használat után.
- Kerülje az erős hivatkozásokat a Context-re: ne tároljon hivatkozásokat Activity vagy Context objektumokra statikus változókban, hogy ne akadályozza a szemétgyűjtőt.
- WeakReference használata: olyan objektumokhoz, amelyek nem szabad, hogy akadályozzák a szemétgyűjtést.
- Feliratkozás lemondása hallgatók és callback-ek esetén: az Activity vagy Fragment megsemmisítésekor, mondjon le minden hallgatóról, hogy elkerülje a hivatkozások megtartását.
- Ciklikus hivatkozások ellenőrzése: különösen névtelen osztályok és lambda esetén.
- Profilozók használata: Android Profiler, LeakCanary a szivárgások felismerésére és elemzésére.
WeakReference használatának példája:
class MyClass(context: Context) {
private val contextRef = WeakReference(context)
fun doSomething() {
val ctx = contextRef.get()
ctx?.let {
// munkavégzés a kontextussal
}
}
}