### 教程
1. [從零開始的Android新項目8 - Data Binding高級篇](http://blog.zhaiyifan.cn/2016/07/06/android-new-project-from-0-p8/)
承接上篇,本篇繼續講解一些Data Binding更加進階的內容,包括:列表綁定、自定義屬性、雙向綁定、表達式鏈、Lambda表達式、動畫、Component注入(測試)等。
2. [深入理解 ButterKnife,讓你的程序學會寫代碼](http://t.cn/R5sYYYH)
我們今天要介紹的 ButterKnife 其實就是一個依托 Java 的注解機制來實現輔助代碼生成的框架,讀完本文,你將能夠了解到 Java 的注解處理器的強大之處,你也會對 Dagger2 和 AndroidAnnotations 這樣類似的框架有一定的認識。
3. [淺談Android自定義鎖屏頁的發車姿勢](http://t.cn/R5sYWg1)
鎖屏作為一種黑白屏時代就存在的手機功能,至今仍發揮著巨大作用,特別是觸屏時代的到來,鎖屏的功用被發揮到了極致。多少人曾經在無聊的時候每隔幾分鐘劃開鎖屏再關上,孜孜不倦,其酸爽程度不亞于捏氣泡膜。確實,一款漂亮的鎖屏能為手機增色不少,但鎖屏存在的核心目的主要是三個:保護自己手機的隱私,防止誤操作,在不關閉系統軟件的情況下節省電量。
4. [Android中的事件分發和處理](http://shaohui.xyz/2016/07/12/Android%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E5%92%8C%E5%A4%84%E7%90%86/)
我們都能詳細地說出Android的四大組件:Activity,Service,ContentProvider和BoardcastReceiver,但是四大組件之外,我們用到也很多的是什么,其中肯定包括View,View是用戶跟程序溝通的入口,也是程序展現給用戶信息的窗口。關于View,一些基礎屬性還是要了解的,left,top,right,bottom,分別代表了view的左上角和右下角分別相對x軸,y軸的坐標,而且view的getWidth和getHeight的值都是通過這四個值算得,而且在Android3.0中還增加了x,y,translationX和translationY這幾個屬性,便于我們對view的平移操作,x、y代表了當前view左上角的xy坐標,而translationX和translationY代表了view相對它的父容器的偏移量,默認值是0。
5. [Android插件化原理解析—ContentProvider的插件化](http://weishu.me/2016/07/12/understand-plugin-framework-content-provider/)
目前為止我們已經完成了Android四大組件中Activity,Service以及BroadcastReceiver的插件化,這幾個組件各不相同,我們根據它們的特點定制了不同的插件化方案;那么對于ContentProvider,它又有什么特點?應該如何實現它的插件化?與Activity,BroadcastReceiver等頻繁被使用的組件不同,我們接觸和使用ContentProvider的機會要少得多;但是,ContentProvider這個組件對于Android系統有著特別重要的作用——作為一種極其方便的數據共享的手段,ContentProvider使得廣大第三方App能夠在壁壘森嚴的系統中自由呼吸。
6. [動起來!動起來!- Android Transitions 轉場動畫](http://www.jianshu.com/p/98f2ec280945)
作為 Andorid 開發者我們都知道,Google 在最近的設計理念中引入了 Material Design.可以說開啟了 Android 動畫交互的新篇章。在 Material Deisgn 中有一個概念: Material Motion,概念提的那是非常有內涵,也吸引了大批設計者和開發者追捧。但是回到現實,在 Andorid 寫起動畫來并不是那么容易。
7. [拆輪子系列:拆 OkHttp](http://blog.piasy.com/2016/07/11/Understand-OkHttp/)
安卓開發領域,很多重要的問題都有了很好的開源解決方案,例如網絡請求 OkHttp + Retrofit 簡直就是不二之選。“我們不重復造輪子不表示我們不需要知道輪子該怎么造及如何更好的造!”,在用了這些好輪子將近兩年之后,現在是時候拆開輪子一探究竟了。本文基于 OkHttp 截至 2016.7.11 的最新源碼對其進行了詳細分析。
8. [不要再給MVP中Prensenter寫接口了](http://blog.chengdazhi.com/index.php/205)
譯者序:有關是否要讓Presenter實現接口這個問題并沒有很多討論。antoiolg曾在GitHub上發過一個MVP實踐,最早的提交是在2014年四月,可以說是最早的優秀范例了。他讓所有的Presenter都實現了接口,并在View層中堅持使用接口而不是實現類。而幾個月前Google竟發布了官方MVP實踐。此碼一放,眾神退讓。
9. [為什么Android開發者應該使用FlatBuffers替代JSON?](http://blog.chengdazhi.com/index.php/201)
你可能會問,既然我們已經有很標準的JSON以及轉換庫比如GSON和Jackson,為什么還要使用新的工具呢?不妨先試一下FlatBuffers,然后你就會發現它比JSON快得多。FlatBuffers是一個高效的跨平臺序列化類庫,可以在C++、C#、C、Go、Java、JavaScript、PHP和Python中使用。是Google開發的,是為了應用在游戲開發,以及其他注重性能的應用上。
10. [自定義Switch過程詳解](http://ztelur.github.io/2016/07/15/%E8%87%AA%E5%AE%9A%E4%B9%89Switch%E8%BF%87%E7%A8%8B%E8%AF%A6%E8%A7%A3/)
我們都知道以View為父類來自定義視圖需要重載一系列函數,下面我們就來按照調用順序來介紹一下這些函數。需要重載的函數列表如下:onMeasure、onSizeChanged、onDraw、onTouchEvent、onSaveInstanceState、onRestoreInstanceState,首先就是onMeasure函數,用于確定自定義視圖的長和高。對于本文的Switch,我們讓其高為寬的固定比例大小就可以了,所以重構函數實現得十分簡單。這個函數確定的只是測量的長和高,并不是最終視圖所顯示的長和高。
### 開源庫&項目
1. [Maoni](https://github.com/rm3l/maoni)
Maoni is a lightweight library for integrating a way to collect in-app user feedbacks from within Android applications.
2. [SnappySmoothScroller](https://github.com/nshmura/SnappySmoothScroller)
An Android library that enables snappy smooth scrolling in RecyclerView.
3. [Mockery](https://github.com/VictorAlbertos/Mockery)
Android and Java library for mocking and testing networking layers with built-in support for Retrofit.
4. [wrapping-viewpager](https://github.com/iffa/wrapping-viewpager)
ViewPager with dynamic height support and smooth animations
5. [RelativePopupWindow](https://github.com/kakajika/RelativePopupWindow)
Android PopupWindow that can be easily located relative to anchor View.
6. [FloatingText](https://github.com/UFreedom/FloatingText)
一個能夠在任何控件之上執行漂浮效果動畫的控件
7. [FogView_Library](https://github.com/dynamitechetan/FogView_Library)
FogView is a android library that can show fog on any layout and the fog removes when user rubs it.
8. [DiscreteSlider](https://github.com/lawloretienne/DiscreteSlider)
A slider that allows a user to select a value at one of the specified tickmarks
9. [Hermes](https://github.com/Xiaofei-it/Hermes)
簡單易用的安卓進程間通信IPC框架
10. [HermesEventBus](https://github.com/eleme/HermesEventBus)?(By 進擊的小羊)
一個基于EventBus的、能在進程間發送和接收event的庫,在IPC或者插件開發中非常有用
11. [WheelPicker](https://github.com/AigeStudio/WheelPicker)
Simple and fantastic wheel view in realistic effect for android.
12. [AndroidTVLauncher](https://github.com/JackyAndroid/AndroidTVLauncher)
This is a better android-tv-launcher,it can running on the tv box.Build with gradle.
13. [SeismicInterceptor](https://github.com/charbgr/SeismicInterceptor)
A lightweight OkHttp interceptor
14. [rx-android-permissions](https://github.com/beworker/rx-android-permissions)
Simple RxJava library for requesting and observing Android runtime permissions
15. [Fabuless](https://github.com/beworker/fabuless)
Fun to use Floating Action Button (FAB) for Android
16. [ElemeShoppingView](https://github.com/JeasonWong/ElemeShoppingView)
仿餓了么點擊購物效果
### 工具
1. [BorePlugin](https://github.com/boredream/BorePlugin)
Android Studio 自動生成布局代碼插件
### 版權聲明
> 歡迎自由轉載-非商用-非衍生-保持署名 |?[Creative Commons BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/)
### 捐贈
> 如果你覺得Android開發技術周報對您有所幫助,請考慮對本周報捐贈支持。支持我把Android開發技術周報做的更好,幫助更多的人,金額隨意,您的捐贈將用于支付服務器和郵件推送服務的費用。[去捐贈](http://www.androidweekly.cn/donate/)
- 前言
- 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