Android Weekly Notes Issue 235

馋奶兔 提交于 2019-11-30 22:33:02

December 11th, 2016
Android Weekly Issue #235
本期内容包括: 开发一个自定义View并发布为开源库的完整流程介绍; 用AnimatedVectorDrawable实现的动画; 什么样的程序是可测试的; DownloadManager介绍; Okhttp的重试; Android 7取消了file://; Android Studio即将推出的build cache功能; 支持离线模式的app构架; 如何写自定义的lint规则; Epoxy, 一个处理复杂RecyclerView屏的库; FragmentPagerAdapterFragmentStatePagerAdapter的比较等.

ARTICLES & TUTORIALS

Make an android custom view, publish and open source

作者开发了一个环形的SeekBar, 并把它作为一个库发布到了JCenter.

作者首先讲了自定义View的实现:
首先是关于View生命周期的介绍, 在写自定义View的时候有几个关键的生命周期回调需要处理:

作者实现的几个关键步骤讲解:

  • 自定义属性并获取.
  • onMeasure()中控制尺寸.
  • onDraw()中绘制: 避免在onDraw()中分配内存; 用invalidate()方法来激发重绘.
  • onTouchEvent()处理用户手势. 在他的环形SeekBar的实现里, 这里涉及到了点击坐标到角度的转换.

将自定义View库开源到Github:
开源到Github有个好的README很重要, 这里有几个tips:

  • 提供截图, Gif或者Video.
  • 提供安装/使用说明.
    作者自己的库: SwagPoints

发布库:

  • JFrog Bintray注册.
  • 创建repository, package, 和版本号.
  • 生成并上传, 用了这个library.
  • 添加到Jcenter.
  • 被接受之后收到邮件, 就可以使用了.

Animation: Jump-through

AnimatedVectorDrawable实现的一个很fancy的位置标志动画.

What makes Android Apps Testable

如果程序的架构不适合测试, 那么硬要写一些测试很可能就会面临这样的局面: 要么就是发现没法写测试, 要么就是为了写测试而破坏了代码, 做了一些奇怪的事情.

那么到底是什么样的程序才是适合写测试, 或者是可测试的呢?

有一个有趣的定义是seam(接缝), 在接缝处你可以改变程序的行为, 而不用编辑当前程序. 如果程序没有接缝, 你将无法设置测试的初始条件和验证测试结果.

本文中举了一个实际的例子, 开始的时候程序没有seam, 所以导致无法测试, 后来把静态方法改为实例的方法之后, 我们就可以通过Mockito来模拟行为, 设置条件, 最后通过验证某一方法的调用与否来进行验证.

来源:https://www.cnblogs.com/sanxiandoupi/p/11643321.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!