Piasy

NEVER STOP

这可能是目前最详细的安卓task, launchMode, intent flag测试分析与总结了

最近一直在补充framework以及更深入的安卓开发知识,看到老罗的博客以及developer文档关于task, launchMode, intent flag的分析说明之后,不禁想要自己动手测试一下,验证他们所说的是否属实,个人认为当属目前最全面的测试与总结了(欢迎补充与质疑),完整代码可以在Github获取。 TL; DR 同一task内的activity可以是来自不同进程的ac...

从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路

今天代码写着写着就莫名闪退了,手机也没有“程序停止运行”的提示,logcat也没有看到蓝色的调用栈log,这样的闪退最是蛋疼了,还好必现。复现几次之后,终于从logcat中看到了一行可疑的log:A/Looper: Could not create epoll instance. errno=24,看起来又是在native层闪退了。本文就把这个问题的分析解决过程记录了下来。 方法论 遇见没...

(可能是)目前最全面的Android Espresso配置指南了

安卓开发过程中测试的编写是一个公认的痛点,本文总结了我在AndroidTDDBootStrap工程中配置Espresso测试所遇到的坑,例如神秘报错android.content.res.Resources$NotFoundException和java.util.zip.ZipException: duplicate entry,以及对dagger,mock网络请求的实践,目测应该是目前最全...

手把手OkBuck教程:应用到AndroidTDDBootStrap项目(续)

5个多月过去了,OkBuck和AndroidTDDBootStrap项目都发生了重大更新,原文中的描述已经过时已久,今天趁着AndroidTDDBootStrap完成重构,更新AndroidTDDBootStrap的OkBuck配置过程,继续体验其畅快淋漓! 第一步,应用插件 按照OkBuck文档的步骤,根据本工程的结构,在/build.gradle中加入配置,配置后/build.grad...

解决A/libc Fatal signal 11 (SIGSEGV)错误,这可能是目前最鲁棒的Android声音录制和播放封装库了

安卓开发过程中一旦开始和硬件打交道,以及涉及到一定的native代码之后,各种闪退就开始浮出水面了,声音录制和播放当然不例外,其中最摸不着头脑的就是A/libc: Fatal signal 11 (SIGSEGV) at了。本文总结了YOLO安卓客户端大半年来的安卓音频实践,整理出一套系统API的封装,命名为RxAndroidAudio。 概览 安卓平台和声音录制与播放相关的主要是4个类:...

完美解决安卓上层输入控件随键盘弹起,下层 UI 变形问题

在YOLO的直播间内,可以发送文字评论,要求文字输入框随键盘弹起,而底下的视频又不会变形,也不会被顶上去,这个问题曾一度困扰我们很久,适逢大师兄公司安卓工程师也遇到了同样的问题,所以简单整理成一篇文章,供更多开发者参考。本文源码地址。 面临的问题 主要还是activity的windowSoftInputMode选项只能设置一种值,如果希望输入框随着键盘弹起而顶上去,那底下的视图要么会顶上去...

OkBuck, underneath the hood

本文对我目前在github上收获star最多的开源项目OkBuck的工作原理进行了深度解析,并在本文写作过程中完成了对OkBuck的第三轮重构,作为OkBuck 1.0版本发布的基础。 渊源 15年9月份开始了解到快速打包相关的技术,此时已经饱受gradle打包龟速的痛苦。 首先了解到的是LayoutCast,但由于其只支持Android 5.0 以上(ART)的手机,虽然5.0的测试机...

RxScreenshotDetector:Android 截屏检测

应PM需求,YOLO可能会对直播过程中的截屏进行检测并通知其他人,类似于Snapchat,此时iOS同事再次表达了先天优势,iOS系统提供了API呀!Google无果之后决定再次造轮子,为了持续表达对Rx的敬意,命名为RxScreenshotDetector,github 源码地址。 效果有图有真相 原理 安卓系统并没有提供任何截屏检测相关的API,网上针对Snapchat的这项功...

RxComboDetector:Android view点击“连击”检测

今天迷迷糊糊听见iOS同事对PM说“连击检测”其实只需要传一个参数就行了,我大为震惊,iOS竟有如此炫酷的API,Android似乎没有呀!在google和github搜索两次之后无果,我决定自己实现一个连击检测的库。因为主要使用RxJava实现,所以命名为RxComboDetector,github 源码地址。 效果有图有真相 原理 基本思想非常简单,如果本次点击事件发生的时间,...

Hey 2016

离开校园,正式步入职场的第一次跨年。2015,成长真的很多,2016,还要更多的成长! 生活 为什么先说生活?因为离开校园确实是一个非常大的转变,也是一个很好的契机,虽然14年夏天就开始近乎全职的实习,但真的毕业之后,还是完全不一样的。 7月,从学校毕业,邀请父母亲人来北京参加了毕业典礼。 也是7月,搬进了“新家”,我对寓所非常满意,我想它将是我真正拥有自己的家之前,唯一的“新家”了。...