從 Java,OC 到 Swift,Kotlin,都有一個共同的特點:隨著 CPU 性能的越來越強悍,高級編程語言的最終目標都只有一個:提高生產力,例如Kotlin:相比JAVA,開發同樣的功能,它的代碼更加精簡,尤其是它的協程,在異步任務處理方面更是遠遠優于JAVA,
什么是協程?
它是輕量級的執行緒,由于基于執行緒池API,處理并發任務這件事對它來說真的是小菜一碟,很多小伙伴可能表示疑惑:我直接用Handler,或是RxJava不更香嗎?相比之下,協程可以用阻塞的方式寫出非阻塞式的代碼,解決并發中常見的回呼頑疾,這是它一枝獨秀的優勢,協程模式下的網路請求開發得到了很大程度的簡化,

Kotlin+協程下的網路請求開發
目前開發者們使用的基本是OkHttp,然后用Retrofit進行封裝,自2.6.0版本開始,Retrofit這個經典的框架也是為Kotlin增強了兼容性:內置了對Kotlin協程的支持,協程的加入可以說讓Retrofit+OkHttp這個經典組合更上一層樓:
- 呼叫簡單、少寫重復
- 代碼不依賴第三方庫
- 可以通過模板快速上手
除此之外,協程可以用于多個網路請求的并行執行和串行合并,如果只是針對單個網路請求,Rxjava,Retrofit的原始callback也可以很好地處理,但是開發程序中,一個頁面經常需要進行多次網路請求,如果不使用協程,就會碰到回呼地獄,或者需要寫很多代碼來判斷每個api的回傳情況,然后做資料排序或者合并,這樣對于性能有很大影響,Retrofit對介面利用注解進行封裝,實作介面定義的規范統一的優點結合協程模式,網路請求的開發注定會更加高效,
但在網路模塊的開發程序中,我們還是會遇到一些問題,例如資料序列化,當介面請求失敗或者回傳的資料錯誤,按照常理,我們不會決議data,但gson每次都會對json進行反序列化,不管json里面的資料是否是成功的,里面的data都會被反序列化,這著實讓人悲傷,除此之外,API竊聽、非對稱加密的程序,以及Https的原理等等也是我們開發、以及面試時常常遇見的問題:

那在面試怎么更好的去回答這類問題?
為了幫助到大家更好在面試中回答好這種問題,整理了一些Android 開發面試中必問的學習檔案給大家進行參考,下面就用圖片形式給大家進行展示,如需要參考完整版請去我 GitHub 進行訪問查閱,



轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/387945.html
標籤:其他
