Step 1. 玩轉(zhuǎn)RxJava
使用RxJava處理異步極其方便蒙具,各種操作符可以對數(shù)據(jù)做流水線式操作球榆,再加上與Retrofit的結(jié)合,使得Andorid開發(fā)變的極其簡單禁筏。唯一美中不足的就是RxJava不符合我們以往的編程思想持钉,學(xué)習(xí)Rxjava存在一定的難度,很多工程師對Rxjava都不能完全理解篱昔。不過每强,相信以下2個內(nèi)容會讓你對Rxjava的使用有一個更清晰的認(rèn)識。
- 給 Android 開發(fā)者的 RxJava 詳解
- 開源項目Hello—RxJava讓你徹底明白RxJava的異步編程州刽。
項目地址:https://github.com/xinghongfei/Hello-RxJava
Step 2. 自定義view
自定義View主要掌握以下四部分內(nèi)容:
- 繪制機(jī)制:掌握onMeasure,onLayout,onDraw及相關(guān)類的使用空执。
- 事件傳遞機(jī)制:掌握dispathTouchEvent(),onInterceptEvent(),onTouchEvent()三者的相關(guān)邏輯.
- 屬性動畫:因為屬性動畫核心是對數(shù)值的變化。自定義View中使用屬性動畫很方便對數(shù)值進(jìn)行變換穗椅。
- 相關(guān)手勢類辨绊。
你需要的東西都在這里https://github.com/xinghongfei/awesome-view
Step 3. 進(jìn)程間通信與進(jìn)程保活
-
進(jìn)程間通信
進(jìn)程間通信通常通過以下7種手段:
- Bundle:主要是放在Intent中房待,在四大組件間傳遞邢羔。
- 文件共享:一個進(jìn)程寫文件驼抹,一個進(jìn)程讀文件。
- SharedPreferences: 不支持并發(fā),底層基于xml拜鹤。
- Messenger:底層是通過IPC進(jìn)行通信的框冀,主要是進(jìn)程間傳遞數(shù)據(jù),不支持并發(fā)敏簿。
- Socket:基于TCP協(xié)議明也。
- AIDL: 支持并發(fā),一個進(jìn)程可以調(diào)用另一個進(jìn)程的方法惯裕。
- ContentProvider:不同的應(yīng)用間數(shù)據(jù)共享温数。
詳解:《Android開發(fā)藝術(shù)探究》進(jìn)程間通信讀書筆記
2.進(jìn)程保活
(我的學(xué)習(xí)過程是從入門到放棄:大家只做了解蜻势,初步理解原理即可)
Android 進(jìn)程背糯蹋活招式大全
開源項目Hello-Daemon
項目地址https://github.com/xinghongfei/Hello-Daemon
Step 4. 熱修復(fù)
線上程序出現(xiàn)bug握玛,必須要有妙手回春的本事够傍,想成為一名Andorid高工,這是必備技能挠铲。
現(xiàn)在市面上熱修復(fù)框架很多冕屯,以下是常見的四種。
Tinker | QZone | AndFix | Dexposed | |
---|---|---|---|---|
類替換 | yes | yes | no | no |
So替換 | yes | no | no | no |
資源替換 | yes | yes | no | no |
全平臺支持 | yes | yes | yes | no |
即時生效 | no | no | yes | yes |
性能損耗 | 較小 | 較大 | 較小 | 較小 |
補(bǔ)丁包大小 | 較小 | 較大 | 一般 | 一般 |
開發(fā)透明 | yes | yes | no | no |
復(fù)雜度 | 較低 | 較低 | 復(fù)雜 | 復(fù)雜 |
gradle支持 | yes | no | no | no |
接口文檔 | 豐富 | 較少 | 一般 | 較少 |
Rom體積 | Dalvik較大 | 較小 | 較小 | 較小 |
成功率 | 較高 | 最高 | 一般 | 一般 |
總的來說:
- Dexposed無法支持全平臺拂苹,并不適合應(yīng)用到商業(yè)產(chǎn)品中安聘。
- AndFix作為native解決方案,首先面臨的是穩(wěn)定性與兼容性問題瓢棒,更重要的是它無法實現(xiàn)類替換黑毅,它是需要大量額外的開發(fā)成本的缎除。
- QZone方案主要問題是插樁帶來Dalvik的性能問題命锄,以及為了解決Art下內(nèi)存地址問題而導(dǎo)致補(bǔ)丁包急速增大的十办。
Tinker熱補(bǔ)丁方案不僅支持類、So以及資源的替換嗅绰,它還是2.X-7.X的全平臺支持。它無需插樁搀继,補(bǔ)丁大小也遠(yuǎn)遠(yuǎn)小于其他方案窘面。Tinker已運(yùn)行在微信的數(shù)億Android設(shè)備上。
Android 熱補(bǔ)丁動態(tài)修復(fù)框架小結(jié)
Android熱補(bǔ)丁動態(tài)修復(fù)技術(shù)系列
安卓App熱補(bǔ)丁動態(tài)修復(fù)技術(shù)介紹
下面這個項目是一個基于熱修復(fù)框架Tinker的Demo叽躯,并總結(jié)了一些常見的問題财边。
項目地址https://github.com/xinghongfei/Hello-Tinker
Step 5. 架構(gòu)
常見的架構(gòu)有:MVC,MVP点骑,MVVM酣难。使用最多的就是MVC架構(gòu)了谍夭,現(xiàn)在很多應(yīng)用也使用MVP架構(gòu),MVVM用的還很少憨募。
Android App的設(shè)計架構(gòu):MVC,MVP,MVVM與架構(gòu)經(jīng)驗談
Google的android-architecture
Android Data Binding
下面這個項目是一個特別簡單的MVP架構(gòu)框架紧索,模擬文件下載。
項目地址https://github.com/xinghongfei/Hello-MVP
Step 6. 整理中菜谣,敬請期待
Step 7.敬請期待
結(jié)語:為了收集整理這些東西珠漂,基本上整個國慶假期的時間和精力都花費(fèi)在這個上面,希望會對大家有幫助尾膊,未來會不斷的完善媳危。如果你喜歡我的文章,可以關(guān)注我的Github冈敛,掘金待笑,簡書,????,后續(xù)會分享更多精彩的內(nèi)容抓谴。祝好暮蹂。