优化android studio编译效率的方法

引言

如果你之前用eclipse开发过Android app的化,转到android studio的第一反应也许就是:”编译速度有点慢”. 表现的最明显的一点就是,当我使用eclipse开发的时候,选中了auto building.这个时候
我更改了几个字符,eclipse会速度非常快的编译出一个新的apk. 而android studio使用gradle编译,每次编译,即便是更改的代码量很少,也会按照预先设置的task的顺序,依次走完编译的各项流程.所以
这点就让人很痛苦. 然而问题总还是要被解决的,作者曾经亲眼看到过使用android studio仅仅用了2.5秒就编译完毕(在代码更改很少的情况下). 现在把如何优化gradle编译速度的方法记录在此,希望可以
帮助到广大的同行们.

Read More

创建-RecyclerView-LayoutManager-Redux

这篇文章是RecyclerView系列文章的结尾篇。
当我在写这个系列的最后一篇文章,也就是关于predictIve animation的讨论时,我突然想到几个很有意思的点,并且很有讨论价值。这个系列文章以调查RecyclerView是否能够以简单的方式满足竖向、横向滚动的布局需求以及开发者要定制一个LayoutManager的难度有多大开始。这篇文章中我选择了一个基本的网格布局作为自定义layoutManager的示例。

Read More

Android 进行单元测试难在哪-终

在前面的博文中,我给大家介绍并展示了要怎么使用 Square 大法架构 Android 应用,事实上,Square 开发新的 Android 应用架构本意只是增强应用的可测试性。正如我在Android 进行单元测试难在哪-序中所说,要在 Android 中进行单元测试在大多数情况下都很费时,尝试一些奇技淫巧或者第三方库情况可能会好一些。为了实现高效且不依赖第三方库的测试单元,Square 大法应运而生。

Read More

Square:从今天开始抛弃Fragment吧!

最近我在 Droidcon Paris 上进行了一个技术相关的演讲,我在这次演讲中给大家展示了 Square 使用 Fragment 进行开发时遇到的种种问题,以及其他 Android 开发者是怎么避免在项目中使用 Fragment 的。

在 2011 年那会,由于下面的原因我们决定使用 Fragment:

  • 在那会,虽然我们很想让应用能在平板设备上被使用,但我们确实没能为平板提供平台支持。而 Fragment 能帮助我们完成这项愿望,建立响应式 UI 界面。

  • Fragment 是视图控制器,它们能够将一大块耦合严重的业务逻辑模块解耦,并使得解耦后的业务逻辑能够被测试。

  • Fragment 的 API 能够进行回退栈管理(例如,它能反射某个 Activity 内 Activity 栈的具体操作)

  • 因为 Fragment 处于视图层的顶层,而为 View 设置动画并不麻烦,使得 Fragment 为设置页面切换的过渡效果提供了更好的支持。

  • Google 建议我们使用 Fragment,而我们作为开发者都想让自己的代码符合标准。

在 2011年之后,我们在为 Square 进行开发的过程中发现了比使用 Fragment 更好的方法。

Read More

Android 进行单元测试难在哪-part4

上一篇博文中,我给大家介绍了新的应用架构方式 - Square 大法,就像我之前说的,Square 大法是 Square 用于使 Fragment 内的业务逻辑能够进行单元测试的通用方法,我还给大家展示了如何使用 Square 大法重构 Google 的 IOSched 应用的 SessionCalendarService 类,使得对 SessionCalendarService 类内的业务逻辑进行单元测试由几乎不可能变为可行。而在今天的这篇博文中,我会和大家一起继续探索 Square 大法,让我们对应用的 UI 组件进行单元测试成为可能,也让测试变得容易。

Read More