合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
### 教程 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/)