240 發(fā)簡信
IP屬地:廣東
  • 人生節(jié)點 | 2021年終總結(jié)&2022年度計劃

    我是一名Android開發(fā),目前就職于字節(jié)跳動。我畢業(yè)來到深圳已經(jīng)8年多甲雅;轉(zhuǎn)行從事Android開發(fā)也已5年多。 2021是我年齡上一個重要節(jié)點蚓炬,我二十多歲的青春慕淡,用完了盾沫。 ...

  • 作者你好忍疾,看完后有點疑問闯传,如果按上面的例子來看,數(shù)據(jù)的儲存和生命周期的對應(yīng)都可以由LiveData單獨實現(xiàn)了吧膝昆,自己封裝一個類來管理liveData也可以的吧,這里用ViewModel的優(yōu)勢在哪里呢叠必?

    “終于懂了“系列:Jetpack AAC完整解析(三)ViewModel 完全掌握荚孵!

    Jetpack AAC 系列文章:“終于懂了“系列:Jetpack AAC完整解析(一)Lifecycle 完全掌握![http://www.reibang.com/p/7...

  • 整個指紋密碼流程下來纬朝,你添加的密鑰起到了什么作用呢

    Android開發(fā) 多語言收叶、指紋登錄、手勢登錄

    簡介 隨著互聯(lián)網(wǎng)的發(fā)展不光手機配置越來越高共苛,app產(chǎn)品要求也越來越高了∨忻唬現(xiàn)在做APP時產(chǎn)品都會讓我們加上 多語言、指紋登錄隅茎、手勢登錄等功能澄峰。下面代碼完全適配Android8....

  • 120
    Android線上輕量級APM性能監(jiān)測方案

    Github 鏈接 Collie [https://github.com/happylishang/Collie] App性能如何量化 如何衡量一個APP性能好壞混滔?直觀感受...

  • Android熱更新一:JAVA的類加載機制

    很早之前就想深入的研究和學(xué)習(xí)一下熱修復(fù)糙申,由于時間的原因一直拖著隙券,現(xiàn)在才執(zhí)筆弄起來宁舰。 Android而更新系列:Android熱更新一:JAVA的類加載機制Android熱更新...

  • 120
    【背上Jetpack之ViewModel】即使您不使用MVVM也要了解ViewModel ——ViewModel 的職能邊界

    系列文章 【背上Jetpack】Jetpack 主要組件的依賴及傳遞關(guān)系【背上Jetpack】AdroidX下使用Activity和Fragment的變化【背上Jetpack...

  • 120
    Jetpack ViewModel

    在說起Jetpack的ViewModel時喊括,我們第一反應(yīng)都會想到它就是MVVM中的VM凭需。然而這兩者并不是等價關(guān)系狸棍,Jetpack的ViewModel它只是官方為我們提供的一個...

  • 120
    Android Jetpack ViewModel解析

    前言 最近幾天把Jetpack中的3劍客Lifecycle+ViewModel+LiveData的使用和原理學(xué)習(xí)了一遍胆胰,這3者也是構(gòu)建MVVM模式的核心烦秩。這個系列的工具垮斯,建議...

  • 120
    Android Jetpack LiveData解析

    目前關(guān)于LiveData源碼解讀的文章非常多了,本文就不重復(fù)了闻镶,這里只對核心流程做解讀甚脉。關(guān)于源碼流程,推薦:Android livedata 源碼解剖 系列文章 Androi...

  • 感覺你說的“內(nèi)存泄漏的本質(zhì)是什么铆农?”下面的內(nèi)容確實有點問題牺氨。
    LiveData.observe(owner,ovserver){
    ......
    LifecycleBoundObserver wrapper = new LifecycleBoundObserver(owner, observer);//1
    ObserverWrapper existing = mObservers.putIfAbsent(observer, wrapper);//2
    ......
    owner.getLifecycle().addObserver(wrapper);//3
    }
    上面兩行確實決定了Activity/Fragment與LiveData.LifecycleBoundObserver的相互引用,(注釋1)決定了LiveData.LifecycleBoundObserver引用到Activity/Fragment墩剖,(注釋3)決定Activity/Fragment引用LiveData.LifecycleBoundObserver猴凹。
    但是LiveData.LifecycleBoundObserver的detachObserver()方法的實現(xiàn)為:
    LiveData.LifecycleBoundObserver.detachObserver() {
    mOwner.getLifecycle().removeObserver(this);
    }
    它與上面注釋2對應(yīng),僅僅是讓Activity/Fragment不再引用LiveData.LifecycleBoundObserver岭皂。其實這里雖然LiveData.LifecycleBoundObserver保持著Activity/Fragment的引用郊霎,但是如果LiveData.LifecycleBoundObserver沒有被其他對象引用上,也就不能被GCRoot給鏈接上爷绘,則不會影響它的回收书劝。
    同時(注釋2)處使得LiveData引用到了LiveData.LifecycleBoundObserver,于是就有了LiveData->LiveData.LifecycleBoundObserver->Activity/Fragment,這才是可能導(dǎo)致內(nèi)存泄漏的關(guān)鍵點土至。
    那是什么時候斷掉這條引用鏈的呢购对?
    LiveData.LifecycleBoundObserver.onStateChanged(source, event) {
    if (mOwner.getLifecycle().getCurrentState() == DESTROYED) {
    removeObserver(mObserver);
    return;
    }
    }
    LiveData.LifecycleBoundObserver在監(jiān)聽到Activity/Fragment DESTROYED的時候調(diào)用了LiveData.removeObserver(mObserver)。
    LiveData.removeObserver(mObserver){
    ......
    ObserverWrapper removed = mObservers.remove(observer);
    ......
    }
    在這里L(fēng)iveData直接斷掉了對LiveData.LifecycleBoundObserver的引用陶因。LiveData-/->LiveData.LifecycleBoundObserver->Activity/Fragment
    到此為止LiveData.LifecycleBoundObserver->Activity/Fragment的引用關(guān)系其實一直還存在的骡苞,但是LiveData.LifecycleBoundObserver已經(jīng)是一個孤立對象,所以不影響它的回收楷扬。

    Android Jetpack LiveData解析

    目前關(guān)于LiveData源碼解讀的文章非常多了解幽,本文就不重復(fù)了,這里只對核心流程做解讀烘苹。關(guān)于源碼流程躲株,推薦:Android livedata 源碼解剖 系列文章 Androi...

  • 120
    Android DataBinding 快速上手

    **Data Binding**顧名思義就是數(shù)據(jù)綁定然爆,2015年谷歌I/O大會上發(fā)布了DataBinding站粟,它是一個數(shù)據(jù)綁定框架,是一種對MVVM的實現(xiàn)曾雕,MVVM模式就相當(dāng)...

  • Android面試知識點總結(jié)

    昨天發(fā)了一片文章《Android近期面試總結(jié)》奴烙,其實這篇文章主要還是對于自己前一段時間所做的事情的總結(jié)。對大家的價值并不是很大剖张。而有一位將要實習(xí)的同學(xué)講“先收藏切诀,到時候再來看...

  • 120
    我怎么又掛了?——面試中那些低級又致命的失誤

    注:本文章只代表個人觀點搔弄。 最近一段時間聊了一些候選人幅虑。發(fā)現(xiàn)大多數(shù)的候選人都是被一些低級又致命的失誤PASS掉的。今天整理一些顾犹,希望各位同學(xué)在這金三銀四的時間段倒庵,不要因為這些...

亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品