Step 1. 玩轉(zhuǎn)RxJava
使用RxJava處理異步極其方便,各種操作符可以對(duì)數(shù)據(jù)做流水線式操作,再加上與Retrofit的結(jié)合,使得Andorid開(kāi)發(fā)變的極其簡(jiǎn)單。唯一美中不足的就是RxJava不符合我們以往的編程思想,學(xué)習(xí)Rxjava存在一定的難度,很多工程師對(duì)Rxjava都不能完全理解。不過(guò),相信以下2個(gè)內(nèi)容會(huì)讓你對(duì)Rxjava的使用有一個(gè)更清晰的認(rèn)識(shí)。
- 給 Android 開(kāi)發(fā)者的 RxJava 詳解
- 開(kāi)源項(xiàng)目Hello—RxJava讓你徹底明白R(shí)xJava的異步編程。

項(xiàng)目地址:https://github.com/xinghongfei/Hello-RxJava
Step 2. 自定義view
自定義View主要掌握以下四部分內(nèi)容:
- 繪制機(jī)制:掌握onMeasure,onLayout,onDraw及相關(guān)類(lèi)的使用。
- 事件傳遞機(jī)制:掌握dispathTouchEvent(),onInterceptEvent(),onTouchEvent()三者的相關(guān)邏輯.
- 屬性動(dòng)畫(huà):因?yàn)閷傩詣?dòng)畫(huà)核心是對(duì)數(shù)值的變化。自定義View中使用屬性動(dòng)畫(huà)很方便對(duì)數(shù)值進(jìn)行變換。
- 相關(guān)手勢(shì)類(lèi)。
你需要的東西都在這里https://github.com/xinghongfei/awesome-view
Step 3. 進(jìn)程間通信與進(jìn)程保活
-
進(jìn)程間通信
進(jìn)程間通信通常通過(guò)以下7種手段:
- Bundle:主要是放在Intent中,在四大組件間傳遞。
- 文件共享:一個(gè)進(jìn)程寫(xiě)文件,一個(gè)進(jìn)程讀文件。
- SharedPreferences: 不支持并發(fā),底層基于xml。
- Messenger:底層是通過(guò)IPC進(jìn)行通信的,主要是進(jìn)程間傳遞數(shù)據(jù),不支持并發(fā)。
- Socket:基于TCP協(xié)議。
- AIDL: 支持并發(fā),一個(gè)進(jìn)程可以調(diào)用另一個(gè)進(jìn)程的方法。
- ContentProvider:不同的應(yīng)用間數(shù)據(jù)共享。
詳解:《Android開(kāi)發(fā)藝術(shù)探究》進(jìn)程間通信讀書(shū)筆記
2.進(jìn)程保活
(我的學(xué)習(xí)過(guò)程是從入門(mén)到放棄:大家只做了解,初步理解原理即可)
Android 進(jìn)程保活招式大全
論Android應(yīng)用進(jìn)程長(zhǎng)存的可行性
微信Android客戶(hù)端后臺(tái)?;罱?jīng)驗(yàn)分享
開(kāi)源項(xiàng)目Hello-Daemon

項(xiàng)目地址https://github.com/xinghongfei/Hello-Daemon
Step 4. 熱修復(fù)
線上程序出現(xiàn)bug,必須要有妙手回春的本事,想成為一名Andorid高工,這是必備技能。
現(xiàn)在市面上熱修復(fù)框架很多,以下是常見(jiàn)的四種。
| Tinker | QZone | AndFix | Dexposed | |
|---|---|---|---|---|
| 類(lèi)替換 | yes | yes | no | no |
| So替換 | yes | no | no | no |
| 資源替換 | yes | yes | no | no |
| 全平臺(tái)支持 | yes | yes | yes | no |
| 即時(shí)生效 | no | no | yes | yes |
| 性能損耗 | 較小 | 較大 | 較小 | 較小 |
| 補(bǔ)丁包大小 | 較小 | 較大 | 一般 | 一般 |
| 開(kāi)發(fā)透明 | yes | yes | no | no |
| 復(fù)雜度 | 較低 | 較低 | 復(fù)雜 | 復(fù)雜 |
| gradle支持 | yes | no | no | no |
| 接口文檔 | 豐富 | 較少 | 一般 | 較少 |
| Rom體積 | Dalvik較大 | 較小 | 較小 | 較小 |
| 成功率 | 較高 | 最高 | 一般 | 一般 |
總的來(lái)說(shuō):
- Dexposed無(wú)法支持全平臺(tái),并不適合應(yīng)用到商業(yè)產(chǎn)品中。
- AndFix作為native解決方案,首先面臨的是穩(wěn)定性與兼容性問(wèn)題,更重要的是它無(wú)法實(shí)現(xiàn)類(lèi)替換,它是需要大量額外的開(kāi)發(fā)成本的。
- QZone方案主要問(wèn)題是插樁帶來(lái)Dalvik的性能問(wèn)題,以及為了解決Art下內(nèi)存地址問(wèn)題而導(dǎo)致補(bǔ)丁包急速增大的。
Tinker熱補(bǔ)丁方案不僅支持類(lèi)、So以及資源的替換,它還是2.X-7.X的全平臺(tái)支持。它無(wú)需插樁,補(bǔ)丁大小也遠(yuǎn)遠(yuǎn)小于其他方案。Tinker已運(yùn)行在微信的數(shù)億Android設(shè)備上。
Android 熱補(bǔ)丁動(dòng)態(tài)修復(fù)框架小結(jié)
Android熱補(bǔ)丁動(dòng)態(tài)修復(fù)技術(shù)系列
安卓App熱補(bǔ)丁動(dòng)態(tài)修復(fù)技術(shù)介紹
下面這個(gè)項(xiàng)目是一個(gè)基于熱修復(fù)框架Tinker的Demo,并總結(jié)了一些常見(jiàn)的問(wèn)題。

項(xiàng)目地址https://github.com/xinghongfei/Hello-Tinker
Step 5. 架構(gòu)
常見(jiàn)的架構(gòu)有:MVC,MVP,MVVM。使用最多的就是MVC架構(gòu)了,現(xiàn)在很多應(yīng)用也使用MVP架構(gòu),MVVM用的還很少。

Android App的設(shè)計(jì)架構(gòu):MVC,MVP,MVVM與架構(gòu)經(jīng)驗(yàn)談
Google的android-architecture
Android Data Binding
下面這個(gè)項(xiàng)目是一個(gè)特別簡(jiǎn)單的MVP架構(gòu)框架,模擬文件下載。

項(xiàng)目地址https://github.com/xinghongfei/Hello-MVP
Step 6. 整理中,敬請(qǐng)期待
Step 7.敬請(qǐng)期待
結(jié)語(yǔ):為了收集整理這些東西,基本上整個(gè)國(guó)慶假期的時(shí)間和精力都花費(fèi)在這個(gè)上面,希望會(huì)對(duì)大家有幫助,未來(lái)會(huì)不斷的完善。如果你喜歡我的文章,可以關(guān)注我的Github,掘金,簡(jiǎn)書(shū),????,后續(xù)會(huì)分享更多精彩的內(nèi)容。祝好。