## 教程
1. [Android FrameWork 基于libGDX實現高性能動畫特效(粒子特效/煙花效果篇)](http://alexq.farbox.com/post/2015-12-11)
工作原因最早想做一個煙花綻放的特效,最初方案是播放Gif或者自己繪制幀動畫,但是這種方案的弊端在于動畫效果死板,播放元素無法更換,而且資源對于空間的占用恐怕也是日后的一大隱患。之后便考慮到粒子效果代碼來實現,粒子效果比較容易找到的是一些java層實現的案例或框架,但對于計算密度如此之大的粒子效果來說,效果慘不忍睹,差一些的機器(CPU性能)上面那特效還不如沒有。
2. [Android M DeepLinks AppLinks 詳解](http://fanhongwei.github.io/blog/2015/12/17/app-links-deep-links/)
在Android M中Google做了很多優化性能、提升用戶體驗的事情,比如說:App權限、Google Now on Tap、Doze省電系統、AppLinks、DeepLinks等。最近工作接觸到了AppLinks、DeepLinks這兩個提升用戶體驗的優化,于是將自己對這兩個優化的分析理解記錄了下來。
3. [性能優化模式](http://tech.meituan.com/performance_tuning_pattern.html)
性能優化涉及面很廣。一般而言,性能優化指降低響應時間和提高系統吞吐量兩個方面,但在流量高峰時候,性能問題往往會表現為服務可用性下降,所以性能優化也可以包括提高服務可用性。在某些情況下,降低響應時間、提高系統吞吐量和提高服務可用性三者相互矛盾,不可兼得。例如:增加緩存可以降低平均響應時間,但是處理線程數量會因為緩存過大而有所限制,從而降低系統吞吐量;為了提高服務可用性,對異常請求重復調用是一個常用的做法,但是這會提高響應時間并降低系統吞吐量。
4. [InstaMaterial:正確處理RecyclerView動畫](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1217/3782.html)
我們生活在一個app不僅要能用還要流暢和好看的年代。不同與幾年前,我們對ListView adapter唯一要做的事情就是調用notifyDataSetChanged(),屏幕一閃,顯示新的數據,完事。今天,在RenderThread的時代,MaterialDesign動畫以及過渡效果的app應該完全展示出所發生的事情。用戶應該看到什么時候它的集合發生了改變或者什么時候新的元素出現(或者被移除)。
5. [【譯】Android應用架構](http://www.jianshu.com/p/8ca27934c6e6)
Android開發生態圈的節奏非常之快。每周都會有新的工具誕生,類庫的更新,博客的發表以及技術探討。如果你外出度假一個月,當你回來的時候可能已經發布了新版本的Support Library或者Play Services。我與Ribot Team一起做Android應用已經超過三年了。這段時間,我們所構建的Android應用架構和技術也在不斷地演變。本文將向您闡述我們的經驗,錯誤以及架構變化背后的原因。
6. [Android內存優化雜談](http://t.cn/R4AB60O)
Android內存優化是我們性能優化工作中比較重要的一環,這里其實主要包括兩方面的工作: 優化RAM,即降低運行時內存。這里的目的是防止程序發生OOM異常,以及降低程序由于內存過大被LMK機制殺死的概率。另一方面,不合理的內存使用會使GC大大增多,從而導致程序變卡。優化ROM,即降低程序占ROM的體積。這里主要是為了降低程序占用的空間,防止由于ROM空間不足導致程序無法安裝。
7. [Java多線程編程模式實戰指南之Promise模式](http://www.infoq.com/cn/articles/design-patterns-promise)
Promise模式是一種異步編程模式 。它使得我們可以先開始一個任務的執行,并得到一個用于獲取該任務執行結果的憑據對象,而不必等待該任務執行完畢就可以繼續執行其他操作。等到我們需要該任務的執行結果時,再調用憑據對象的相關方法來獲取。這樣就避免了不必要的等待,增加了系統的并發性。
8. [15個必知的Android開發者選項](http://www.jianshu.com/p/07b551ee260b)
Android開發者選項,看起來很簡單的事情,其實很多同學對它了解得不夠,Google用心良苦得為我們設計了這么多小開關都是有它的作用的,今天也花了點時間,過了一遍全部的30多個開關,從中整理出15個對日常Android開發比較有幫助的選項。
9. [EventBus源碼研讀(上)](http://kymjs.com/code/2015/12/12/01/)
EventBus 是一款針對Android優化的發布/訂閱事件總線。主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,使用方便,可以很大程度上降低它們之間的耦合,使得我們的代碼更加簡潔,耦合性更低,提升我們的代碼質量。
10. [EventBus源碼研讀(中)](http://kymjs.com/code/2015/12/13/01/)
EventBus 是一款針對Android優化的發布/訂閱事件總線。主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,使用方便,可以很大程度上降低它們之間的耦合,使得我們的代碼更加簡潔,耦合性更低,提升我們的代碼質量。
11. [EventBus源碼研讀(下)](http://kymjs.com/code/2015/12/16/01/)
EventBus 是一款針對Android優化的發布/訂閱事件總線。主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,使用方便,可以很大程度上降低它們之間的耦合,使得我們的代碼更加簡潔,耦合性更低,提升我們的代碼質量。 類似的庫還有 Otto ,今天就帶大家一起研讀 EventBus 的源碼.
12. [H5 緩存機制淺析 移動端 Web 加載性能優化](http://t.cn/R4yFURu)
H5,即 HTML5,是新一代的 HTML 標準,加入很多新的特性。離線存儲(也可稱為緩存機制)是其中一個非常重要的特性。H5 引入的離線存儲,這意味著 web 應用可進行緩存,并可在沒有因特網連接時進行訪問。H5 應用程序緩存為應用帶來三個優勢:離線瀏覽 用戶可在應用離線時使用它們,速度 已緩存資源加載得更快,減少服務器負載 瀏覽器將只從服務器下載更新過或更改過的資源。
13. [Android性能優化之如何避免Overdraw](http://www.jianshu.com/p/145fc61011cd)
什么是Overdraw?Overdraw就是過度繪制,是指在一幀的時間內(16.67ms)像素被繪制了多次,理論上一個像素每次只繪制一次是最優的,但是由于重疊的布局導致一些像素會被多次繪制,而每次繪制都會對應到CPU的一組繪圖命令和GPU的一些操作,當這個操作耗時超過16.67ms時,就會出現掉幀現象,也就是我們所說的卡頓,所以對重疊不可見元素的重復繪制會產生額外的開銷,需要盡量減少Overdraw的發生。
14. [基于Travis CI搭建Android自動打包發布工作流](http://avnpc.com/pages/android-auto-deploy-workflow-on-travis-ci)
最近付費購買了Travis CI,Travis CI的收費模式很有意思,不是按項目或者用戶,而是按工作進程收費,比如初級版本是$129/月,總共提供2個工作進程。在項目不多的情況下,除了用于跑單元測試外,不免想利用的更充分一些,因此抽空搭建了一套基于Travis CI的Android自動發布工作流。
15. [Android 模擬器2.0初探](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1218/3786.html)
我相信每一個安卓開發者都會同意 2015年安卓開發者大會上宣布的最大事情就是 Android Studio 2.0和安卓模擬器2.0,其中安卓模擬器2.0宣稱運行和部署應用的速度比第一個版本快得超乎尋常。幾個小時前,安卓開發者團隊剛剛把這個最新的模擬器公之于眾。讓我們向你展示一下這個安卓模擬器上至今為止最大的更新,你一定不希望錯過。
##開源庫&項目
1. [Fresco-Source-Analysis](https://github.com/desmond1121/Fresco-Source-Analysis)
中文的Fresco源碼解讀。
2. [Android-Ptr-Comparison](https://github.com/desmond1121/Android-Ptr-Comparison)
百萬哥說是史上最強的下拉刷新類庫分析,沒有之一。
3. [StarWars.Android](https://github.com/Yalantis/StarWars.Android)
一個可以在轉場時顯示 View 粉碎動畫效果的控件。
4. [AnimTextView](https://github.com/z56402344/AnimTextView)
顯示文本時帶有動畫效果的 TextView。
5. [WaveLoadingView](https://github.com/tangqi92/WaveLoadingView)
幫你輕松實現波浪式加載,提供高度定制(各種姿勢),總有一種玩法適合你。
6. [Knife](https://github.com/mthli/Knife)
一個富文本編輯器控件。
7. [LondonEyeLayoutManager](https://github.com/Danylo2006/LondonEyeLayoutManager)
一個可以實現摩天輪轉動效果的 LayoutManager。
8. [Tracklytics](https://github.com/orhanobut/tracklytics)
一個追蹤事件和崩潰的分析工具聚合器。
9. [FlycoLabelView](https://github.com/H07000223/FlycoLabelView)
一個簡單的 Android 標簽控件。
10. [GiftRainView](https://github.com/xujinyang/GiftRainView)
一個用來下金幣,下紅包的View。
11. [FocusChangeAnimation](https://github.com/taoliuh/FocusChangeAnimation)
選中框切換動畫,適用于電視。
12. [Timeline-View](https://github.com/vipulasri/Timeline-View)
自定義時間線控件。
13. [Auro](https://github.com/architjn/Auro)?
一個音樂播放器。
##工具
1. [git-appraise](https://github.com/google/git-appraise)
適用于 Git 倉庫的分布式代碼審查系統。
2. [android-fat-aar](https://github.com/adwiv/android-fat-aar)
一個可以將其他依賴合并或者嵌入生成的 aar 文件里的 Gradle 腳本。
##設計
1. [為什么Material Design沒在國產App中流行起來?](http://wkee.net/post/material-design-not-popular-in-china-app.html)
兩年前,Larry Page 就任谷歌 CEO 后下的第一個命令就是將谷歌所有的產品重新設計一遍。于是谷歌搜索首席設計師 Jon Wiley 花了兩個月時間將谷歌系列產品改頭換面。從那時起,谷歌開始重視設計,[Material Design](https://www.google.com/design/spec/material-design/introduction.html#introduction-principles)?的概念自此呼之欲出。
2. [深度解析:為什么Sketch和Photoshop輸出的圖片色彩有差異](http://t.cn/R4A6vcN)
之前有用戶提過類似的問題,他發現在photoshop中圖片的色彩和sketch中圖片的色彩不一致。下面看看靜電翻譯的一篇bohemiancoding團隊發表的博文,詳細闡述了這種現象產生的原因和解決辦法。不要排斥這篇深度技術文章, 我們需要知道原理,才能工作的更好。
##技術之外
1. [涅槃重生:我的技術轉管理之路](http://t.cn/R4yptew)
我從高中就開始接觸計算機并開始編程,我非常喜歡編程,我一直以為我會寫一輩子代碼。我從畢業就一直做技術,開始一年是做 Java 語言的服務器開發,開發過網易郵箱和微博的后臺,后來轉而做 iOS 開發。因為喜歡,我幾乎把我所有的非工作時間也投入到技術中去。當然,并非是把工作帶回家,而是專研技術或者從事技術寫作。
- 前言
- Android開發技術周報 Issue#90
- Android開發技術周報 Issue#89
- Android開發技術周報 Issue#88
- Android開發技術周報 Issue#87
- Android開發技術周報 Issue#86
- Android開發技術周報 Issue#85
- Android開發技術周報 Issue#84
- Android開發技術周報 Issue#83
- Android開發技術周報 Issue#82
- Android開發技術周報 Issue#81
- Android開發技術周報 Issue#80
- Android開發技術周報 Issue#79
- Android開發技術周報 Issue#78
- Android開發技術周報 Issue#77
- Android開發技術周報 Issue#76
- Android開發技術周報 Issue#75
- Android開發技術周報 Issue#74
- Android開發技術周報 Issue#73
- Android開發技術周報 Issue#72
- Android開發技術周報 Issue#71
- Android開發技術周報 Issue#70
- Android開發技術周報 Issue#69
- Android開發技術周報 Issue#68
- Android開發技術周報 Issue#67
- Android開發技術周報 Issue#66
- Android開發技術周報 Issue#65
- Android開發技術周報 Issue#64
- Android開發技術周報 Issue#63
- Android開發技術周報 Issue#62
- Android開發技術周報 Issue#61
- Android開發技術周報 Issue#60
- Android開發技術周報 Issue#59
- Android開發技術周報 Issue#58
- Android開發技術周報 Issue#57
- Android開發技術周報 Issue#56
- Android開發技術周報 Issue#55
- Android開發技術周報 Issue#54
- Android開發技術周報 Issue#53
- Android開發技術周報 Issue#52
- Android開發技術周報 Issue#51
- Android開發技術周報 Issue#50
- Android開發技術周報 Issue#49
- Android開發技術周報 Issue#48
- Android開發技術周報 Issue#47
- Android開發技術周報 Issue#46
- Android開發技術周報 Issue#45
- Android開發技術周報 Issue#44
- Android開發技術周報 Issue#43
- Android開發技術周報 Issue#42
- Android開發技術周報 Issue#41
- Android開發技術周報 Issue#40