平安科技移動開發(fā)二隊技術(shù)周報(第二十三期)
業(yè)界新聞
1)Google開源Brotli壓縮算法
谷歌非常重視互聯(lián)網(wǎng)用戶的體驗穆碎,而提升網(wǎng)頁加載速度是提升用戶體驗的一種重要方式颗味。兩年前夹攒,他們發(fā)布了Zotfli壓縮算法言蛇。該算法在默認設(shè)置下的輸出比zlib的最大壓縮比輸出還要小3-8%瑟匆。PNG優(yōu)化器柬祠、Web內(nèi)容預處理等許多壓縮方案中都集成了該算法趁啸∧蜃基于該算法的應(yīng)用情況,結(jié)合其它現(xiàn)代壓縮需求采呐,谷歌開發(fā)并開源了一個新的算法——Brotli壓縮算法若锁。
2)Android 6.0 源代碼及 Nexus 設(shè)備工廠鏡像發(fā)布
Google 已經(jīng) pushed Android 6.0 源代碼 (注:墻)到 AOSP (Android Open Source Project), 并發(fā)布 factory images (MRA58K) 給 Nexus 6 & Nexus 5 智能手機, Nexus Player, 以及 Nexus 9 和 Nexus 7 (2013) 平板電腦。
3)蘋果低調(diào)發(fā)布全新21.5英寸4K屏幕iMac
蘋果公司剛剛更新了自己的iMac一體化電腦產(chǎn)品線斧吐,新加入了4K分辨率屏幕的21.5寸iMac產(chǎn)品又固,提升了原有iMac產(chǎn)品的配置,并更新了無線鼠標煤率、鍵盤以及觸控板等附件仰冠。
Android開發(fā)
1)專訪DroidPlugin作者張勇:安卓黑科技是怎樣煉成的
前段時間,奇虎360在Github上發(fā)布了一個Android開源項目DroidPlugin蝶糯,這是一個實現(xiàn)動態(tài)加載的Android插件框架洋只,可以免安裝、免修改的運行第三方APK。一時間识虚,它被譽為安卓黑科技肢扯,引起行業(yè)內(nèi)的關(guān)注。
2)Android開發(fā)最佳實踐
前段時間担锤,Google公布了Android開發(fā)最佳實踐的一系列課程鹃彻,涉及到一些平時開發(fā)過程中應(yīng)該保持的良好習慣以及如何使用最新的Android Design Support Library來快速實現(xiàn)官方推薦的Material Design樣式的應(yīng)用。
3)給 Android 開發(fā)者的 RxJava 詳解
鑒于 RxJava 目前這種既火爆又神秘的現(xiàn)狀妻献,而我又在一年的使用過程中對 RxJava 有了一些理解蛛株,我決定寫下這篇文章來對 RxJava 做一個相對詳細的、針對 Android 開發(fā)者的介紹育拨。
這篇文章的目的有兩個:
- 給對 RxJava 感興趣的人一些入門的指引
- 給正在使用 RxJava 但仍然心存疑惑的人一些更深入的解析
4)安裝包立減1M--微信Android資源混淆打包工具
微信中的資源混淆工具主要為了混淆資源ID長度(例如將res/drawable/welcome.png混淆為r/s/a.png)谨履,同時利用7z深度壓縮,大大減少了安裝包體積熬丧,同時也增加了逼格笋粟,提升了反破解難度。資源混淆工具大約是在2014年4月實現(xiàn)析蝴,并在微信5.4中使用害捕,減少了大約1M的空間。然后在8月在公司內(nèi)部開源闷畸,現(xiàn)以推廣到QQ郵箱尝盼、QQ空間、手機管家等多個產(chǎn)品中使用佑菩。
5)React Native For Android 架構(gòu)初探
Facebook 在2015.9.15發(fā)布了 React Native for Android盾沫,把JavaScript 開發(fā)技術(shù)擴展到了Android平臺。React Native 讓開發(fā)者使用 JavaScript 和 React 編寫應(yīng)用殿漠,利用相同的核心代碼就可以創(chuàng)建 基于Web赴精,iOS 和 Android 平臺的原生應(yīng)用。本文將淺析Android React的架構(gòu)及相關(guān)基礎(chǔ)知識绞幌。
iOS開發(fā)
1)iOS應(yīng)用架構(gòu)談 本地持久化方案及動態(tài)部署
持久化方案對整個App架構(gòu)的影響和網(wǎng)絡(luò)層方案對整個架構(gòu)的影響類似蕾哟,一般都是導致整個項目耦合度高的罪魁禍首。而我也是一如既往的去Model化的實踐者莲蜘,在持久層去Model化的過程中谭确,我引入了Virtual Record的設(shè)計,這個在文中也會詳細描述菇夸。
2)Swift 與眾不同的地方
本文總結(jié)了Swift關(guān)鍵的基本概念琼富。
3)自己動手寫一個 iOS 網(wǎng)絡(luò)請求庫(五)——設(shè)置 SSL 鋼釘
在我們調(diào)用 HTTPS 協(xié)議的時候仪吧,事先把 SSL 證書存到 App 本地庄新,然后在每次請求的時候都進行一次驗證,避免中間人攻擊(Man-in-the-middle attack)。同時择诈,這個功能也是我們使用自簽名證書時候必須的械蹋,因為系統(tǒng)默認會拒絕我們自己簽名的不受信任的證書,導致連接失敗羞芍。
4)iOS App 的逆向工程: Hacking on Lyft
如果你曾經(jīng)想要知道某一部分代碼如何工作哗戈,或者很同情某些人程序里的 Bug,你要是有代碼荷科,通澄ㄒВ可以看看那部分代碼。但是畏浆,如果沒有代碼可怎么辦胆胰? 在這個演講里,Conrad 講到了很多可以逆向 App 的概念和工具刻获,這些方法和工具可以用來 debug 別人的庫和你自己的代碼蜀涨。他還展示了逆向 iOS 版本的 Lyft (譯者注:Lyft 是美國 Uber 之外的另一款打車軟件),并且成功注入代碼蝎毡,探測網(wǎng)絡(luò)流量厚柳,給我們活靈活現(xiàn)地展示逆向的藝術(shù)。通過 Conrad 的逆向技術(shù)沐兵,你也能成功地把 App Store 里所有的 App 的代碼都暴露在你面前别垮。
5)一種頭像緩存策略
許多 App 都有用戶系統(tǒng),不論是自己實現(xiàn)還是使用第三方扎谎,大概都需要顯示用戶的頭像宰闰。比較常見的情景下,頭像會在某些列表里出現(xiàn)簿透,例如聯(lián)系人列表移袍、消息列表等。雖然頭像也是圖像老充,但相比于普通圖片葡盗,我們對頭像有更高的要求。
技術(shù)縱橫
1)基于webpack搭建前端工程解決方案探索
前端工程啡浊,最起碼需要解決以下問題:
- 提供開發(fā)所需的一整套運行環(huán)境觅够,這和IDE作用類似
- 資源管理,包括資源獲取巷嚣、依賴處理喘先、實時更新、按需加載廷粒、公共模塊管理等
- 打通研發(fā)鏈路的各個環(huán)節(jié)窘拯,debug红且、mock、proxy涤姊、test暇番、build、deploy等
2)Google推出移動網(wǎng)頁加速項目AMP
網(wǎng)頁性能一直是網(wǎng)站思喊、用戶以及相關(guān)團體所關(guān)心的問題壁酬。近些年來,如何提升網(wǎng)頁性能吸引了很多工程人員和研究人員的關(guān)注恨课。每年,甚至都會有專門的會議來討論該問題舆乔。然而,廣大用戶剂公,尤其是移動客戶端的用戶蜕煌,仍然會經(jīng)常遇到網(wǎng)頁加載速度過慢的情況。為了解決該問題诬留,Google近期聯(lián)合數(shù)十家技術(shù)機構(gòu)和企業(yè)等推出了移動網(wǎng)頁加速項目(Accelerated Mobile Pages斜纪, AMP)
3)Github 365天: 給你一年的時間,你會怎樣去提高你的水平
盡管一直在Github上連擊看上去似乎是沒有多大必要的文兑,但是人總得有點追求盒刚。如果正是漫無目的,卻又想著提高技術(shù)的同時绿贞,為什么不去試試因块?畢竟技術(shù)非常好、不需要太多練習的人只是少數(shù)籍铁,似乎這樣的人是不存在的涡上。大多數(shù)的人都是經(jīng)過練習之后,才會達到別人口中的“技術(shù)好”拒名。
4)從輸入 URL 到頁面加載完成的過程中都發(fā)生了什么事情吩愧?
一道面試題所引申出來的知識點。
5)微博推薦架構(gòu)的演進
在微博推薦發(fā)展的過程中遇到體系方向的變化增显、業(yè)務(wù)的不斷更迭雁佳、目標的重新樹立,其產(chǎn)品思路同云、架構(gòu)以及算法也隨之進行變遷糖权。本文主要闡述在這個過程中推薦架構(gòu)的演進,從產(chǎn)品目標炸站、算法需求以及技術(shù)發(fā)展等維度為讀者呈現(xiàn)一個完整的發(fā)展脈絡(luò)星澳,同時也希望通過這個機會跟大家一起探討業(yè)務(wù)與技術(shù)的相互關(guān)系。
開源函數(shù)庫與工具
1)淺入淺出Java Web
Java Web開發(fā)常見基礎(chǔ)知識點總結(jié)旱易。
2)react-native-viewpager
React native實現(xiàn)的viewpager組建禁偎,同時支持Android和iOS腿堤。
文末攝影鑒賞