平安科技移動(dòng)開(kāi)發(fā)二隊(duì)技術(shù)周報(bào)(第三十一期)
Android開(kāi)發(fā)
1)Android應(yīng)用架構(gòu)
Android開(kāi)發(fā)生態(tài)圈的節(jié)奏非常之快雄驹。每周都會(huì)有新的工具誕生佃牛,類庫(kù)的更新,博客的發(fā)表以及技術(shù)探討医舆。如果你外出度假一個(gè)月俘侠,當(dāng)你回來(lái)的時(shí)候可能已經(jīng)發(fā)布了新版本的Support Library或者Play Services。
2)EventBus源碼研讀 (上) (中) (下)
EventBus 是一款針對(duì)Android優(yōu)化的發(fā)布/訂閱事件總線蔬将。主要功能是替代Intent, Handler, BroadCast 在 Fragment爷速,Activity,Service霞怀,線程之間傳遞消息.優(yōu)點(diǎn)是開(kāi)銷小惫东,使用方便,可以很大程度上降低它們之間的耦合,使得我們的代碼更加簡(jiǎn)潔毙石,耦合性更低廉沮,提升我們的代碼質(zhì)量。類似的庫(kù)還有 Otto ,今天就帶大家一起研讀 EventBus 的源碼.
3)Android內(nèi)存優(yōu)化雜談
Android內(nèi)存優(yōu)化是我們性能優(yōu)化工作中比較重要的一環(huán)徐矩,這里其實(shí)主要包括兩方面的工作:
- 優(yōu)化RAM滞时,即降低運(yùn)行時(shí)內(nèi)存。這里的目的是防止程序發(fā)生OOM異常丧蘸,以及降低程序由于內(nèi)存過(guò)大被LMK機(jī)制殺死的概率漂洋。另一方面遥皂,不合理的內(nèi)存使用會(huì)使GC大大增多,從而導(dǎo)致程序變卡刽漂。
- 優(yōu)化ROM演训,即降低程序占ROM的體積。這里主要是為了降低程序占用的空間贝咙,防止由于ROM空間不足導(dǎo)致程序無(wú)法安裝样悟。
4)React-native Android 熱更新
繼上次React-native Android 初次踩坑之旅的分享之后,這次分享的內(nèi)容是React-native Android 熱更新實(shí)現(xiàn)庭猩。本文目錄:
- 網(wǎng)上已知方案
- 分析與發(fā)現(xiàn)
- 新的熱更新方案
5)面試時(shí)窟她,問(wèn)哪些問(wèn)題能試出一個(gè)Android應(yīng)用開(kāi)發(fā)者真正的水平?
一般面試時(shí)間短則30分鐘蔼水,多則1個(gè)小時(shí)震糖,這么點(diǎn)時(shí)間要全面考察一個(gè)人難度很大,需要一些技巧趴腋,這里我不局限于回答題主的問(wèn)題吊说,而是分享一下我個(gè)人關(guān)于如何做好Android技術(shù)面試的一些經(jīng)驗(yàn)。
6)React Native for Android 熱部署圖片解決方案
熱部署時(shí)优炬,我們期望升級(jí)包中包含js代碼與圖片資源颁井。bundle的熱部署網(wǎng)上已經(jīng)有兩種方案了,一種是用反射蠢护,一種是利用RN自帶函數(shù)雅宾,將bundle初始化時(shí)直接放到指定目錄下,之后通過(guò)替換bundle文件實(shí)現(xiàn)代碼熱部署葵硕。我們希望圖片也可以實(shí)現(xiàn)熱部署眉抬,下面是一個(gè)比較簡(jiǎn)單的解決方案。
iOS開(kāi)發(fā)
1)漫談iOS程序的證書和簽名機(jī)制
接觸iOS開(kāi)發(fā)半年贬芥,曾經(jīng)也被這個(gè)主題坑的摸不著頭腦吐辙,也在淘寶上買過(guò)企業(yè)證書簽名這些服務(wù),有大神都做了一個(gè)全自動(dòng)的發(fā)布打包(不過(guò)此大神現(xiàn)在不賣企業(yè)證書了)蘸劈,甚是羨慕和崇拜昏苏。于是,花了一點(diǎn)時(shí)間去研究了一下iOS這套證書和簽名機(jī)制威沫,并撰文分享給需要的朋友贤惯。
2)iOS開(kāi)發(fā)-KVO的奧秘
在iOS開(kāi)發(fā)中,蘋果提供了許多機(jī)制給我們進(jìn)行回調(diào)棒掠。KVO(key-value-observing)是一種十分有趣的回調(diào)機(jī)制孵构,在某個(gè)對(duì)象注冊(cè)監(jiān)聽(tīng)者后,在被監(jiān)聽(tīng)的對(duì)象發(fā)生改變時(shí)烟很,對(duì)象會(huì)發(fā)送一個(gè)通知給監(jiān)聽(tīng)者颈墅,以便監(jiān)聽(tīng)者執(zhí)行回調(diào)操作蜡镶。最常見(jiàn)的KVO運(yùn)用是監(jiān)聽(tīng)scrollView的contentOffset屬性,來(lái)完成用戶滾動(dòng)時(shí)動(dòng)態(tài)改變某些控件的屬性實(shí)現(xiàn)效果恤筛,包括漸變導(dǎo)航欄官还、下拉刷新控件等效果。
3)Objective-C 自動(dòng)生成分類屬性方法
分類毒坛,在 iOS 開(kāi)發(fā)中望伦,是常常需要用到的。在分類里添加屬性也是常有的事煎殷,但分類中無(wú)法添加實(shí)例變量屯伞,編譯器也無(wú)法為提供分類中屬性的 getter 和 setter 方法了。一般而言豪直,需要手動(dòng)來(lái)實(shí)現(xiàn)這兩個(gè)方法劣摇,如果只是用來(lái)存儲(chǔ)變量的話,關(guān)聯(lián)對(duì)象很容易做到這一點(diǎn)顶伞。
4)Auto Layout的最佳實(shí)踐
Auto Layout是個(gè)很棒的工具饵撑,作為開(kāi)發(fā)者,它可以讓我們保持神志清醒唆貌,還能讓我們這些懶人們?cè)谠O(shè)置frame的時(shí)候遠(yuǎn)離“神奇數(shù)字”。
但是任何技術(shù)都不是完美無(wú)缺的垢乙,我必須得說(shuō)我花了太多的時(shí)間來(lái)debug那些缺失的約束條件锨咙,或者對(duì)于一些藏在層級(jí)結(jié)構(gòu)深處的視圖,添加一個(gè)沖突的約束條件就會(huì)把整個(gè)布局毀掉追逮,當(dāng)這些事情發(fā)生的時(shí)候簡(jiǎn)直是天崩地裂酪刀!
5)Swift 2 throws 全解析 - 從原理到實(shí)踐
本文從 Swift 2 中新加入的 throws 關(guān)鍵字的用法入手,通過(guò)在 SIL 和匯編層面的分析钮孵,深入剖析了 Swift 中異常機(jī)制這一新特性的背后機(jī)理骂倘。在此基礎(chǔ)上,本文進(jìn)一步對(duì)異常處理相關(guān)的 ErrorType 接口進(jìn)行了一些研究巴席。結(jié)合 Swift 2 中錯(cuò)誤處理方式的特點(diǎn)历涝,作者對(duì) throws 這一關(guān)鍵字在實(shí)際使用時(shí)的場(chǎng)景和適用范圍進(jìn)行了示例和說(shuō)明,并給出了一些建議漾唉。
技術(shù)縱橫
1)我眼里的架構(gòu)師
幾年前荧库,我對(duì)架構(gòu)師的印象,停留在:畫漂亮的設(shè)計(jì)圖赵刑,研究高性能分衫,技術(shù)攻關(guān)一把手。反正就是各種技術(shù)高手的標(biāo)簽都可以貼上去般此。最近兩三年蚪战,和自己做的事情牵现、職責(zé)多少有一點(diǎn)點(diǎn)關(guān)系,思路發(fā)生了一些變化邀桑,總結(jié)下來(lái)瞎疼,我覺(jué)得架構(gòu)師的關(guān)注點(diǎn)應(yīng)該是:
- 架構(gòu)團(tuán)隊(duì)
- 架構(gòu)技術(shù)
- 架構(gòu)流程規(guī)范
- 架構(gòu)產(chǎn)品
- 架構(gòu)客戶
2)作為一個(gè)程序員,進(jìn)步完全取決于自己
我做程序員已經(jīng)32年了概漱,而且我一直努力讓自己學(xué)習(xí)各種技術(shù)來(lái)保持進(jìn)步丑慎。我知道很多像我這個(gè)年紀(jì)的人自從拿到計(jì)算機(jī)學(xué)士學(xué)位以后就再也沒(méi)有學(xué)習(xí)過(guò)任何新知識(shí),因此他們最終會(huì)被淘汰瓤摧。我花了6年的時(shí)間學(xué)習(xí)化學(xué)竿裂,但是一旦當(dāng)我成為一名程序員,我發(fā)現(xiàn)我需要了解在我工作之外發(fā)生了些什么照弥,而且我有不斷學(xué)習(xí)的欲望并一直在嘗試各種各樣的編程腻异。
3)手機(jī)淘寶 521 性能優(yōu)化項(xiàng)目揭秘
為了讓用戶更順暢更方便地實(shí)現(xiàn)這一切,做到“如絲般順滑”这揣,雙十一前夕手機(jī)淘寶成立了“521”(我愛(ài)你)性能優(yōu)化項(xiàng)目悔常,在日常優(yōu)化基礎(chǔ)之上進(jìn)行三個(gè)方面的專項(xiàng)優(yōu)化攻關(guān),分別是1)H5頁(yè)面的一秒法則给赞;2)啟動(dòng)時(shí)間和頁(yè)面幀率提升20%机打;3)Android內(nèi)存占用降低50%。優(yōu)化過(guò)程中遇到的困難片迅,思考后找尋的方案残邀,實(shí)施后提取的經(jīng)驗(yàn)都會(huì)在下面詳細(xì)地介紹給讀者。
4)為什么有些大公司技術(shù)弱爆了柑蛇?
今年年初芥挣,到一家互聯(lián)網(wǎng)公司實(shí)習(xí),該公司是國(guó)內(nèi)行業(yè)龍頭耻台。不過(guò)技術(shù)和管理方面空免,卻弱爆了。那里的程序員盆耽,每天都在看郵件蹋砚,查問(wèn)題工單。這些問(wèn)題征字,多半是他們?cè)O(shè)計(jì)不當(dāng)都弹,造成的。
5)實(shí)際經(jīng)歷告訴你匙姜,寫一本技術(shù)書能賺多少錢
我的書出版后畅厢,經(jīng)常有朋友問(wèn)我賺了多少錢。我有時(shí)說(shuō)沒(méi)多少錢氮昧,有時(shí)說(shuō)按付出回報(bào)比來(lái)看那點(diǎn)版稅對(duì)不住付出的辛苦框杜。有的朋友微微一笑很傾城浦楣,表示理解;有的朋友笑著撇撇嘴咪辱,那意思是我沒(méi)有實(shí)話實(shí)說(shuō)振劳。
歡迎關(guān)注我們團(tuán)隊(duì)的技術(shù)公眾號(hào)