Android 技術的下半場

愈來愈多的人在提「移動端的下半場」、「Android開發的焦慮」之類的,也有人在喊「技術每天在變,學也學不完」,「昨天Kotlin今天Flutter」。其實我卻認爲,若是你技術達到了必定程度,你無需太過在乎這些。git

移動端真正進入下半場了嗎?於我看來並無,最多說「Android技術的探索」進入了下半場,而整個市場仍是樂觀的。之前是BAT的天下,而近兩年出來愈來愈多的獨角獸:頭條、抖音、拼多多、快手、小猿搜題等,這些公司的業務都在移動端上,他們須要招聘更多的移動端人才。若是真要說下半場,只能說不少小型創業公司在退出市場,這確實會致使不少入門工程師失業,但這也說明了這個行業在更加規範。github

並且,對於Android工程師而言,這更是個好的時代。互聯網下沉,那麼下沉市場裏的用戶是使用Android多仍是iOS多,你們都清楚。算法

那麼,對於工程師而言須要作什麼才能存活呢?很簡單,要麼轉行,要麼提升。我相信,一個技術不錯的工程師,不但無需焦慮,並且在這個時代,可以擁有穩定的職業生涯和豐厚的收入。編程

Android技術的下半場

要說下半場,我更願意說是「Android技術的下半場」,隨着這幾年大量的工程師和公司投入研發,Android技術已經從最先的簡單頁面,到愈來愈複雜的交互,再到動態化、插件化等新技術和黑科技,這個領域的深度在不斷加深。json

若是想成爲優秀、不擔憂淘汰的工程師,毫不是一味跟風新技術,今天學Kotlin、明天學Flutter,疲於奔命;而應該持續努力去完善本身的知識體系,保持必定的技術深度。小程序

所以,本專欄但願在你們作UI、界面開發之餘,分享一些Android架構方面的知識和技能。緩存

但願且相信這些技能可以讓讀者真正擺脫技術焦慮,最終找到本身的方向和競爭力。安全

業務同窗須要瞭解架構嗎?

有的同窗會問,我日常都在寫業務代碼、寫頁面、調用SDK,有必要去了解架構嗎?答案很簡單,業務是表,架構是裏。變化萬千的業務背後都是大同小異的架構。時代更迭,業務變遷,理解架構的技術人員能夠處變不驚,而非疲於奔命。微信

所以,本人建議業務同窗在繁重的業務開發之餘,能夠多去研究一些底層庫原理,而非停留在花式調用SDK的階段,這會讓你具有更強的技術競爭力。weex

架構孵化於業務,服務於業務

很多公司的架構同窗和業務同窗都存在一種矛盾:架構與業務互相獨立,致使輸出的技術老是不能很好的知足業務需求,致使的結果是:架構同窗有心無力,業務同窗有苦難言。

實際上,真正好的架構是從業務中孵化出來的,並且能服務於更廣闊的業務形態。

舉幾個例子你們就清楚了。

你們都知道阿里主營電商業務,而電商是強運營的,因此對於動態化有很是強的需求,也就是但願App儘量像網頁同樣,可以隨時更新頁面內容。因而,阿里內部孵化出了Weex,經過遠程開發部署js代碼,便可實時更新頁面內容;

另外,手淘App對於整個阿里集團的戰略意義很是大,它不只是盈利怪獸,並且是整個集團的流量入口(手淘DAU自2015年即達1.1億)。這也就是阿里曾提出的「航母策略」:手淘如一座航母,集團內各類業務形態如飛豬、閒魚、天貓等均可坐落在其上。因而,Atlas誕生了,全部App均可以輕鬆集成到手淘上,享受流量滋養。

相似的例子還有不少,好比你們熟知的微信,須要保證消息在任何複雜網絡下都能有最高的到達率。所以微信自研了一套跨平臺長鏈接方案,提出智能心跳方案、多種弱網應對策略如多級超時等,最終推出了Mars,保證了全國各類網絡環境下的用戶都能穩定的收發消息。

有些同窗可能瞭解阿里15年提出的「大中臺,小前臺戰略」,搭建集團數據中臺、技術中臺,幫助各類前臺業務快跑前進;這樣的技術架構和組織架構幫助阿里快速孵化出各類新的業務,好比18年初的淘寶特價版,據朋友瞭解整個App從啓動到上線只用了短短一個多月的時間。今年,騰訊組織架構調整,擔任CTO的張志東就提到:「沒有能幫助到公司級的數據中臺建設,我我的也蠻遺憾。」,自此騰訊也正式啓動了「中臺架構」建設。

因此說,不一樣的業務形態,能孵化出特有的架構。

架構是根,扎得越深,業務才越能開枝散葉。

專欄技術圖譜

閒話說了很多,下面正式談一談本專欄會覆蓋的一些技術點吧。這些技術點會基於本人平常的工做積累,同時結合各大廠開源的技術體系,(固然對於阿里閉源的會盡可能規避掉,線下能夠作一些技術探討)。

下面,我把後面專欄會覆蓋到的技術點列出來,固然在寫做的過程當中還會逐步調整。

  1. 動態化專題 因爲App獲客成本不斷提升,動態化是近年來愈來愈重要的技術架構,例如React Native、小程序、快應用等都在試圖讓App具有實時更新、隨手可得。本專題會對各廠提出的動態化方案進行分析,如JsBridge;包括小程序方案的一些實現思路,好比多進程的H5容器架構;另外,還會分析一些適用於移動平臺的動態化編程語言如Lua,Javascript等。

  2. 圖片專題 對於億級App而言,圖片的任何優化都對於流量、體驗等具備重要意義。好比Google+ App採用 WebP 圖片格式後,天天節省了 50TB數據存儲空間。所以,本專題會談一下各大廠如騰訊、FB、Google等在圖片優化方面提出過哪些方案,好比WebP vs SharpP;另外也會分析一些你們用的比較多的Glide、Fresco是如何作圖片緩存、如何基於Dalvik/Art不一樣的內存結構來優化。

  3. 省流專題 上面談到了圖片的壓縮,其實節省流量是一個永恆的話題,它不只能改善用戶體驗,也能幫助減小用戶流量開銷,節省公司成本。所以,本專題會談一談如何監控Android流量;有哪些經常使用的Diff及壓縮算法,好比Tinker裏自研的Diff算法 vs Google提出的google-diff vs BsDiff等;如何選用數據通訊格式如json、ProtoBuf;FastJson、Jackson各自的優點等等。

  4. 網絡專題 大多數業務同窗對網絡的認識就是OkHttp+Json解析,實際上,網絡這一塊還存在很是多值得研究的技術點。一個優質的App,除了在網絡良好的環境下運行,更重要的是,必須在弱網、網絡劫持、網絡慢等複雜環境下也要良好運行,並且還得快,這也就涉及到DNS加速、網絡結果緩存等。 以前大廠都在提「頁面秒開」的概念,頁面打開速度很大程度取決於當下的網絡環境,也對於用戶體驗和留存有很是大的影響。這個專題咱們談談網絡相關的技術點。

  5. 監控與日誌專題 對於監控和日誌,多數人的印象是集成一個第三方SDK,如Fabric、Bugly等。業務同窗或許對日誌瞭解不是特別多,但實際上日誌是相當重要的,尤爲是在排查複雜問題時。 本專題咱們談一下如何作到日誌不丟失,如何後臺上報且不影響App運行,最有意思的一點:如何利用長鏈接等技術,實時拉取任意用戶的本地詳細日誌

  6. 安全專題 安全專題就離多數比較遠了,這裏咱們講解一些常見的和業務相關的安全話題,具體後續補充。

  7. 高可用專題 後續補充

  8. GC專題 後續補充

專題計劃技術點列表

  1. 動態化專題
    • 如何讓JavaScript與App交互
    • 如何實現「即點即用」之小程序、快應用
    • H5容器之多進程架構
    • 動態化編程之Lua
    • ...等
  2. 圖片專題
    • 圖片壓縮之WebP與騰訊SharpP的實現機制
    • 圖片內存優化之Glide和Fresco原理篇
    • png jpg等經常使用圖片格式的內存、解壓速度分析
    • ...等
  3. 省流專題
    • Android流量監控
    • 文件壓縮 zip 7z gzip等
    • 增量更新之diff算法,案例:Tinker自研diff/patch算法
    • 圖片緩存技術
    • WebView緩存優化
    • 數據傳輸協議對比之ProfoBuf、FastJson、Jackson
    • ...等
  4. 網絡專題
    • 可靠長鏈接的意義
    • HTTPDNS DNS劫持
    • 網絡嗅探
    • Http2/Https/QUIC協議對比
    • CDN 削峯填谷
    • 如何作全局網絡限流,保證業務流量高優先級
    • ...等
  5. 監控與日誌專題
    • mmap日誌落地方式,開源項目Loganxlog等分析
    • 經過長鏈接動態拉取日誌
    • 若是長鏈接斷開、經過短鏈接兜底拉取日誌
    • 日誌上報,本地分片存儲及後臺上報策略
    • ...等
  6. 安全專題
    • 移動端的加密算法之對稱與非對稱,防篡改
    • 常規編碼方式一覽 md5 base64
    • ...等

《億級Android架構》小專欄介紹

業務的快速增加離不開穩定可靠的架構。《億級Android架構》小專欄會基於做者實際工做經驗,結合國內大廠如阿里、騰訊、美團等基礎架構現狀,嘗試談談如何設計一套好的架構來支持業務從0到1,甚至到億,但願與你們多多探討。

本專欄主要內容:

  1. 當前大廠有哪些Android架構;
  2. 這些架構能解決什麼問題;
  3. 這些架構的原理是什麼;
  4. 學習這些架構對咱們自身的意義。

《億級Android架構》小專欄文章列表:

《億級 Android 架構》專欄隨談》

《Android 架構之網絡鏈接與加速》

《Android 架構之長鏈接技術》

《Android 架構之高可用移動網絡鏈接》

《Android 架構之網絡安全演進》

《Android 架構之高性能移動端日誌系統》

《Android 架構之秒級移動配置中心》

相關文章
相關標籤/搜索