我的Android知識(shí)體系

熱門博客

Android知識(shí)體系匯總
Gityuan
數(shù)據(jù)結(jié)構(gòu)與算法
互聯(lián)網(wǎng)公司Android面試題匯總
隔壁老李頭

23種設(shè)計(jì)模式

Android設(shè)計(jì)模式
Java設(shè)計(jì)模式

image.png

創(chuàng)建型模式:
工廠模式(Factory Pattern)
抽象工廠模式(Abstract Factory Pattern)
單例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)

結(jié)構(gòu)型模式:
適配器模式(Adapter Pattern)
橋接模式(Bridge Pattern)
過濾器模式(Filter梅忌、Criteria Pattern)
組合模式(Composite Pattern)
裝飾器模式(Decorator Pattern)
外觀模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)

行為型模式:
責(zé)任鏈模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解釋器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
備忘錄模式(Memento Pattern)
觀察者模式(Observer Pattern)
狀態(tài)模式(State Pattern)
空對(duì)象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
訪問者模式(Visitor Pattern)

插件化

插件化學(xué)習(xí)之路
MultiDex工作原理分析和優(yōu)化方案
Android關(guān)于Dex拆分(MultiDex)技術(shù)詳解
MultiDex中出現(xiàn)的main dex capacity exceeded解決之道
Too many classes in --main-dex-list

cocos2d-x

Cocos官網(wǎng)
cocos2d-x 減少編譯時(shí)間/免除重復(fù)編譯
Cocos2dx.3x入門三部曲

第三方動(dòng)畫框架

YY-SVGA動(dòng)畫框架
Lottie- 讓Android動(dòng)畫實(shí)現(xiàn)更簡(jiǎn)單

控件位置

得到view坐標(biāo)的各種方法

Flutter

想入門 Google 的 Flutter催首?我整理了一些資料看你需要嗎肆汹?
Flutter教程

熱修復(fù)

熱修復(fù)學(xué)習(xí)之路

組件化

主要是解決個(gè)組件之間的通信問題
ARouter 源碼淺析
業(yè)界首個(gè)支持漸進(jìn)式組件化改造的Android組件化開源框架

APT

元注解簡(jiǎn)介
編寫最基本的APT Demo
一起玩轉(zhuǎn)Android項(xiàng)目中的字節(jié)碼

Gradle 插件

編寫最基本的Gradle插件

Android app 啟動(dòng)流程

Android 應(yīng)用進(jìn)程啟動(dòng)流程解析

Activity啟動(dòng)流程

image.png

Bundle 機(jī)制

紅茶一杯話Binder
Android Binder之應(yīng)用層總結(jié)與分析
理解Android Binder機(jī)制(1/3):驅(qū)動(dòng)篇

Java集合類工作原理及實(shí)現(xiàn)

Java集合類工作原理及實(shí)現(xiàn)
圖解HashMap(一)

HashMap是什么

結(jié)論:HashMap是由數(shù)組和鏈表組合構(gòu)成的數(shù)據(jù)結(jié)構(gòu)紊浩,Java8中鏈表長(zhǎng)度超過8時(shí)會(huì)把長(zhǎng)度超過8的鏈表轉(zhuǎn)化成紅黑樹司训;存取時(shí)都會(huì)根據(jù)鍵值計(jì)算出”類別”(hashCode)扼仲,再根據(jù)”類別”定位到數(shù)組中的位置并執(zhí)行操作灼擂。

HashCode是什么

結(jié)論:hashCode是一個(gè)對(duì)象的標(biāo)識(shí)硫痰,Java中對(duì)象的hashCode是一個(gè)int類型值。通過hashCode來指定數(shù)組的索引可以快速定位到要找的對(duì)象在數(shù)組中的位置祖屏,之后再遍歷鏈表找到對(duì)應(yīng)值助赞,理想情況下時(shí)間復(fù)雜度為O(1),并且不同對(duì)象可以擁有相同的hashCode袁勺。

HashMap的時(shí)間復(fù)雜度

結(jié)論:HashMap的時(shí)間復(fù)雜度取決于hash算法雹食,優(yōu)秀的hash算法可以讓時(shí)間復(fù)雜度趨于常數(shù)O(1),糟糕的hash算法可以讓時(shí)間復(fù)雜度趨于O(N)期丰。

負(fù)載因子是什么

結(jié)論:我們知道HashMap中默認(rèn)的數(shù)組長(zhǎng)度是16群叶,默認(rèn)負(fù)載因子為0.75吃挑。在數(shù)組大小不變的情況下,存放鍵值對(duì)越多街立,查找的時(shí)間效率會(huì)降低舶衬,擴(kuò)容可以解決該問題,而負(fù)載因子決定了什么時(shí)候擴(kuò)容赎离,負(fù)載因子是已存鍵值對(duì)的數(shù)量和總的數(shù)組長(zhǎng)度的比值逛犹。默認(rèn)情況下負(fù)載因子為0.75,我們可在初始化HashMap的時(shí)候自己修改梁剔。

圖解HashMap(二)
圖解集合系列

數(shù)據(jù)結(jié)構(gòu)與算法

數(shù)據(jù)結(jié)構(gòu)與算法解析

線程安全List

private static List<String> TEST_LIST = Collections.synchronizedList(new ArrayList<String>());  

Collections.synchronizedList進(jìn)行包裝

圖片加載原理

Android 三大圖片緩存原理虽画、特性對(duì)比

多線程斷點(diǎn)續(xù)傳

RandomAcessFile類實(shí)現(xiàn)文件的分割和合并
http1.1 頭文件中傳入
Content-Range: bytes 20000-40000/47000

線程

線程創(chuàng)建的三種方式

1.新建類繼承 Thread 類實(shí)現(xiàn)線程
2.通過實(shí)現(xiàn)接口 Runnable 實(shí)現(xiàn)創(chuàng)建線程
3.使用 ExecutionException、Callable憾朴、ExecutorService狸捕、Future 等類,Executors 框架實(shí)現(xiàn)線程众雷,此方法:相對(duì)前兩種可拋異常灸拍,且有返回值。

run和start的區(qū)別
run 只是普通的方法調(diào)用砾省,start會(huì)創(chuàng)建新線程
start()實(shí)際上是通過本地方法start0()啟動(dòng)線程的鸡岗。而start0()會(huì)新運(yùn)行一個(gè)線程,新線程會(huì)調(diào)用run()方法编兄,start0是native方法轩性。創(chuàng)建線程會(huì)消耗系統(tǒng)資源。

JVM

JVM內(nèi)存結(jié)構(gòu)
《深入理解java虛擬機(jī)》學(xué)習(xí)筆記

泛型

Java 泛型解惑之<? extends T>和<? super T>

類的生命周期

Java虛擬機(jī)類生命周期
加載 驗(yàn)證 準(zhǔn)備 解析 初始化 使用 卸載

RxJava

Rxjava 創(chuàng)建和線程切換
關(guān)于 RxJava 背壓

EventBus實(shí)現(xiàn)原理

EventBus 3.0 源碼分析

大文件加密

Android使用Socket對(duì)大文件進(jìn)行加密傳輸

文件批量上傳和下載

OkGo狠鸳,一個(gè)專注于讓網(wǎng)絡(luò)請(qǐng)求更簡(jiǎn)單的框架揣苏,與RxJava完美結(jié)合,比Retrofit更簡(jiǎn)單易用

App 啟動(dòng)時(shí)間統(tǒng)計(jì)

Android 開發(fā)之 App 啟動(dòng)時(shí)間統(tǒng)計(jì)

Android 軟件穩(wěn)定性解決方案

Android 穩(wěn)定性研究

ThreadLocal原理

ThreadLocal原理及其實(shí)際應(yīng)用

Classloader

深入分析Java ClassLoader原理

代碼優(yōu)化

如何有效的減少重復(fù)的代碼

SharedPreferences

對(duì) SharedPreferences 再多一點(diǎn)了解
通過 ContentProvider 多進(jìn)程共享 SharedPreferences 數(shù)據(jù)
SharedPreferences不是線程同步的件舵,如果要進(jìn)行跨進(jìn)程調(diào)用請(qǐng)用ContentProvider代替

SurfView

SurfaceView繼承了View卸察,但是我們并不需要去實(shí)現(xiàn)它的draw方法來繪制自己,為什么呢铅祸?因?yàn)樗蚔iew有一個(gè)很大的區(qū)別坑质,View在UI線程去更新自己;而SurfaceView則在一個(gè)子線程中去更新自己临梗;這也顯示出了它的優(yōu)勢(shì)涡扼,當(dāng)制作游戲等需要不斷刷新View時(shí),因?yàn)槭窃谧泳€程盟庞,避免了對(duì)UI線程的阻塞吃沪。
Android視圖SurfaceView的實(shí)現(xiàn)原理分析

BroadcastReceiver,LocalBroadcastReceiver 區(qū)別

應(yīng)用場(chǎng)景

1.BroadcastReceiver用于應(yīng)用之間的傳遞消息什猖;
2.而LocalBroadcastManager用于應(yīng)用內(nèi)部傳遞消息巷波,比broadcastReceiver更加高效萎津。

安全

1.BroadcastReceiver使用的Content API,所以本質(zhì)上它是跨應(yīng)用的抹镊,所以在使用它時(shí)必須要考慮到不要被別的應(yīng)用濫用;

2.LocalBroadcastManager不需要考慮安全問題荤傲,因?yàn)樗辉趹?yīng)用內(nèi)部有效垮耳。

Handler 機(jī)制

Handler的原理

Android 事件傳遞機(jī)制

圖解 Android 事件分發(fā)機(jī)制

GC機(jī)制

垃圾回收算法

Https 優(yōu)化

DNS,攜帶數(shù)據(jù)遂黍,直接訪問IP
深入理解https通信加密過程

TCP/UDP的區(qū)別

TCP:面向連接终佛、傳輸可靠(保證數(shù)據(jù)正確性,保證數(shù)據(jù)順序)、用于傳輸大量數(shù)據(jù)(流模式)雾家、速度慢铃彰,建立連接需要開銷較多(時(shí)間,系統(tǒng)資源)芯咧。
UDP:面向非連接牙捉、傳輸不可靠、用于傳輸少量數(shù)據(jù)(數(shù)據(jù)包模式)敬飒、速度快

http協(xié)議

Http建立與斷開
四種常見的 POST 提交數(shù)據(jù)方式

Socket

Java并發(fā)編程

Java并發(fā)編程實(shí)踐

synchronized與Lock的區(qū)別與使用

image.png

Java線程池

線程池基礎(chǔ)
線程池高級(jí)

線程的狀態(tài)

image.png
  • 新建狀態(tài):新建線程對(duì)象邪铲,并沒有調(diào)用start()方法之前

  • 就緒狀態(tài):調(diào)用start()方法之后線程就進(jìn)入就緒狀態(tài),但是并不是說只要調(diào)用start()方法線程就馬上變?yōu)楫?dāng)前線程无拗,在變?yōu)楫?dāng)前線程之前都是為就緒狀態(tài)带到。值得一提的是,線程在睡眠和掛起中恢復(fù)的時(shí)候也會(huì)進(jìn)入就緒狀態(tài)哦英染。

  • 運(yùn)行狀態(tài):線程被設(shè)置為當(dāng)前線程揽惹,開始執(zhí)行run()方法。就是線程進(jìn)入運(yùn)行狀態(tài)

  • 阻塞狀態(tài):線程被暫停四康,比如說調(diào)用sleep()方法后線程就進(jìn)入阻塞狀態(tài)

  • 死亡狀態(tài):線程執(zhí)行結(jié)束

App如何沙箱化

淺析Android沙箱模型

單元測(cè)試

Android單元測(cè)試

快速打包

下一代Android打包工具搪搏,100個(gè)渠道包只需要10秒鐘

GIT操作

Git Pro
Git 教程

修改最后一次提交 : git commit --amend
取消已經(jīng)暫存的文件 : git reset HEAD <file>...
取消對(duì)文件的修改: git checkout -- <file>...
代碼合并:Merge、Rebase 的選擇
異同:
如果你想要一個(gè)干凈的箭养、線性的提交歷史慕嚷,沒有不必要的合并提交毕泌,你應(yīng)該使用 git rebase 而不是 git merge 來并入其他分支上的更改喝检。
另一方面,如果你想要保存項(xiàng)目完整的歷史撼泛,并且避免重寫公共分支上的 commit挠说, 你可以使用 git merge。兩種選項(xiàng)都很好用愿题,但至少你現(xiàn)在多了 git rebase 這個(gè)選擇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末损俭,一起剝皮案震驚了整個(gè)濱河市蛙奖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杆兵,老刑警劉巖雁仲,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異琐脏,居然都是意外死亡攒砖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門日裙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吹艇,“玉大人,你說我怎么就攤上這事昂拂∈苌瘢” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵格侯,是天一觀的道長(zhǎng)鼻听。 經(jīng)常有香客問我,道長(zhǎng)养交,這世上最難降的妖魔是什么精算? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮碎连,結(jié)果婚禮上灰羽,老公的妹妹穿的比我還像新娘。我一直安慰自己鱼辙,他們只是感情好廉嚼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著倒戏,像睡著了一般怠噪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杜跷,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天傍念,我揣著相機(jī)與錄音,去河邊找鬼葛闷。 笑死憋槐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的淑趾。 我是一名探鬼主播阳仔,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼扣泊!你這毒婦竟也來了近范?” 一聲冷哼從身側(cè)響起嘶摊,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎评矩,沒想到半個(gè)月后叶堆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稚照,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年蹂空,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片果录。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖咐熙,靈堂內(nèi)的尸體忽然破棺而出弱恒,到底是詐尸還是另有隱情,我是刑警寧澤棋恼,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布返弹,位于F島的核電站,受9級(jí)特大地震影響爪飘,放射性物質(zhì)發(fā)生泄漏义起。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一师崎、第九天 我趴在偏房一處隱蔽的房頂上張望默终。 院中可真熱鬧,春花似錦犁罩、人聲如沸齐蔽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)含滴。三九已至,卻和暖如春丐巫,著一層夾襖步出監(jiān)牢的瞬間谈况,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工递胧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碑韵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓谓着,卻偏偏與公主長(zhǎng)得像泼诱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赊锚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容