復(fù)習(xí)

singleTask模式,當(dāng)啟動(dòng)這個(gè)實(shí)例時(shí),如果棧內(nèi)存在該實(shí)例會(huì)令其頂部的所有的實(shí)例出棧,并復(fù)用該實(shí)例。

對(duì)稱加密,就是加密和解密數(shù)據(jù)都是使用同一個(gè)key,這方面的算法有DES。

非對(duì)稱加密,加密和解密是使用不同的key。發(fā)送數(shù)據(jù)之前要先和服務(wù)端約定生成公鑰和私鑰,使用公鑰加密的數(shù)據(jù)可以用私鑰解密,反之。這方面的算法有RSA。ssh 和 ssl都是典型的非對(duì)稱加密。

RecyclerView性能優(yōu)化

1、onBindViewHolder不做邏輯運(yùn)算等操作

2、DiffUtil的使用

3、減少xml文件inflate時(shí)間,利用代碼生成view

4、如果item高度是固定的話,可以使用RecyclerView.setHasFixedSize(true);

5、如果子RecyclerView具有相同的adapter,那么可以設(shè)置RecyclerView.setRecycledViewPool(pool)來(lái)共用一個(gè)RecycledViewPool

(如果LayoutManager是LinearLayoutManager或其子類,需要手動(dòng)開(kāi)啟這個(gè)特性:layout.setRecycleChildrenOnDetach(true))

6、用空間換時(shí)間,來(lái)提高滾動(dòng)的流暢性。

recyclerView.setItemViewCacheSize(20);

recyclerView.setDrawingCacheEnabled(true);

recyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);

7、設(shè)置RecyclerView.addOnScrollListener()和onViewRecycled;來(lái)在滑動(dòng)過(guò)程中或移除手機(jī)屏幕后停止加載的操作。

8、設(shè)置adapter.setHasStableIds(true),并重寫(xiě)getItemId()來(lái)給每個(gè)Item一個(gè)唯一的ID,一樣的model數(shù)據(jù)不會(huì)重復(fù)加載

主線程中的Looper.loop()死循環(huán)為什么不會(huì)導(dǎo)致ANR?

一個(gè)程序的 main 方法執(zhí)行完成, 便代表著這個(gè)程序運(yùn)行結(jié)束, 那么要使 application 一直得到運(yùn)行,直到用戶退出才結(jié)束程序, 那么我們勢(shì)必得讓這個(gè)線程一直運(yùn)行下去不能結(jié)束, 否則一個(gè)APP 剛啟動(dòng), main 方法結(jié)束,直接退出, 那程序也就結(jié)束了,那如何讓一個(gè)線程一直運(yùn)行呢?這里就用了一個(gè)無(wú)限循環(huán)的阻塞方式。

ANR:如果應(yīng)用程序主線程(即UI線程)在超時(shí)時(shí)間內(nèi)對(duì)輸入事件沒(méi)有處理完畢,或者對(duì)特定操作沒(méi)有執(zhí)行完畢,就會(huì)出現(xiàn)ANR。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容