Sobes.tech
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
        }
    }
}