OkHttp[https://github.com/square/okhttp] 已經(jīng)足夠好用。 我想對(duì)于這句話沒(méi)有多少需要爭(zhēng)論的,OkHttp足以應(yīng)對(duì)開(kāi)發(fā)中遇到的大部分問(wèn)題...
對(duì)大多數(shù)人而言,工作的絕大部分時(shí)間都用來(lái)開(kāi)會(huì)對(duì)需求,對(duì)完需求寫業(yè)務(wù),然后測(cè)試上線。在這種情況下,單元測(cè)試成了看起來(lái)不太重要,但又略顯神秘的存在,你可能總想著試試但總也沒(méi)有機(jī)會(huì)...
Gson是Android解析Json的老牌子了,它的使用和原理也被大家研究的極其透徹了,可以說(shuō)這是一個(gè)相當(dāng)成熟的庫(kù)。但是伴隨kotlin的普及,有一個(gè)問(wèn)題也越發(fā)明顯地暴露了出...
@蠟筆小強(qiáng)要學(xué)習(xí) 謝謝關(guān)注
WanAndroid——探索Android應(yīng)用架構(gòu)的一次實(shí)踐在 《也談Android應(yīng)用架構(gòu)》 和 《Jetpack之Lifecycle、LiveData及ViewModel是如何讓架構(gòu)起飛的》 兩篇文章中,我們?cè)敿?xì)論述了MVC、MV...
在 《也談Android應(yīng)用架構(gòu)》 和 《Jetpack之Lifecycle、LiveData及ViewModel是如何讓架構(gòu)起飛的》 兩篇文章中,我們?cè)敿?xì)論述了MVC、MV...
在《也談Android應(yīng)用架構(gòu)》中我們對(duì)MVC、MVP、MVVM進(jìn)行了詳盡的分析,但還有一個(gè)問(wèn)題懸而未決,那就是生命周期。在Android平臺(tái)上生命周期具有十分重要的意義,因...
談到架構(gòu),想到的一定是MVC、MVP、MVVM這幾個(gè)詞了,然后對(duì)比一下它們的優(yōu)缺點(diǎn),接下來(lái)就是站隊(duì)的時(shí)間了。常常寫MVC,偶然見(jiàn)到了MVP,“嗯,真香~”。寫久了MVP,又聽(tīng)...
可能會(huì)有歧義,但是我們說(shuō)數(shù)組的查詢速度,一般應(yīng)該指判斷一個(gè)對(duì)象是不是在數(shù)組中,而不是基于下標(biāo),絕大部分情況是知道對(duì)象而不是下標(biāo)的。所以這里提高速度指的是通過(guò)對(duì)象可以直接定位下標(biāo),避免了遍歷獲取位置。
Java集合源碼分析之基礎(chǔ)(二):哈希表無(wú)論是數(shù)組還是鏈表,其對(duì)數(shù)據(jù)的查詢表現(xiàn)都比較無(wú)力,要想知道一個(gè)元素是否在數(shù)組或鏈表中,只能從前向后挨個(gè)對(duì)比。出現(xiàn)這個(gè)問(wèn)題的根源在于,我們沒(méi)有辦法直接根據(jù)一個(gè)元素找到它存儲(chǔ)的位...
有一個(gè)原則應(yīng)該是,解決一個(gè)問(wèn)題時(shí),不能引入另一個(gè)問(wèn)題。你想要解決Presenter接口過(guò)多的問(wèn)題,卻引入了Object強(qiáng)轉(zhuǎn)以及對(duì)type進(jìn)行switch的判斷,把本來(lái)presenter做的事情搬到了Activity中。
Android---MVP模式---大道至簡(jiǎn)一. 前言 看了很多關(guān)于MVP的文章,有初級(jí)篇,高級(jí)篇,還有終極篇 等等,給我的感覺(jué)就是: 有沒(méi)有必要封裝的那么復(fù)雜? 1. MVP主要解決了什么問(wèn)題? 當(dāng)頁(yè)面比較復(fù)雜時(shí): ...
近日市場(chǎng)投放部門的同事找我說(shuō),在應(yīng)用商店輸入關(guān)鍵字查看我們APP的排名,這個(gè)能不能通過(guò)技術(shù)自動(dòng)化實(shí)現(xiàn)?本以為是件很簡(jiǎn)單的事情,結(jié)果做的時(shí)候遇到了重重阻礙,于是就有了這次逆向之...
Git是什么?代碼管理工具。Git是怎么實(shí)現(xiàn)的?我們不需要關(guān)心。我們只要把目光盯著每個(gè)commit,知道git的每個(gè)命令都是為此服務(wù)的,足矣。 正如我在模型里形容的,git的...
本篇提要:Rebase 第三天:Rebase的傳說(shuō) 路人丙是個(gè)有探索精神的人,雖然昨天通過(guò)分支+cherry-pick成功解決了問(wèn)題,但他總覺(jué)得有些怪異,哪里怪異又具體說(shuō)不上...
你好哈,可能這里沒(méi)有解釋清楚,也沒(méi)有截取源碼中注釋的內(nèi)容。Object[] r = new Object[size()];此時(shí)拿到的size是當(dāng)時(shí)的瞬時(shí)值,接下來(lái)使用Iterator遍歷過(guò)程中,有可能size的大小會(huì)發(fā)生改變,而Iterator判斷hasNext會(huì)實(shí)時(shí)獲取最新的size(當(dāng)然有些實(shí)現(xiàn)會(huì)重寫此部分內(nèi)容)。這時(shí)候toArray保證的是最終返回的大小是最新的。
Java集合源碼分析之超級(jí)接口:CollectionCollection Collection是List、Queue和Set的超集,它直接繼承于Iterable,也就是所有的Collection集合類都支持for-each循環(huán)...
本篇提要:分支、FastForward、Cherry-Pick 第二天:分支與cherry-pick的作用 第一天走的比較早,到家后飛機(jī)醬聽(tīng)說(shuō)老板過(guò)去視察工作了,內(nèi)心有點(diǎn)慌亂...
本篇提要:git的核心理念、結(jié)構(gòu)、代碼庫(kù)的創(chuàng)建和Merge 從開(kāi)始使用git至今看過(guò)無(wú)數(shù)文章,大多時(shí)候是為了解決一個(gè)特定問(wèn)題,尋求一個(gè)特定的解決方案,偶爾也會(huì)看一些新手向的教...
目錄 瞎比比 什么都別說(shuō),先看看效果怎樣? 需要什么材料、設(shè)備? root 手機(jī) 為 Android 手機(jī)裝上 Linux 系統(tǒng) 最后 瞎比比 自從沒(méi)有了學(xué)生身份之后,購(gòu)買云...
如果data沒(méi)有緩存,切換后數(shù)據(jù)就丟失了,除非設(shè)置offsetpagelimit
Androidx-fragment1.1.0版本實(shí)現(xiàn)懶加載升級(jí)為Androidx后,fragment在1.1.0發(fā)生一些變化setUserVisibleHint方法給標(biāo)注為Deprecated提示用setMaxLifecycle實(shí)現(xiàn)...
p本身是第0個(gè)元素,當(dāng)bitCount=0時(shí)操作的是p.next,也就是第1個(gè)元素,所以bitCount=6時(shí)p后邊有7個(gè)元素,這樣就一共是8個(gè)了,再次循環(huán)開(kāi)始樹(shù)化
Java集合源碼分析之Map(五):HashMapHashMap可能是我們使用最多的鍵值對(duì)型的集合類了,它的底層基于哈希表,采用數(shù)組存儲(chǔ)數(shù)據(jù),使用鏈表來(lái)解決哈希碰撞。在JDK1.8中還引入了紅黑樹(shù)來(lái)解決鏈表長(zhǎng)度過(guò)長(zhǎng)導(dǎo)致的查詢...