1. 下載Android源碼 源碼在哪下載呢,https://github.com/android/platform_frameworks_base 這是Google在Git...
1. 下載Android源碼 源碼在哪下載呢,https://github.com/android/platform_frameworks_base 這是Google在Git...
為了規(guī)范化團(tuán)隊(duì)代碼提交,可以使用Git Commit Template插件對(duì)git提交規(guī)范進(jìn)行一定的約束,方便后期查看管理以及維護(hù)。 1 安裝插件Git Commit Tem...
JVM和Dalvik/ART Android應(yīng)用程序運(yùn)行在Dalvik/ART虛擬機(jī),并且每一個(gè)應(yīng)用程序?qū)?yīng)有一個(gè)單獨(dú)的Dalvik虛擬機(jī)實(shí)例。Dalvik虛擬機(jī)實(shí)則也算是一...
Google Jetpack MVVM架構(gòu)設(shè)計(jì) View綁定到ViewModel,然后執(zhí)行一些命令在向它請(qǐng)求一個(gè)動(dòng)作。而反過(guò)來(lái),ViewModel跟Model通訊,告訴它更新...
示例1 登錄并返回用戶信息 傳統(tǒng)異步方式 使用Retrofit+Handler 1、引入Retrofit依賴(lài) 2、定義接口 3、相應(yīng)數(shù)據(jù)實(shí)體 4、響應(yīng)數(shù)據(jù)包裝類(lèi) 5、數(shù)據(jù)請(qǐng)求...
1 簡(jiǎn)介 WorkManager是Jetpack組件庫(kù)中的一個(gè)組件,主要用于處理立即執(zhí)行、長(zhǎng)時(shí)間運(yùn)行、可延遲執(zhí)行的并且保證必須執(zhí)行的后臺(tái)操作任務(wù)。例如上傳日志,定時(shí)上傳數(shù)據(jù),...
注解 注解聲明 聲明一個(gè)注解類(lèi)型 Java中所有的注解,默認(rèn)是實(shí)現(xiàn)Annotation接口: 注解的聲明使用@interface關(guān)鍵字,一個(gè)注解的聲明如下: 元注解 在定義注...
1、彈窗 點(diǎn)擊完按鈕彈出一個(gè)彈窗,等后續(xù)的事件執(zhí)行完成之后再關(guān)閉彈窗,但是這種做法用戶體驗(yàn)較差,并且適用的場(chǎng)景比較單一,只能在網(wǎng)絡(luò)請(qǐng)求或者其他耗時(shí)操作的時(shí)候使用。 2、禁用按...
1 裝飾模式 Java中IO使用的是裝飾模式,裝飾模式在Android中很常見(jiàn),比如系統(tǒng)的Context。 裝飾模式的模型 Component:抽象構(gòu)建接口。 Concret...
1 簡(jiǎn)介 Navigation是Android Jetpack中的一個(gè)框架,用于在Android應(yīng)用中的“目標(biāo)”之間導(dǎo)航,該框架提供一致的 API,“目標(biāo)”可以是Fragme...
Room能和LiveData很好的結(jié)合實(shí)現(xiàn)MVVM,Room可以利用LiveData的觀察者模式,感知Lifecyle的狀態(tài),實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)UI,避免MVP模式下更新UI需要大...
1 簡(jiǎn)介 Room是Google官方在SQLite基礎(chǔ)上封裝的一款數(shù)據(jù)持久庫(kù),是Jetpack全家桶的一員,和Jetpack其他庫(kù)有著可以高度搭配協(xié)調(diào)的天然優(yōu)勢(shì)。Room使用...
1 簡(jiǎn)介和簡(jiǎn)單使用 1.1 簡(jiǎn)介 ViewModel以注重生命周期的方式存儲(chǔ)和管理界面相關(guān)的數(shù)據(jù)。ViewModel類(lèi)讓數(shù)據(jù)可在發(fā)生屏幕旋轉(zhuǎn)等配置更改后繼續(xù)留存,保證數(shù)據(jù)的安...
1 簡(jiǎn)介和簡(jiǎn)單使用 1.1 簡(jiǎn)介 DataBinding是Google推出的一款數(shù)據(jù)和視圖綁定庫(kù),可以省去findViewById和setText,能大量減少業(yè)務(wù)邏輯和布局之...
1 ViewBinding 1.1 介紹 ViewBinding就是視圖綁定,通過(guò)視圖綁定功能,可以更輕松地編寫(xiě)可與視圖交互的代碼。在模塊中啟用視圖綁定之后,系統(tǒng)會(huì)為該模塊中...
LiveData默認(rèn)帶有粘性數(shù)據(jù)特征,但是很多情況下并不需要粘性數(shù)據(jù),這時(shí)候可以通過(guò)反射去修改mLastVersion和mVersion的值,使他們相等,就可以去掉粘性數(shù)據(jù)。...
1 簡(jiǎn)介和簡(jiǎn)單使用 1.1 簡(jiǎn)介 LiveData是一種可觀察的數(shù)據(jù)存儲(chǔ)器類(lèi)。與常規(guī)的可觀察類(lèi)不同,LiveData具有生命周期感知能力,意指它遵循其他應(yīng)用組件(如Activ...
1 簡(jiǎn)介和簡(jiǎn)單使用 1.1 簡(jiǎn)介 Lifecycle是Jetpack中一個(gè)生命周期感知型組件,可執(zhí)行操作來(lái)響應(yīng)另一個(gè)組件(如 Activity 和 Fragment)的生命周...
使用反射結(jié)合動(dòng)態(tài)代理實(shí)現(xiàn)一個(gè)View注解綁定庫(kù),支持View和事件綁定,代碼簡(jiǎn)潔,使用簡(jiǎn)單,擴(kuò)展性強(qiáng)。 支持的功能 ● @ContentView 綁定layout 替代s...
使用代理模式實(shí)現(xiàn)隔離層架構(gòu),目的是為了當(dāng)出現(xiàn)一個(gè)新的網(wǎng)絡(luò)框架的時(shí)候,可以在業(yè)務(wù)層無(wú)感的情況下自由切換網(wǎng)絡(luò)庫(kù),實(shí)現(xiàn)熱插拔,對(duì)業(yè)務(wù)層幾乎沒(méi)有影響。 1 架構(gòu)圖 以用戶租房為例,租...