2016-03-13 Piasy
安卓开发过程中测试的编写是一个公认的痛点,本文总结了我在AndroidTDDBootStrap工程中配置Espresso测试所遇到的坑,例如神秘报错android.content.res.Resources$NotFoundException和java.util.zip.ZipException: duplicate entry,以及对dagger,mock网络请求的实践,目测应该是目前最全面的指南了 :) 本文涉及的完整代码可以在Github: AndroidTDDBootStrap获取。 继续阅读 »
2016-06-07 Piasy
做安卓开发满打满算也有 3 年了,OpenGL 这块之前完全没有涉及过,这两周一直在整理安卓相机预览、用 GPUImage 进行美颜处理以及美颜后的数据传输这块内容,结果 GPUImage 的美颜原理基本一窍不通,因此就把 OpenGL ES 好好入了个门,并且整理为 安卓 OpenGL ES 2.0 完全入门 系列。本文是系列第一篇,主要是介绍了 OpenGL 的一些基本概念,并且包含了对一个 hello world 程序的完全解析,注意,并不是有一个 hello world,而是对其进行了完全解析! 继续阅读 »
2016-02-24 Piasy
安卓开发过程中一旦开始和硬件打交道,以及涉及到一定的native代码之后,各种闪退就开始浮出水面了,声音录制和播放当然不例外,其中最摸不着头脑的就是A/libc: Fatal signal 11 (SIGSEGV) at了。本文总结了YOLO安卓客户端大半年来的安卓音频实践,整理出一套系统API的封装,命名为RxAndroidAudio。 继续阅读 »
2016-07-11 Piasy
安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选。“我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!{:target="_blank"}”,在用了这些好轮子将近两年之后,现在是时候拆开轮子一探究竟了。本文基于 OkHttp 截至 2016.7.11 的最新源码{:target="_blank"}对其进行了详细分析。 继续阅读 »
2016-06-25 Piasy
安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选。“我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!{:target="_blank"}”,在用了这些好轮子将近两年之后,现在是时候拆开轮子一探究竟了。本文基于 Retrofit 截至 2016.6.23 的最新源码{:target="_blank"}对其进行了详细分析。 继续阅读 »
2016-03-19 Piasy
最近一直在补充framework以及更深入的安卓开发知识,看到老罗的博客以及developer文档关于task, launchMode, intent flag的分析说明之后,不禁想要自己动手测试一下,验证他们所说的是否属实,个人认为当属目前最全面的测试与总结了(欢迎补充与质疑),完整代码可以在Github获取。 继续阅读 »
2016-04-03 Piasy
开发安卓APP的过程中,肯定有不少人遇见过 Activity Not Found 错误和 Activity State Loss 错误,前者是由于启动的目标 intent 对应的 activity 不存在,后者则是由于在 activity onSaveInstanceState 函数被调用之后进行了 fragment transaction,关于后者有一篇文章{:target="_blank"}总结得非常到位,这一篇译文{:target="_blank"}翻译得也还不错,建议看看。本文则主要介绍我的一个开源库 SafelyAndroid{:target="_blank"},其中整合了解决这两类问题的最佳实践,让我们一起利用它打造鲁棒 继续阅读 »
2016-06-14 Piasy
在安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world{:target="_blank"} 中,我主要分析了坐标系、基本绘制流程、绘制三角形、投影变换参数意义,在本篇中,我将分析绘制矩形、绘制图片纹理、读取显存的内容,以及一些注意事项,完整代码可以在 GitHub 获取{:target="_blank"}。 继续阅读 »
2016-05-12 Piasy
在完美的安卓 model 层架构(上){:target="_blank"}中,我主要介绍了网络请求、数据库持久化、Immutable/Value types、Json 序列化与反序列化这四部分内容,而剩下的关于 Parcelable,ZonedDateTime,null safety,rx error handling,config injection以及测试相关的内容,将在本篇中进行介绍。 继续阅读 »
2017-01-12 Piasy
大家好,博客断更将近三个月之后,终于可以恢复了。近期将要带来的,是一系列安卓系统的基础知识。这些内容其实也算是我对自己知识的一次整理,虽然日常开发工作可能用得不多,但这些基本的东西还是应该扎实地掌握,毕竟如果要参加面试,免不了要回答这些问题的 :) 继续阅读 »