##教程
1. [適配 Android N 多窗口特性的 5 個要訣](http://chinagdg.org/2016/04/5-tips-for-preparing-for-multi-window-in-android-n/)
Android N 的一大新特性是支持多窗口,為此開發者應該做哪些準備工作呢?這里 Google 工程師 Ian Lake 告訴你 5 大要訣.使用多窗口分屏功能,能夠并排地同時看到兩個應用。你可能非常興奮,想知道這是如何做到的,于是立刻去查閱文檔,看看是什么新 API 實現了這一獨特功能。
2. [從案例學習RxAndroid](http://blog.chengdazhi.com/index.php/140)(By Dominic)
如果你在閱讀這篇文章,相信你一定很想了解RxJava以及如何在Android應用中使用它。可能你已經見過RxJava的代碼了,但仍然有些疑惑,愿你能在這篇文章里找到答案。當我第一次使用RxJava的時候我只是在照搬代碼,這些代碼能跑起來,但是我對RxJava的基礎部分仍然存在誤解,而且我找不到好的源碼來學習。所以為了理解RxJava,我不得不一點一點學習,踩了不少坑。
3. [Android MVP 詳解(上)](http://www.jianshu.com/p/9a6845b26856)(By DIY-green)
MVP 在 Android 上的使用其實已經有挺長一段時間了,長到似乎有點“過時”了(目前風頭正勁的是MVVM),那為什么現在還要講 MVP。今天我想要討論它的主要原因有如下幾點:1\. MVP 并未過時,值得我們研究 2\. 目前關于 MVP 的資料都不算太詳盡 3\. 由于能力和時間有限,本人拖到最近才下定決心寫
4. [Android MVP 詳解(下)](http://www.jianshu.com/p/0590f530c617#)?(By DIY-green)
總體架構可以被分成四個部分 :Presentation:負責展示圖形界面,并填充數據,該層囊括了 View 和 Presenter (上圖所示的Model我理解為 ViewModel -- 為 View 提供數據的 Model,或稱之為 VO -- View Object)。
5. [理解Android編譯命令](http://gityuan.com/2016/03/19/android-build/)
準備好編譯環境后,編譯Android源碼的第一步是 source build/envsetup.sh,其中source命令就是用于運行shell腳本命令,功能等價于”.”,因此該命令也等價于. build/envsetup.sh。在文件envsetup.sh聲明了當前會話終端可用的命令,這里需要注意的是當前會話終端,也就意味著每次新打開一個終端都必須再一次執行這些指令。起初并不理解為什么新開的終端不能直接執行make指令,到這里總算明白了。
6. [理解Android進程創建流程](http://gityuan.com/2016/03/26/app-process-create/)
本文要介紹的是進程的創建,先簡單說說進程與線程的區別。進程:每個App在啟動前必須先創建一個進程,該進程是由Zygote fork出來的,進程具有獨立的資源空間,用于承載App上運行的各種Activity/Service等組件。進程對于上層應用來說是完全透明的,這也是google有意為之,讓App程序都是運行在Android Runtime。大多數情況一個App就運行在一個進程中,除非在AndroidManifest.xml中配置Android:process屬性,或通過native代碼fork進程。
7. [微信Android客戶端后臺保活經驗分享](http://t.cn/Rq2EKfL)
國產機器大多缺乏GMS,在國內GCM也不穩定(心跳原因),第三方通道需要考慮安全問題和承載能力,最后微信選擇使用自己的長連接。而國外, GCM作為輔助,微信無法建立長連接時,才使用GCM。之前看到大家在聊各種Java網絡框架,而微信實際上都是沒用上的。早年的微信,直接通過Java socket 實現。微信v5.0后,考慮各系統平臺的統一,開始使用自研c++組件。
8. [探索react native首屏渲染最佳實踐](http://t.cn/Rq2Jfd2)
react native給了我們使用javascript開發原生app的能力,在使用react native完成興趣部落安卓端發現tab改造后,我們開始對由react native實現的界面進行持續優化。目標只有一個,在享受react native帶來的新特性的同時,在體驗上無限逼近原生實現。
9. [從零開始的Android新項目4 - Dagger2篇](http://blog.zhaiyifan.cn/2016/03/27/android-new-project-from-0-p4/)
Dagger - 匕首,顧名思義,比ButterKnife這把黃油刀鋒利得多。Square為什么這么有自信地給它取了這個名字,Google又為什么會拿去做了Dagger2呢(不都有Guice和基于其做的RoboGuice了么)?希望本文能講清楚為什么要用Dagger2,又如何用好Dagger2。
10. [APK瘦身記,如何實現高達53%的壓縮效果](http://t.cn/RqwozhY)
APK是Android系統安裝包的文件格式,關于這個話題其實是一個老生常談的題目,不論是公司內部,還是外部網絡,前人前輩已經總結出很多方法和規律。不過隨著移動端技術近兩年的飛速發展,一些新的思維方式和優化方法也逐漸涌現和成熟起來。筆者在實踐過程中踩過一些坑,收獲了一些經驗,在這里做個思考和總結,所以隨筆給大家,希望對大家從事相關工作的時候有所幫助和參考,同時也是拋磚引玉,希望大家共同探討這個開放性的話題。
11. [Android應用安全開發之淺談加密算法的坑](http://t.cn/RqwK8Hz)
Android開發中,難免會遇到需要加解密一些數據內容存到本地文件、或者通過網絡傳輸到其他服務器和設備的問題,但并不是使用了加密就絕對安全了,如果加密函數使用不正確,加密數據很容易受到逆向破解攻擊。還有很多開發者沒有意識到的加密算法的問題。
12. [5個導致主線程卡頓較鮮為人知的元兇](http://blog.nimbledroid.com/2016/03/21/ways-to-hang-main-thread-zh.html)
廣大安卓開發者都知道主線程是APP用來響應用戶交互的線程,因此應該避免執行耗時操作。通常來說,耗時方法導致主線程卡住超過16*N毫秒時,APP界面將會丟掉N幀。讓我們把這些耗時長的方法稱作卡頓函數(Hung Method)。在本文中,我們首先看一個典型的卡頓函數案例,接著仔細分析5個較鮮為人知的導致主線程卡頓原因。
##開源庫&項目
1. [android-architecture](https://github.com/googlesamples/android-architecture)
Google 官方開源的關于 Android App 架構的示例項目
2. [FlexLayout](https://github.com/mmin18/FlexLayout)
比 LinearLayout 和 RelativeLayout 更強大的布局,而且可以在 layout params 中使用 java 表達式
3. [CatLoadingView](https://github.com/Rogero0o/CatLoadingView)
效果很酷的加載動畫 View
4. [Conductor](https://github.com/bluelinelabs/Conductor)
full-featured framework
5. [welcome-coordinator](https://github.com/txusballesteros/welcome-coordinator)
可以幫助你在應用中創建很棒效果的的庫
6. [RxAndroidBle](https://github.com/Polidea/RxAndroidBle)
RxJava + BLE = Powerful
7. [kotlin-jetpack](https://github.com/nsk-mironov/kotlin-jetpack)
用 kotlin 寫的一系列有用的擴展方法
8. [StatusBarUtil](https://github.com/laobie/StatusBarUtil)
一個為Android App 設置狀態欄的工具類
9. [Takt](https://github.com/wasabeef/Takt)
一個可以測量 FPS 的庫
##工具
1. [jabba](https://github.com/shyiko/jabba)
JDK 版本管理器,支持Oracle JDK 和 Zulu OpenJDK
##視頻
1. [Android 性能模式 第三季(中文)](http://chinagdg.org/google-videos/?vid=XMTUxMjc1NjQwMA==&plid=26946826)
##技術之外
1. [一個前端的自我修養](http://t.cn/Rq2EI3g)
2. [真正的聰明人,都是怎樣從普通人中脫穎而出的?](http://t.cn/RqwnFad)
- 前言
- 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