2016-08-04 Piasy
Retrofit{:target="_blank"},OkHttp{:target="_blank"},Okio{:target="_blank"} 是 Square 团队开源的安卓平台网络层三板斧,它们逐层分工,非常优雅地解决我们对网络请求甚至更广泛的 I/O 操作的需求。其中最底层的 Okio 堪称小而美,功能也更基础,应用更广泛。这次我们就对它进行一个详细的分析。本文的分析基于 Okio 截至 2016.8.4 的最新源码{:target="_blank"},非常建议大家下载 Okio 源码之后,跟着本文,过一遍源码。 继续阅读 »
2015-10-05 Piasy
12行配置从Android Studio + Gradle构建体系迁移到facebook的BUCK构建体系,且保持两者同时兼容使用,编码使用AS,享受安卓最强大IDE的功能,打包、安装、测试用BUCK,享受安卓最快构建系统的畅快淋漓,两者互不干扰。从此妈妈再也不用担心我在编译安卓工程时睡着了,而且真的只要12行! 继续阅读 »
2016-02-24 Piasy
在YOLO的直播间内,可以发送文字评论,要求文字输入框随键盘弹起,而底下的视频又不会变形,也不会被顶上去,这个问题曾一度困扰我们很久,适逢大师兄公司安卓工程师也遇到了同样的问题,所以简单整理成一篇文章,供更多开发者参考。本文源码地址。 继续阅读 »
2016-09-04 Piasy
在拆轮子系列:拆 Okio{:target="_blank"} 最后我曾说过会对 Retrofit、OkHttp、Okio 三者进行一个小结,并且整理一套网络层的“微架构”,今天终于得以完成,在这里一起奉送给大家 :) 继续阅读 »
2015-11-16 Piasy
今天开发的过程中偶遇一个系统的bug:响应通知栏消息,启动一个新的Activity,之前代码写得有问题,为intent设置了Intent.FLAG_ACTIVITY_CLEAR_TASK这个flag,删除这行代码重新安装之后,竟然发现修改不起作用,启动Activity的行为依然是清除了之前所有的Activity,疑惑之余,对这个问题进行了进一步的测试,总结成此文。 继续阅读 »
2017-02-12 Piasy
Activity Activity 是和用户交互的入口,几乎用户所有的交互操作都发生在 Activity 中,只有一个例外:通知栏,notification area (bar) 和 notification drawer 都由系统控制(SystemUI,一系列有界面的 Service,除了状态栏,还包括虚拟按键、最近任务、壁纸等,更多内容可以阅读《深入理解Android 卷III》)。桌面组件(widget)也是被 launcher 利用,显示在 launcher 的 Activity 中。 继续阅读 »
2016-04-04 Piasy
本文继上篇 ItemDecoration{:target="_blank"} 之后,是深入理解 RecyclerView 系列的第二篇,关注于 ItemAnimator,主要是分析 RecyclerView Animators{:target="_blank"} 这个库的原理,然后总结如何自己编写自定义的 ItemAnimator。本文涉及到的完整代码可以在 Github 获取{:target="_blank"}。 继续阅读 »
2016-01-18 Piasy
今天迷迷糊糊听见iOS同事对PM说“连击检测”其实只需要传一个参数就行了,我大为震惊,iOS竟有如此炫酷的API,Android似乎没有呀!在google和github搜索两次之后无果,我决定自己实现一个连击检测的库。因为主要使用RxJava实现,所以命名为RxComboDetector,github 源码地址。 继续阅读 »
2016-03-10 Piasy
5个多月过去了,OkBuck和AndroidTDDBootStrap项目都发生了重大更新,原文中的描述已经过时已久,今天趁着AndroidTDDBootStrap完成重构,更新AndroidTDDBootStrap的OkBuck配置过程,继续体验其畅快淋漓! 继续阅读 »
2016-03-16 Piasy
今天代码写着写着就莫名闪退了,手机也没有“程序停止运行”的提示,logcat也没有看到蓝色的调用栈log,这样的闪退最是蛋疼了,还好必现。复现几次之后,终于从logcat中看到了一行可疑的log:A/Looper: Could not create epoll instance. errno=24,看起来又是在native层闪退了。本文就把这个问题的分析解决过程记录了下来。 继续阅读 »