平安科技移動開發二隊技術周報(第二十四期)
業界新聞
1)Android“棉花糖”正式發布
Google宣布在其Nexus設備上發布代號為"棉花糖"的Android 6.0系統,預計該版本操作系統將在更多設備上應用。
2)從網易郵箱被爆看企業的網絡安全
昨天下午(10月19日)網易”亮“了,烏云報告網易郵箱存在漏洞,涉及數億網易郵箱賬號和密碼(MD5加密)的泄露。
3)App使用有米SDK遭下架事件分析:使用私有API就代表隱私侵犯?
10月19日晚首先由國外媒體報道的一起安全事件——研究機構SourceDNA發現眾多使用有米SDK的App在收集用戶個人數據,因而遭蘋果下架。今天這一事件也得到國內媒體的廣泛報道,許多用戶不明覺厲。
Android開發
1)天貓技術團隊使用React Native代替H5實現產品化落地
React-Native 是Android端實現實現動態部署的另一種思路,繞過dexLoad【一些現有的Android插件框架】,同時實現了前端人員和客戶端人員資源的共享,總之是非常值得期待和嘗試。
2)Android GC 那點事
想寫一篇關于Android GC的想法來源于追查一個魅族手機圖片滑動卡頓問題,由于不斷的GC導致的丟幀卡頓的問題讓我們想了很多方案去解決,所以就打算詳細的看看內存分配和GC的原理,為什么會不斷的GC, GC ALLOC和GC COCURRENT有什么區別,能不能想辦法擴大堆內存減少GC的頻次等等。
3)Kotlin: Java 6 廢土中的一線希望
去年,Java8 發布了,增加了很多新特性和提升,比如lambda,stream。Java 9 的標準也已經在制定了。但是超過半數的 Android 設備仍在運行著 Java 6,我們要怎么才能用上新的現代化語言呢?
在 DroidCon NYC 2015 的這個分享里,Michael Pardo 介紹了 Kotlin: 由 JetBrains 開發出的 JVM 靜態語言。Kotlin 由很多新的特性,比如 lambdas,類擴展(class extensions),和 null 安全(null-safty)。它簡潔明了,同時由很高的互操作性(interoperable)。
4)開源選型之 Android 三大圖片緩存原理、特性對比
本文主要對比分析了三款主流圖片緩存函數庫的,它們分別是Universal ImageLoader,Picasso和Glide。開發者在做技術選型時可以zuo w
5)Android動態加載技術三個關鍵問題詳解
動態加載技術(也叫插件化技術)在技術驅動型的公司中扮演著相當重要的角色,當項目越來越龐大的時候,需要通過插件化來減輕應用的內存和CPU占用,還可以實現熱插拔,即在不發布新版本的情況下更新某些模塊。動態加載是一項很復雜的技術,這里主要介紹動態加載技術中的三個基礎性問題。
iOS開發
1)iOS高性能圖片架構與設計
一個優秀的圖片組件應該具有這些特性:集并發控制,請求合并,下載,緩存,緩存自動淘汰,圖片處理,動畫的從數據源到圖片顯示的一站式解決方案。做到圖片加載展示如絲般順滑。支持autolayout和代碼布局,提供了對網絡圖片、系統相冊圖片、本地圖片的加載與現實的支持。經過實際項目檢驗,性能優秀、運行穩定。高度可定制性:可以和現有的任何下載組件和圖片處理組件協同工作。
2)Realm 核心數據庫引擎探秘
Realm 大部分代碼都是開源的,但是其強大功能取決于隱藏在平臺內部的一個核心數據庫引擎,這個引擎完全由 C++ 編寫而成。在這次講座當中,來自 Realm 的工程師 JP Simard 將帶領大家一探 Realm 的核心!JP 將闡述 Realm 設計背后的準則,包括 Realm 是如何保證快速高效運行的,以及為什么我們要自己撰寫數據庫引擎,而不是像包括 Core Data 在內的移動端數據庫解決方案那樣,采用 SQLite 作為內部核心。
3)iOS 應用架構談 動態部署方案
這里討論的動態部署方案,就是指通過不發版的方式,將新的內容、新的業務流程部署進已發布的App。因為蘋果的審核周期比較長,而且蘋果的限制比較多,業界在這里也沒有特別多的手段來達到動態部署方案的目的。這篇文章主要的目的就是給大家列舉一下目前業界做動態部署的手段,以及其對應的優缺點。然后給出一套我比較傾向于使用的方案。
4)AFNetworking 3.0遷移指南
AFNetworking是一款在OS X和iOS下都令人喜愛的網絡庫。為了迎合iOS新版本的升級, AFNetworking在3.0版本中刪除了基于 NSURLConnection API的所有支持。如果你的項目以前使用過這些API,建議您立即升級到基于 NSURLSession 的API的AFNetworking的版本。本指南將引導您完成這個過程。
5)JSPatch 實現原理詳解
JSPatch 是一個 iOS 動態更新框架,只需在項目中引入極小的引擎,就可以使用就可以使用 JavaScript 調用任何 Objective-C 原生接口,獲得腳本語言的優勢:為項目動態添加模塊,或替換項目原生代碼動態修復 bug,目前在 github 上開源。
微信 iOS 客戶端使用了 JSPatch,本篇文章詳細闡述 JSPatch 的實現原理和一些細節,以幫助使用者更好地了解和使用 JSPatch。
技術縱橫
1)構建混合移動應用的流行框架優缺點對比
僅僅幾年前,使用 JavaScript 開發移動應用程序還只是古怪的實驗,無需使用 Java 和 Object C 就可創建 iOS 和 Android 應用程序的想法似乎吸引著很多 web 開發者。現在出現了大量的框架,使我們只使用 web 技術就可以創建移動應用,并且用戶體驗和以往用原生語言開發的應用差不多。
2)RESTFUL API 安全設計指南
REST的全稱是REpresentational State Transfer,表示表述性無狀態傳輸,無需session,所以每次請求都得帶上身份認證信息。rest是基于http協議的,也是無狀態的。只是一種架構方式,所以它的安全特性都需我們自己實現,沒有現成的。建議所有的請求都通過https協議發送。
3)Web開發的未來:React、Falcor和ES6
Widen是一家數字資產管理解決方案提供商。目前,其技術棧還非常傳統,包括服務器端的Java、瀏覽器端的AngularJS、提供REST API支持的Jersey以及jQuery、 Underscore、lodash、jQuery UI和Bootstrap等各種庫。近日,該公司的首席開發人員Ray Nicholus在一篇文章中提出了一個面向未來的Web開發技術棧,用于取代現有的工具。
4)微軟在Edge預覽版中支持Async/Await特性
即將到來的ES 2016中有一個async/await特性,微軟瀏覽器Edge目前已支持這一特性,在Edge最新的預覽版中仍需開啟實驗性標志位才能進一步體驗,但是想要在未來被廣泛接受,走出這一步至關重要。瀏覽器上可能不放心使用ES6特性,但在react-native中可以盡情的使用。
5)你應該知道的 RPC 原理
大型互聯網公司的系統都由成千上萬大大小小的服務組成,各服務部署在不同的機器上,由不同的團隊負責。這時就會遇到兩個問題:1)要搭建一個新服務,免不了需要依賴他人的服務,而現在他人的服務都在遠端,怎么調用?2)其它團隊要使用我們的服務,我們的服務該怎么發布以便他人調用?下文我們將對這兩個問題展開探討。
開源函數庫與工具
1)DroidScripts
Android開發中一些有用的腳本。
2)Android 6.0源碼
Android 6.0源碼網盤地址。
3)QCON 上海 2015演講PPT
剛剛結束的QCON嘉賓演講的PPT,大家各取所需。
4)React 入門教程
React一個不錯的中文入門教程,尚在更新中。
歡迎關注我們團隊的技術公眾號
