### 教程
1. [ART虛擬機是如何內建支持MultiDex的?](http://androidx.top/?p=11)
項目的代碼量越來越大,引入的jar越來越多,由于Dalvik虛擬機作者當初對Method量的短視,最終造成了Dex方法數超標的悲劇。Google為此提供了MultiDex這一補丁方案。MultiDex分為兩部分,一部分是編譯時需要的IDE插件,它負責將單個的classes.dex拆分成多個dex文件;而另一部分則是編譯進classes.dex的運行時環境,它將classes2.dex, classes3.dex…在運行時加載進來,從而拼合成完整的字節碼。
2. [老司機教你 “飆” EventBus 3](http://t.cn/Rq8m2tG)
EventBus 對于 Android 開發老司機來說肯定不會陌生,它是一個基于觀察者模式的事件發布/訂閱框架,開發者可以通過極少的代碼去實現多個模塊之間的通信,而不需要以層層傳遞接口的形式去單獨構建通信橋梁。從而降低因多重回調導致的模塊間強耦合,同時避免產生大量內部類。它擁有使用方便,性能高,接入成本低和支持多線程的優點,實乃模塊解耦、代碼重構必備良藥。
3. [那些年我們用過的顯示性能指標](http://t.cn/Rq8mzWk)
從 Android 誕生的那一刻起,流暢度就為眾人所關注。一時之間,似乎所有人都在討論 Android 和 iOS 誰的流暢度更好。但是,毫不夸張的說,流暢度絕對是 Android 眾多性能維度中最為奇葩的一個。因為,為了刻畫這一性能維度,業界設計了各式各樣的指標來對其進行衡量。可以說弄清了這些指標我們就明白了什么是流暢度,可是這似乎并不太容易。
4. [Android存儲挖坑記](http://t.cn/RqQlAm7)
最近在搞Android存儲相關的業務,什么Internal/External/Primary/Secondary搞得我都看懵了,國內也沒什么好的文章系統的講這個,我就挖挖各類資料,整理一下。對于Internal Storage 與 External Storage,官方文檔上有這么一段話,描述得很詳細了,我翻譯了一段下來:所有的Android設備都有兩塊存儲區域:Internal Storage和External Storage。它們的名稱來源于早期的Android系統,那時候大家的手機都內置(Permanent)一塊較小存儲板(即Internal Storage),并配上一個的外置的(Removable)儲存卡(即External Storage)。
5. [如何優雅的設計java異常](http://lrwinx.github.io/2016/04/28/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E8%AE%BE%E8%AE%A1java%E5%BC%82%E5%B8%B8/)
異常處理是程序開發中必不可少操作之一,但如何正確優雅的對異常進行處理確是一門學問,筆者根據自己的開發經驗來談一談我是如何對異常進行處理的。由于本文只作一些經驗之談,不涉及到基礎知識部分,如果讀者對異常的概念還很模糊,請先查看基礎知識。
6. [第三方庫和SDK中隱藏的性能問題](http://blog.nimbledroid.com/2016/04/25/problems-with-libraries-and-sdks-zh.html)
很難想象現在的 APP 不會使用任何第三方庫或者 SDK,畢竟大部分 APP 都會需要進行網絡圖片加載、閃退追蹤、廣告或者用戶行為分析。這是很有意義的,開發者不應該在每次開發 APP 時都重復造輪子。然而很多第三方庫和 SDK 都會導致 APP 啟動變慢以及一些其他的性能問題。而這些性能問題通常都很難追蹤分析,因為大部分開發者都對第三方庫和 SDK 的實現細節了解很少,甚至完全沒有了解。
7. [突破App啟動時間的極限](http://blog.nimbledroid.com/2016/04/20/pushing-limits-of-app-startup-time-zh.html)
開發一個高性能的小規模 APP 很簡單,一旦涉及到數據緩存、JSON 解析、不可變對象、依賴注入以及一系列安卓 support 庫時,保持 APP 的高性能就變得很有挑戰性了。 幸運的是保持 APP 的高性能依然是有可能的,即便我們使用了 RxJava 進行響應式編程,不可變數據對象, Guava 集合,Optional,以及用 Dagger 進行依賴注入。
### 開源庫&項目
1. [Flexbox-layout](https://github.com/google/flexbox-layout)
FlexboxLayout is a library project which brings the similar capabilities of?[CSS Flexible Box Layout Module](https://www.w3.org/TR/css-flexbox-1)?to Android.
2. [navi](https://github.com/trello/navi)?
Adds listening capabilities to Activities and Fragments
3. [easydeviceinfo](https://github.com/nisrulz/easydeviceinfo)?
一個可以很方便的獲取一系列設備信息的庫
4. [AdvancedRecyclerView](https://github.com/StephenVinouze/AdvancedRecyclerView)
用 Kotlin 實現的支持 Single choice、Multiple choice 和 Sections 的 RecyclerView
5. [android-widget-fanmenu](https://github.com/BCGDV-ASIA/android-widget-fanmenu)
風扇效果的菜單
6. [Tesela](https://github.com/raycoarana/tesela)
Tesela simplifies dealing with background threads and UI work in Model-View-Presenter
7. [MaryPopup](https://github.com/Meetic/MaryPopup)
可以給View添加展開和關閉動畫效果的庫
8. [Shuffle](https://github.com/Meetic/Shuffle)
An easy to use swiping-view for Android
9. [GithubWidget](https://github.com/Nightonke/GithubWidget)
輕量級顯示Github用戶的貢獻、星數、Follower數、熱門倉庫的App
10. [Android-Coverflow](https://github.com/crosswall/Android-Coverflow)
基于 ViewPager 實現的 cover flow 效果
11. [QuickSand](https://github.com/blundell/QuickSand)
Automatically manipulates the duration of animations dependent on view count
12. [MusicBobber](https://github.com/Cleveroad/MusicBobber)
Awesome Audio Widget for any Android Music App
13. [EasySplashScreen](https://github.com/pantrif/EasySplashScreen)
Easily create your company splash screen
### 技術之外
1. [如何教會非計算機專業的女友寫代碼](http://lifeofzjs.com/blog/2016/05/01/how-to-teach-gl-write-code/)
> 版權聲明:歡迎自由轉載-非商用-非衍生-保持署名 |?[Creative Commons BY-NC-ND 3.0](http://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh3)
- 前言
- 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