一、幾種依賴(lài)方式 Compile 默認(rèn)的依賴(lài)方式,任何情況下都會(huì)依賴(lài)。 Provided 只提供編譯時(shí)依賴(lài),打包時(shí)不會(huì)添加進(jìn)去。 Apk 只在打包Apk包時(shí)依賴(lài),這個(gè)應(yīng)該是比...
一、幾種依賴(lài)方式 Compile 默認(rèn)的依賴(lài)方式,任何情況下都會(huì)依賴(lài)。 Provided 只提供編譯時(shí)依賴(lài),打包時(shí)不會(huì)添加進(jìn)去。 Apk 只在打包Apk包時(shí)依賴(lài),這個(gè)應(yīng)該是比...
目錄 廢話(huà) 正題 搜索關(guān)鍵方法 初始化原理 上下文賦值流程 一些問(wèn)題 0.前言 LeakCanary 不多做介紹了,用過(guò)的都知道是來(lái)干嘛的,不多比比。https://squa...
??LiveData是一個(gè)可被觀察的數(shù)據(jù)持有者類(lèi)。與常規(guī)的Observable不同,LiveData能意識(shí)到應(yīng)用程序組件的生命周期變化,這意味著它能遵守Activity、Fr...
1.問(wèn)題 公司app有banner 展示,后臺(tái)同學(xué)有反應(yīng)banner 埋點(diǎn)數(shù)據(jù)上報(bào)次數(shù)異常多,多達(dá)億級(jí)別,差點(diǎn)把kafaka 多給干爆了??。 banner是在Fragment...
在 Java 程序中,我們擁有多種新建對(duì)象的方式。除了最為常見(jiàn)的 new 語(yǔ)句之外,我們還可以通過(guò)反射機(jī)制、Object.clone 方法、反序列化以及 Unsafe.all...
前言 自定義View原理是Android開(kāi)發(fā)者必須了解的基礎(chǔ); 在了解自定義View之前,你需要有一定的知識(shí)儲(chǔ)備; 本文將全面解析關(guān)于自定義View中的所有知識(shí)基礎(chǔ)。 Car...
glide已經(jīng)是異步加載了吧,有什么方法優(yōu)化recyclerview嗎
Android圖片加載框架——Glide(Glide v4)前言 android中圖片加載框架有很多,所有框架最終達(dá)到的目都是在Android平臺(tái)上以極度簡(jiǎn)單的方式加載和展示圖片,如果我們每個(gè)都拿來(lái)學(xué)習(xí)和使用的話(huà),這樣會(huì)極大的浪費(fèi)我們...
類(lèi)似于AOP,思路確實(shí)不錯(cuò)。但是有一些感覺(jué)還是必須要在基類(lèi)中處理的,比如TAG的獲取,一般都會(huì)在基類(lèi)中取文件名;Context也是直接獲取的。在子類(lèi)中打印日志,或者使用上下文統(tǒng)一并且方便(當(dāng)然這些看似“必須的”都是和Activity無(wú)關(guān)的,有關(guān)的當(dāng)然都可以移到ActivityLifecycleCallbacks中去):
mActivity = this;
mContext = this;
TAG = this.getClass().getSimpleName();
BaseActivity是頂層封裝,就像java里的io類(lèi)一樣,BaseActvity根本不可能只存在一個(gè),稍微有點(diǎn)java基礎(chǔ)的設(shè)計(jì)base類(lèi)都會(huì)采用裝飾者模式,封裝是要抽出共同點(diǎn),而不是寫(xiě)一個(gè)極其龐大且臃腫的base類(lèi),基本高明的流程是這樣的,base抽象通用接口,各司其職的baseActivity繼承上層base或抽象接口給下層base
問(wèn)一下為什么要加鎖呀?
Android退出應(yīng)用程序方法總結(jié)在Android開(kāi)發(fā)中,我們運(yùn)行了應(yīng)用程序后,都需要退出應(yīng)用的,那么該如何退出應(yīng)用,又都有哪些實(shí)現(xiàn)方式呢?今天就為大家整理分享一些退出應(yīng)用程序的方法,一起來(lái)看看吧! 更新內(nèi)容...
問(wèn)一下為什么要加鎖呢?增加和移出都是在activity生命周期里,都是在主線(xiàn)程的呀?
Android Activity 全局管理 終極解決方案Android Activity 全局管理 終極解決方案 管理Activity的好處 在Android 開(kāi)發(fā)中 Activity 的管理 對(duì)于一個(gè)App是至關(guān)重要的,管理所有...
一、背景 隨著項(xiàng)目逐漸擴(kuò)展,業(yè)務(wù)功能越來(lái)越多,代碼量越來(lái)越多,開(kāi)發(fā)人員數(shù)量也越來(lái)越多。此過(guò)程中,你是否有過(guò)以下煩惱? 項(xiàng)目模塊多且復(fù)雜,編譯一次要5分鐘甚至10分鐘?太慢不能...
前言 最近好幾個(gè)朋友問(wèn)我,多Url怎么處理,這里我們就說(shuō)說(shuō)這個(gè)。 【Android架構(gòu)】基于MVP模式的Retrofit2+RXjava封裝(一)[https://www.j...
這叫無(wú)德初始化??
以后清單文件里各種providers
無(wú)侵入式獲取全局Context當(dāng)我們?cè)谑褂玫谌綆?kù),或者自己封裝庫(kù),如果需要需要用到Context時(shí),一般做法就是將初始化方法暴露給調(diào)用方,讓調(diào)用方在初始化類(lèi)庫(kù)時(shí),傳入Context。 解決方案 其實(shí)無(wú)侵...
前言 談起MVC,MVP和MVVM這三個(gè)最耳熟能詳?shù)腁ndroid框架,相信大家對(duì)它們都不陌生,但在實(shí)際的情況下,我們很難去界定和定義MVC、MVP和MVVM,從本質(zhì)上來(lái)講他...
為了解決“A類(lèi)的一個(gè)方法aaa的改變?cè)斐梢梅椒╝aa的所有類(lèi)的聯(lián)動(dòng)”,所以增加了一個(gè)中間層,只需要修改provider(描述了aaa的參數(shù)),而不需要修改所有聯(lián)動(dòng),看上去高大上,其實(shí)在Android開(kāi)發(fā)中缺少這樣的場(chǎng)景使用;
而文中提到的5行代碼使用aaa,則完全是一個(gè)工廠就能解決的問(wèn)題;
總之,在android里這么搞,除了逼格高,沒(méi)看出來(lái)什么收益
簡(jiǎn)單粗暴的Dagger2使用介紹安卓基礎(chǔ)開(kāi)發(fā)庫(kù),讓開(kāi)發(fā)簡(jiǎn)單點(diǎn)。Demo地址:https://github.com/LJYcoder/MvpDagger 學(xué)習(xí)/參考地址:https://www.jianshu...