Android Weekly Notes Issue #230

Android Weekly Notes Issue #230

November 6th, 2016
Android Weekly Issue #230.

Android Weekly筆記, 本期內(nèi)容包括: Mockito的擴(kuò)展; ConstraintLayout的鏈?zhǔn)郊s束; Kotlin的Async-Await; RxJava2.0; 屏幕旋轉(zhuǎn)導(dǎo)致的Activity重建; Throwable類的設(shè)計(jì)問題; Espresso測(cè)試中如何等待異步請(qǐng)求返回; Kotlin的擴(kuò)展和運(yùn)算符重載; Android KeyStore實(shí)現(xiàn)用戶驗(yàn)證.

代碼部分有proguard的庫(kù), mvp的庫(kù)和WifiManager, ConfigurationManager的包裝庫(kù).

ARTICLES & TUTORIALS

Extending Mockito

這篇文章講了如何擴(kuò)展Mockito, 簡(jiǎn)化對(duì)參數(shù)的驗(yàn)證.

首先作者舉了之前驗(yàn)證參數(shù)的例子, 用的是ArgumentCaptor, 寫起來(lái)很麻煩, 用了自定義的matcher之后簡(jiǎn)化了很多.

ConstraintLayout Chains – Part 2

上一篇文章講過(guò)在ConstraintLayout中如何創(chuàng)建對(duì)稱的鏈?zhǔn)郊s束, 本篇文章介紹chainStyle的不同設(shè)置和比較.

默認(rèn)的spread chain: 均勻分布;
inside spread chain: 邊緣元素頂邊, 中間均勻分布.

如果指定了權(quán)重, 將會(huì)按照權(quán)重布局. 那么spread chain和inside spread chain就沒有區(qū)別了.

packed chain: 默認(rèn)會(huì)把所有元素都放在一起放在中間, 可以指定bias來(lái)定義偏移基準(zhǔn), 默認(rèn)bias是0.5, bias設(shè)置為0.25的意思就是往左偏.

A glimpse of Async-Await on Android

Kotlin 1.1推出了coroutines, 這是一個(gè)讓計(jì)算可以在某個(gè)點(diǎn)暫停然后之后又恢復(fù)的功能, 例子是幾年前C#的Async-Await.

作者先舉例說(shuō)明了異步操作的幾種常見實(shí)現(xiàn), 最后結(jié)合自己的庫(kù)用Async-Await做了一個(gè)例子.

What's different in 2.0

RxJava2.0.0已經(jīng)發(fā)布了. 這是它的wiki page來(lái)介紹2.0有什么不同.

Activity Revival and the case of the Rotating Device

本篇文章講configuration變化(比如屏幕旋轉(zhuǎn))導(dǎo)致的Activity重建.

為什么configuration變化的時(shí)候要重建Activity呢? 因?yàn)橄到y(tǒng)想要盡力地做一些helpful的事情, 希望在這種時(shí)候能重新加載正確的資源.

怎么處理呢?

方法一: 讓系統(tǒng)自動(dòng)處理. 在屏幕旋轉(zhuǎn)時(shí), onSaveInstanceState()會(huì)在Activity銷毀前調(diào)用, 可以存儲(chǔ)一些狀態(tài), 之后重建的時(shí)候從bundle中拿出來(lái)恢復(fù).

方法二: 自己處理. 如果你想要獲取更多控制, 那么你可以在manifest中聲明configChanges類型, 然后在Activity中覆寫onConfigurationChanged()方法, 來(lái)自己做處理.

另外文章中還討論了網(wǎng)絡(luò)請(qǐng)求, 屏幕方向設(shè)置, retained fragment的使用等.

RxJava and Retrofit Throwing a Tantrum

作者討論了他們?cè)陧?xiàng)目中遇到的一個(gè)問題.
他們用RxJavaHooks.enableAssemblyTracking();來(lái)收集RxJava崩潰棧信息, 可以顯示出到底是哪一個(gè)Observable崩了.
使用這個(gè)工具以后發(fā)現(xiàn)了一個(gè)問題, 進(jìn)而研究了JDK的Throwable類.

原來(lái)cause不存在(this)和cause未知(null)是兩種不同的情況, 但是ThrowablegetCause()方法都會(huì)返回null.

Retrofitting Espresso

用Espresso做測(cè)試, 如何等待網(wǎng)絡(luò)請(qǐng)求結(jié)束再驗(yàn)證UI.

Composing functions in Kotlin with extensions and operators

結(jié)合Kotlin的extensions和operator overloading功能, 改善function, 讓代碼變得更優(yōu)雅.

Authentication sucks. Bad security too

一個(gè)例子, 說(shuō)明為什么老的驗(yàn)證方法用戶體驗(yàn)不好, 我們?nèi)绾卧谌匀豢紤]用戶安全的情況下進(jìn)行改善.

解決方案是用Android 6.0推出的Android Keystore.
作者展示了如何實(shí)現(xiàn)并提供了Demo.

Design

Eight don’ts for your Material Design app

Material Design app需要避免的8個(gè)點(diǎn).

LIBRARIES & CODE

Android-proguards

使用一行就可以加上所有流行庫(kù)的proguard.

Moxy

一個(gè)MVP的庫(kù).

WiseFy

包裝了Android的WifiManager和ConnectivityManager的一個(gè)庫(kù).

VIDEOS & PODCASTS

Droidcon NYC 2016
所有Droidcon NYC 2016的視頻資源.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末皿哨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纽谒,更是在濱河造成了極大的恐慌证膨,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鼓黔,死亡現(xiàn)場(chǎng)離奇詭異央勒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)澳化,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門崔步,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人缎谷,你說(shuō)我怎么就攤上這事井濒。” “怎么了列林?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵瑞你,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我希痴,道長(zhǎng)者甲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任润梯,我火速辦了婚禮过牙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纺铭。我一直安慰自己寇钉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布舶赔。 她就那樣靜靜地躺著扫倡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撵溃,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天疚鲤,我揣著相機(jī)與錄音,去河邊找鬼缘挑。 笑死集歇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的语淘。 我是一名探鬼主播诲宇,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼惶翻!你這毒婦竟也來(lái)了姑蓝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吕粗,失蹤者是張志新(化名)和其女友劉穎纺荧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颅筋,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宙暇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垃沦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片客给。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肢簿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜻拨,我是刑警寧澤池充,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站缎讼,受9級(jí)特大地震影響收夸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜血崭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一卧惜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夹纫,春花似錦咽瓷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至月匣,卻和暖如春钻洒,著一層夾襖步出監(jiān)牢的瞬間奋姿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工素标, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留称诗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓头遭,卻偏偏與公主長(zhǎng)得像寓免,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子任岸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評(píng)論 25 707
  • afinalAfinal是一個(gè)android的ioc再榄,orm框架 https://github.com/yangf...
    passiontim閱讀 15,434評(píng)論 2 45
  • 前言 人生苦多,快來(lái) Kotlin 享潜,快速學(xué)習(xí)Kotlin困鸥! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,211評(píng)論 9 118
  • 繼續(xù)讀葉嘉瑩《人間詞話七講》剑按,第三講到第六講疾就,歌詞之詞到詩(shī)化之詞的演變,飛卿艺蝴、端己猬腰、中正及后主四人的小詞對(duì)比,看看...
    七月紫蘇閱讀 163評(píng)論 0 0
  • 趕路的月光 遠(yuǎn)心 這些天猜敢,我找不到句子 找不到一條狗 看住你 看住你也沒什么意思 狗不能替我撫摸你的耳朵 親吻你鼻...
    遠(yuǎn)心篤行閱讀 467評(píng)論 0 0