我們?cè)诳偨Y(jié)過(guò)去的同時(shí)蜈项,也要展望一下未來(lái),來(lái)規(guī)劃一下今年要學(xué)哪些新技術(shù)晨雳。這幾年優(yōu)秀Android的開源庫(kù)不斷推出行瑞,新技術(shù)層出不窮,需要我們不斷去了解和掌握餐禁,在提高自身開發(fā)水平的同時(shí)血久,我們需要付出更多學(xué)習(xí)精力和時(shí)間。俗話說(shuō)帮非,打鐵還需自身硬氧吐,為了在這個(gè)日新月異的技術(shù)時(shí)代為了生存不被淘汰讹蘑,必須要求自身掌握的技術(shù)不斷跟進(jìn)時(shí)代腳步,所以我們必須付出才能得到回報(bào)筑舅,說(shuō)沒(méi)有時(shí)間去學(xué)習(xí)的人永遠(yuǎn)都會(huì)有找不完的借口座慰。好了,閑話不多說(shuō)了翠拣,下面一起來(lái)看看流行的技術(shù)吧版仔。
圖片加載庫(kù)
Universal-Image-Loader,早期廣泛被用的一個(gè)可重復(fù)使用的儀器為異步圖像加載误墓、緩存蛮粮、顯示。作者已經(jīng)停止維護(hù)优烧。
Picasso蝉揍,諧音"畢加索",聽(tīng)起來(lái)就很藝術(shù),是 Square開源的項(xiàng)目畦娄,主導(dǎo)者是是Android大神JakeWharton又沾。
Glide,是google員工在Picasso基礎(chǔ)上進(jìn)行優(yōu)化熙卡,總體比Picasso更優(yōu)秀杖刷,在Google很多項(xiàng)目在用。
Fresco驳癌,F(xiàn)aceBook的明星項(xiàng)目滑燃,也是去年最火的項(xiàng)目之一,匿名共享緩存等機(jī)制保證低端機(jī)表現(xiàn)極佳颓鲜,但是源代碼基于C/C++表窘。
異步分發(fā)通信庫(kù)
EventBus,是一個(gè)發(fā)布甜滨、訂閱的輕量級(jí)事件總線框架乐严,基于觀察者模式的實(shí)現(xiàn)的線程通信框架。
RxJava衣摩, 一個(gè)在 Java VM 上使用可觀測(cè)的序列來(lái)組成異步的昂验、基于觀察者模式的實(shí)現(xiàn)的庫(kù)。
RxAndroid艾扮,函數(shù)響應(yīng)式編程既琴, 把 RxJava 帶到 Android 環(huán)境中。很多時(shí)候泡嘴,編寫 Android 程序甫恩,你也可以看成是數(shù)據(jù)的處理和流動(dòng),換一種思想編程酌予,曾經(jīng)看起來(lái)很棘手的問(wèn)題填物,瞬間就很優(yōu)雅的解決了纹腌,相信你會(huì)被這種build模式的開發(fā)會(huì)越來(lái)越愛(ài)。
RxBinding滞磺,是 Jake Wharton 的一個(gè)開源庫(kù)升薯,它提供了一套在 Android 平臺(tái)上的基于 RxJava的 Binding API。所謂 Binding击困,就是類似設(shè)置 OnClickListener 涎劈、設(shè)置 TextWatcher 這樣的注冊(cè)綁定對(duì)象的 API。
新技術(shù)語(yǔ)言
Kotlin阅茶,作為 Android 領(lǐng)域的 Swift蛛枚,絕對(duì)讓你如沐新風(fēng)。拋棄沉重的 Java 語(yǔ)法脸哀,Kotlin 融入了很多現(xiàn)代編程語(yǔ)言的思想蹦浦,作為開發(fā)者,接受新的語(yǔ)言撞蜂,了解新語(yǔ)言的發(fā)展趨勢(shì)盲镶,更有利于開闊你的思路和加深對(duì)語(yǔ)言的理解。在 Android 開發(fā)上蝌诡,使用 Kotlin 并不會(huì)讓你付出什么代價(jià)溉贿,為什么不來(lái)試試? 使用Kotlin進(jìn)行Android開發(fā)浦旱。
React Native宇色,跨平臺(tái)一直是開發(fā)者的夢(mèng)想,而且移動(dòng)應(yīng)用的跨平臺(tái)解決方案目前也很多颁湖,在Facebook 的參與和力推下宣蠕,讓這個(gè)解決方案帶上了光環(huán)。第一個(gè)用 React Native 開發(fā)的 App 已經(jīng)在 Google Play 上架 Facebook 廣告管理工具甥捺,聽(tīng)說(shuō) Android 的 SDK 也馬上會(huì)到來(lái)抢蚀,國(guó)內(nèi)天貓團(tuán)隊(duì)以及在去年10月首次實(shí)現(xiàn),攜程也基于React Native推出mouse, 相信不久后會(huì)有更多的框架封裝的出現(xiàn)涎永。但是思币,在2018年6月20號(hào)鹿响,Airbnb 技術(shù)團(tuán)隊(duì)在 Medium 上宣布羡微,Airbnb 放棄使用 React Native,將回歸到使用基于原生技術(shù)的自有框架開發(fā) App惶我。
flutter妈倔,是一款能夠簡(jiǎn)單、高效地開發(fā)優(yōu)美的移動(dòng)APP的UI框架绸贡。在2018年2月27日盯蝴,在2018世界移動(dòng)大會(huì)上毅哗,Google發(fā)布了Flutter的第一個(gè)Beta版本。Flutter是Google用以幫助開發(fā)者在IOS和Android兩個(gè)平臺(tái)開發(fā)高質(zhì)量原生應(yīng)用的全新移動(dòng)UI框架捧挺。
Sky虑绵,與 React Native 類似,使用 Web 開發(fā)語(yǔ)言來(lái)做移動(dòng)平臺(tái)的開發(fā)闽烙,雖然這個(gè)只是一個(gè)嘗試翅睛,但是這是 Google 自身推出的,特別是在 Java 語(yǔ)言的使用上敗訴之后黑竞,這可能會(huì)有一些作為呢捕发。
Hybrid,完全使用 H5 開發(fā) App很魂,目前已很成熟扎酷,但是體現(xiàn)并不很好《舸遥可以短時(shí)間內(nèi)更新APP UI法挨,適配能力超強(qiáng),但是基于流量嚴(yán)重拉岁,但是折中方案在很多情況下是非常適合的坷剧,典型的就是淘寶微信,大部分信息展示都是通過(guò) H5 來(lái)完成喊暖,同時(shí)通過(guò) Hybird 方式惫企,把 Web 和 Native 打通,提供給網(wǎng)頁(yè)訪問(wèn)Native的能力陵叽。
Python
Python 是一種解釋型狞尔、面向?qū)ο蟆?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語(yǔ)言巩掺。像 Perl 語(yǔ)言一樣偏序,Python 源代碼同樣遵循 GPL(GNU General Public License)協(xié)議。Python 已然成為機(jī)器學(xué)習(xí)領(lǐng)域的標(biāo)配胖替,據(jù)說(shuō)即將納入高考研儒,雖未得到官方證實(shí),但也是大勢(shì)所趨独令。
區(qū)塊鏈端朵,(目測(cè)要火的技術(shù))是分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸燃箭、共識(shí)機(jī)制冲呢、加密算法等計(jì)算機(jī)技術(shù)的新型應(yīng)用模式。所謂共識(shí)機(jī)制是區(qū)塊鏈系統(tǒng)中實(shí)現(xiàn)不同節(jié)點(diǎn)之間建立信任招狸、獲取權(quán)益的數(shù)學(xué)算法敬拓。區(qū)塊鏈本質(zhì)上是一個(gè)去中心化的數(shù)據(jù)庫(kù)邻薯,同時(shí)作為比特幣的底層技術(shù),區(qū)塊鏈?zhǔn)且淮褂妹艽a學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊乘凸,每一個(gè)數(shù)據(jù)塊中包含了一次比特幣網(wǎng)絡(luò)交易的信息厕诡,用于驗(yàn)證其信息的有效性(防偽)和生成下一個(gè)區(qū)塊。
狹義來(lái)講营勤,區(qū)塊鏈?zhǔn)且环N按照時(shí)間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成的一 種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)木人, 并以密碼學(xué)方式保證的不可篡改和不可偽造的分布式賬本。廣義來(lái)講冀偶,區(qū)塊鏈技術(shù)是利用塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來(lái)驗(yàn)證與存儲(chǔ)數(shù)據(jù)醒第、利用分布式節(jié)點(diǎn)共識(shí)算法來(lái)生成和更新數(shù)據(jù)、利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問(wèn)的安全进鸠、利用由自動(dòng)化腳本代碼組成的智能合約來(lái)編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計(jì)算范式稠曼。
注入注解框架
Dagger2,與Spring 的IOC差不多吧客年。這個(gè)框架它的好處是它沒(méi)有采用反射技術(shù)(Spring是用反射的),而是用預(yù)編譯技術(shù)霞幅,因?yàn)榛诜瓷涞腄I非常地耗用資源(空間,時(shí)間)量瓜。
Butterknife司恳,出自大神JakeWharton,綁定視圖和回調(diào)字段和方法绍傲。例如扔傅,減少了findViewById()的繁瑣操作。
設(shè)計(jì)模式
MVP烫饼,因?yàn)?Android 并沒(méi)有嚴(yán)格的業(yè)務(wù)和界面區(qū)分猎塞,項(xiàng)目一龐大,就很容易使代碼結(jié)構(gòu)顯得越來(lái)越亂「茏荩現(xiàn)在 Android 端對(duì) MVP 模式討論越來(lái)越熱荠耽,谷歌6.0API以及更多的體現(xiàn)了MVP設(shè)計(jì)思維,覺(jué)得 MVP 是非常適合 Android 上的APP 開發(fā)比藻。
MVVM 铝量,這是因?yàn)殚_始官方支持 DataBinding,把 MVVM 直接帶到 Android 中银亲。數(shù)據(jù)綁定在 Windows WPF 和 Web (尤其JSP中)已經(jīng)非常常見(jiàn)慢叨,它非常高效的開發(fā)效率,讓你只關(guān)心你的數(shù)據(jù)和業(yè)務(wù)群凶。這也對(duì) Android 開發(fā)來(lái)說(shuō)插爹,無(wú)疑是一個(gè)非常重大的里程碑
UI框架
BaseRecyclerViewAdapterHelper使用——RecyclerView萬(wàn)能適配器哄辣。
PinnedSectionItemDecoration:強(qiáng)大的粘性標(biāo)簽庫(kù)
EasyRefreshLayout: 輕松實(shí)現(xiàn)下拉刷新和上拉更多
EasySwipeMenuLayout:仿IOS側(cè)滑刪除
SmartRefreshLayout请梢,下拉刷新赠尾、上拉加載、二級(jí)刷新毅弧、淘寶二樓气嫁、RefreshLayout、OverScroll够坐,Android智能下拉刷新框架寸宵,支持越界回彈、越界拖動(dòng)元咙,具有極強(qiáng)的擴(kuò)展性梯影,集成了幾十種炫酷的Header和 Footer。 也吸取了現(xiàn)在流行的各種刷新布局的優(yōu)點(diǎn)庶香,包括谷歌官方的 SwipeRefreshLayout甲棍,其他第三方的 Ultra-Pull-To-Refresh、TwinklingRefreshLayout 赶掖。還集成了各種炫酷的 Header 和 Footer感猛。
android-gif-drawable,用于在Android上顯示動(dòng)畫GIF的視圖和Drawable奢赂。
PhotoView 陪白,用于在Android上通過(guò)各種觸摸手勢(shì)實(shí)現(xiàn)支持縮放的圖片的框架。
網(wǎng)絡(luò)請(qǐng)求庫(kù)
okhttp膳灶,在Android開發(fā)中咱士,它已經(jīng)成為眼下最火的http請(qǐng)求框架了。
Retrofit轧钓,與okhttp共同出自于Square公司司致,retrofit就是對(duì)okhttp做了一層封裝。把網(wǎng)絡(luò)請(qǐng)求都交給給了Okhttp聋迎,我們只需要通過(guò)簡(jiǎn)單的配置就能使用retrofit來(lái)進(jìn)行網(wǎng)絡(luò)請(qǐng)求了脂矫,其主要作者也是Android大神JakeWharton。
日志打印庫(kù)
logger霉晕,簡(jiǎn)單,漂亮的android和強(qiáng)大的記錄器庭再。
權(quán)限請(qǐng)求庫(kù)
RxPermissions,API23以上Android 6.0項(xiàng)目分為普通權(quán)限和危險(xiǎn)權(quán)限牺堰,該庫(kù)在項(xiàng)目運(yùn)行時(shí)動(dòng)態(tài)進(jìn)行權(quán)限請(qǐng)求拄轻,支持RxJava2。
SQLite數(shù)據(jù)庫(kù)
LitePal伟葫,一個(gè)Android庫(kù),使得開發(fā)人員使用SQLite數(shù)據(jù)庫(kù)非常容易恨搓。
最后
給大家分享一份移動(dòng)架構(gòu)大綱,包含了移動(dòng)架構(gòu)師需要掌握的所有的技術(shù)體系,大家可以對(duì)比一下自己不足或者欠缺的地方有方向的去學(xué)習(xí)提升斧抱;
需要高清架構(gòu)圖以及圖中視頻資料和文章項(xiàng)目源碼的可以加入我的技術(shù)交流群:825106898私聊群主小姐姐免費(fèi)獲取