Android Weekly Notes Issue #238

Android Weekly Issue #238

January 1st, 2017
Android Weekly Issue #238
本期內(nèi)容包括: Firebase發(fā)送Notification; RecyclerView的預(yù)取; 后臺工作的實(shí)現(xiàn)方式討論; RecyclerView分組數(shù)據(jù); 跨平臺應(yīng)用工具Flutter介紹; Gradle依賴管理;
寫測試的一些注意事項(xiàng); Android Things應(yīng)用搭建及一些思考; 如何搭建CI等.

ARTICLES & TUTORIALS

Mastering Firebase Notifications

用Firebase發(fā)通知:

  • Console Notifications.
  • 使用命令行, 發(fā)送curl命令.
  • FirebaseMessagingService在應(yīng)用前臺的時候處理通知.
  • 如果應(yīng)用前后臺的時候都需要處理, 則發(fā)送data而不是notification.
    官方文檔Firebase cloud-messaging.

RecyclerView Prefetch

作者研究了RecyclerView的渲染時間, 發(fā)現(xiàn)在滾動的時候很多的時間會花在新item的創(chuàng)建和bind上, 這樣會推遲UI線程的其他工作, 還有RenderThread的后續(xù)工作, 如果超出了frame boundary, 就有可能會造成明顯的卡頓.

而同時前一幀, UI線程可能處于空閑狀態(tài).

那么我們有沒有可能以一種預(yù)取的方式, 把即將出現(xiàn)的View在提前的空閑階段準(zhǔn)備好呢?

pre-fetch的優(yōu)化已經(jīng)在Support Library v25加入, v25.1.0有進(jìn)一步的加強(qiáng). 如果你沒有自定義LayoutManager, 也沒有嵌套RecyclerView, 那么你升級support library之后就自動獲得了這項(xiàng)優(yōu)化. 其他兩種情況你還需要調(diào)用一些方法.

你可以設(shè)置LayoutManager.setItemPrefetchEnabled()來對比開啟和關(guān)閉預(yù)取功能前后的不同. 性能測量用SystraceGPU profiling.

Things to consider before running background tasks

完成后臺任務(wù)的幾種方式和各自的優(yōu)缺點(diǎn)分析.

  • Thread.
  • AsyncTask.
  • Service.
  • IntentService.
  • Loader.
  • JobService and JobScheduler. GCM Network Manager.
  • RxJava.

Android RecyclerView - Grouping Data

作者展示了如何將RecyclerView中的數(shù)據(jù)分組展示, 在他的例子中是按照時間分組, 每一組開始是該組的時間占據(jù)一行.

其實(shí)主要是前期的數(shù)據(jù)處理, 首先創(chuàng)建一個HashMap, 分組依據(jù)作為key, 符合該依據(jù)的數(shù)據(jù)作為值存在對應(yīng)key的value list里; 然后給日期和數(shù)據(jù)創(chuàng)建一個共同的基類, 把HashMap再重新展開成一個List, 里面穿插好數(shù)據(jù). 最后用RecyclerView按照數(shù)據(jù)類型不同顯示兩種布局.

Flutter Intro

Flutter是一個Google推出的新工具, 用來構(gòu)建跨平臺的應(yīng)用.

本文介紹了如何setup和創(chuàng)建一個Hello World.

How to add Gradle dependencies using ‘foreach’

一種管理依賴的方式, 把所有的依賴定義在同一個文件的不同分組里, 然后在每個module各自添加自己的分組即可.

Best practices to improve app engagement

如何提高app的用戶參與度.

The Do’s and Don’ts of Writing Test cases in Android

作者分享了在寫測試的時候需要注意的幾點(diǎn):

  • 首先明確我們要測試的是什么, 預(yù)先條件是否滿足, 如果是因?yàn)榍爸脳l件不滿足, 那么并不是我們的測試本身失敗了.
  • 每個測試都是獨(dú)立完成的, 測試的執(zhí)行順序不應(yīng)該影響結(jié)果.
  • 在測試中不要寫條件語句. 條件語句是在實(shí)際代碼中的, 每一個條件都應(yīng)該對應(yīng)一個單獨(dú)的測試case.
  • 測試應(yīng)該不受外部因素影響, 比如server和網(wǎng)絡(luò). 因?yàn)槿绻驗(yàn)檫@類原因測試失敗了, 并不代表我們的代碼有bug.

Making Rainbow HAT Work with the Android Things

一個Android Things應(yīng)用.

Christmas Voice – Part 2

一個小應(yīng)用, 錄音, 做轉(zhuǎn)換并播放.

Will Android do for the IoT what it did for mobile?

關(guān)于Android Things的一些看法.

Set up a CI server for Android dev

如何搭建Android項(xiàng)目的CI, (Ubuntu + Jenkins + SonarQube).

DESIGN

Material: Growth & communications

如何進(jìn)行用戶引導(dǎo), feature發(fā)現(xiàn)和手勢教育.

LIBRARIES & CODE

PanoramaImageView

一個ImageView, 在設(shè)備轉(zhuǎn)動的時候可以自動滾動內(nèi)容.

TextDecorator

可以給文字分段加上各種裝飾, 下劃線, 點(diǎn)擊事件等.

Delightful-SQLBrite

一個示例應(yīng)用, 展示SQLDelightSQLBrite結(jié)合使用.

mainframer

一個遠(yuǎn)程build的腳本.

material-about-library

創(chuàng)建一個Material風(fēng)格about頁面的庫.

android-snowfall

下雪View.

Android-ExpandIcon

展開/合上的上下箭頭icon, 支持點(diǎn)擊和手勢滑動切換.

RxAnimations

Rx形式的動畫庫.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夸盟,一起剝皮案震驚了整個濱河市嚷掠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骇窍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異南吮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)笋籽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蹦漠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人车海,你說我怎么就攤上這事笛园“鳎” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵研铆,是天一觀的道長埋同。 經(jīng)常有香客問我,道長棵红,這世上最難降的妖魔是什么凶赁? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮逆甜,結(jié)果婚禮上虱肄,老公的妹妹穿的比我還像新娘。我一直安慰自己交煞,他們只是感情好咏窿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著素征,像睡著了一般集嵌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上御毅,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天根欧,我揣著相機(jī)與錄音,去河邊找鬼亚享。 笑死咽块,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的欺税。 我是一名探鬼主播侈沪,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晚凿!你這毒婦竟也來了亭罪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤歼秽,失蹤者是張志新(化名)和其女友劉穎应役,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燥筷,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箩祥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肆氓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袍祖。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谢揪,靈堂內(nèi)的尸體忽然破棺而出蕉陋,到底是詐尸還是另有隱情捐凭,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布凳鬓,位于F島的核電站茁肠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缩举。R本人自食惡果不足惜垦梆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚁孔。 院中可真熱鬧奶赔,春花似錦、人聲如沸杠氢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼻百。三九已至绞旅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間温艇,已是汗流浹背因悲。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勺爱,地道東北人晃琳。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像琐鲁,于是被迫代替她去往敵國和親卫旱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

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