前言 2020年后第一篇,來(lái)點(diǎn)輕松的話題吧。在家辦公,UI美眉心血來(lái)潮要搞一個(gè)滑動(dòng)特效。 ViewPager+TabLayout ,老生常談的東西了。ViewPager 是基...
前言 2020年后第一篇,來(lái)點(diǎn)輕松的話題吧。在家辦公,UI美眉心血來(lái)潮要搞一個(gè)滑動(dòng)特效。 ViewPager+TabLayout ,老生常談的東西了。ViewPager 是基...
前言 本文是Retrofit2進(jìn)階系列的第一篇---從源碼角度看Retrofit2實(shí)現(xiàn)原理,我會(huì)盡可能用簡(jiǎn)潔的代碼幫大家理解Retrofit實(shí)現(xiàn)一次網(wǎng)絡(luò)請(qǐng)求的核心流程是怎樣的...
前言 本來(lái)是打算把java代理模式給寫(xiě)一下的,但是整理思路的時(shí)候發(fā)現(xiàn)這是一個(gè)龐大的工程,我需要講清楚什么是代理模式;它的應(yīng)用場(chǎng)景有哪些;代理又分為靜態(tài)代理和動(dòng)態(tài)代理,它們分別...
本文為筆者整理 + 譯文。 我希望大家通過(guò)這篇文章能夠?qū)?Android Context 有一個(gè)更深的了解。Context 是 Android 開(kāi)發(fā)中屬于極為重要的核心概念,...
今天想來(lái)說(shuō)說(shuō)Android的啟動(dòng)模式,一來(lái)自己做一個(gè)總結(jié),二來(lái)如果能幫助到別人就更好了~ 首先來(lái)看一個(gè)實(shí)際的業(yè)務(wù)場(chǎng)景。我之前在公司實(shí)習(xí)的時(shí)候,我所在的部門(mén)只負(fù)責(zé)一個(gè)品類(lèi)(國(guó)際...
1、從一個(gè) Bug 說(shuō)起 想必有過(guò)一定開(kāi)發(fā)經(jīng)驗(yàn)的同學(xué)對(duì) ViewModel 都不會(huì)陌生,它是 Google 推出的 MVVM 架構(gòu)模式的一部分。這里它的基礎(chǔ)使用我們就不介紹了...
前言 只要你掌握了基礎(chǔ)知識(shí),要想構(gòu)建一個(gè)完整的 Android App 并不難,但是想要寫(xiě)出一個(gè)可維護(hù)的 App 就是另一回事了,這時(shí)候就必須讓你自己的代碼足夠健壯,就需要避...
基于 Android API 26 Platform 源碼 寫(xiě)作背景 大部分文章寫(xiě)的都非常棒,講的很詳細(xì)。 但是始終有一個(gè)問(wèn)題一直困擾著我: View如何繪制到屏幕上!!! ...
我們假設(shè)計(jì)算機(jī)運(yùn)行一行基礎(chǔ)代碼需要執(zhí)行一次運(yùn)算。 那么上面這個(gè)方法需要執(zhí)行 2 次運(yùn)算 這個(gè)方法需要 (n + 1 + n + 1) = 2n + 2 次運(yùn)算。 我們把 算...