[置顶] 面向对象六大原则

本文出自《Android源码设计模式解析与实战》中的第一章。 1、优化代码的第一步——单一职责原则单一职责原则的英文名称是Single Responsibility Principle,简称SRP。它的定义是:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数、数据的封装。就像秦小波老师在《设计模式之禅》中说的:“这是一个备受争议却又及其重要的原则。只要你...
阅读(29843) 评论(37)

[置顶] Android事件总线还能怎么玩?

事件总线还能怎么玩顾名思义,AndroidEventBus ( github链接 )是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量。但它能做的却不仅限于这些。经过定制,它能完成很多有意思的功能,那么究竟该怎么做呢?就让我们一起往下看吧。...
阅读(7598) 评论(19)

[置顶] AndroidEventBus ( 事件总线 ) 的设计与实现

AndroidEventBus是一个Android平台的事件总线库, 它简化了Activity、Fragment、Service等组件或者对象之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。...
阅读(9313) 评论(12)

[置顶] Android事件总线 ( AndroidEventBus ) 开源库发布

AndroidEventBus是一个Android平台的事件总线开源库, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。...
阅读(14812) 评论(74)

初创团队的Android应用质量保障之道

稳定性与内存优化随着Android技术的发展各种开源库层出不穷,开发一个Android应用已经变得容易了很多。然而开发一个商业应用并不是单纯是实现业务需求那么简单,开发完成只是基础,后续还需要经过QA同学的严格测试。然而对于小型创业公司来说,我们并没有BAT等大厂里的测试平台、方案研究员,我们QA资源比较有限,如果将一切发现问题的重担都交给测试部门,不但耗费的测试周期长,而且有一些问题将难以发现。例...
阅读(6047) 评论(9)

Android ButterKnife 的实现思路

Android ButterKnife 的实现思路 本文出自《Android源码设计模式解析与实战》中的第十六章。 在Android开发中,我们为了方便初始化Activity中的各种View,我们可能会使用到Jake Wharton的 ButterKnife库,这个库是针对View、资源id等进行注解的开源库,它能够去除掉一些丑陋不堪的样板式代码,使得我们的代码更加简洁、易于...
阅读(4851) 评论(6)

单元测试利器-Mockito 中文文档

Mockito库能够Mock对象、验证结果以及打桩(stubbing),是单元测试中mock对象非常重要的开源库...
阅读(6533) 评论(0)

使用ClassyShark压缩你的项目

最近,我们的项目中用到了一个重要的框架,它为我们的产品提供了一个非常关键的功能。 你可以想象一下,这个框架的SDK是相当巨大的,它包含**45K的方法**:这足以使我们的项目(已经用到了Support Library和Play Services)产生使用MultiDex分包的冲动。...
阅读(3223) 评论(0)

高效地配置okhttp

当我为[可汗学院](https://www.khanacademy.org/)开发[Android app](https://play.google.com/store/apps/details?id=org.khanacademy.android)的时候,[OkHttp](http://square.github.io/okhttp/)是一个十分有用的第三方库。虽然它的默认设置已经提供了很大的便利,但我们还是采取了...
阅读(4055) 评论(1)

Android下雪动画的实现

这本是一个愉快的季节,但是,呵呵,胡扯! 因为这篇文章的发表时间是2015年的圣诞节,所以我们需要给Style Android用制造出一些节日气氛。感谢读者们,因为有的读者可能没有在...
阅读(4289) 评论(3)

Android工程师进阶之路 :《Android开发进阶:从小工到专家》上市啦!

写这本书写这本书的念头由来已久了。也许是从我打算写《Android源码设计模式解析与实战》那时起就萌生了这个念头,因为设计模式属于仅次于架构之下的局部战术,阅读这类书籍能够让具备一定工作经验的开发人员提升自己的设计能力,构建更灵活的软件。但是,对于初、中级工程师而言,最重要的还是在于基础知识以及知识广度的掌握上。...
阅读(7868) 评论(20)

Adapter模式实战-重构鸿洋的Android建行圆形菜单

对于很多开发人员来说,炫酷的UI效果是最吸引他们注意力的,很多人也因为这些炫酷的效果而去学习一些比较知名的UI库。而做出炫酷效果的前提是你必须对自定义View有所理解,作为90的小民自然也不例外。特别对于刚处在开发初期的小民,对于自定义View这件事觉得又神秘又帅气,于是小民决定深入研究自定义View以及相关的知识点。本文我们通过重构泓洋的圆形菜单来学习Adapter模式的运用!...
阅读(8730) 评论(7)

RxJava开发精要8 - 与REST无缝结合-RxJava和Retrofit

在上一章中,我们学习了如何使用调度器在不同于UI线程的线程上操作。我们学习了如何高效的运行I/O任务而不用阻塞UI以及如何运行耗时的计算任务而不耗损应用性能。在最后一章中,我们将创建一个最终版的`真实世界`的例子,用Retrofit映射到远程的API,异步的查询数据,从而不费力的创造一个丰富的UI。...
阅读(4414) 评论(1)

RxJava开发精要7 - Schedulers-解决Android主线程问题

本章中,我们提升标准看看如何使用RxJava的调度器来处理多线程和并发编程的问题。我们将学习到如何以响应式的方式创建网络操作,内存访问,以及耗时任务。...
阅读(5904) 评论(0)

RxJava开发精要6 - 组合Observables

上一章中,我们学到如何转换可观测序列。我们也看到了`map()`,`scan()`,`groupBY()`,以及更多有用的函数的实际例子,它们帮助我们操作Observable来创建我们想要的Observable。...
阅读(4530) 评论(0)

RxJava开发精要5 - Observables变换

在上一章中,我们探索了RxJava通用过滤方法。我们学习了如何使用`filter()`方法过滤我们不需要的值,如何使用`take()`得到发射元素的子集,如何使用`distinct()`函数来去除重复的。我们学习了如何使用`timeout()`,`sample()`,以及`debounce()`来利用时间。...
阅读(3334) 评论(0)

RxJava开发精要4 - Observables过滤

在上一章中,我们学习了使用RxJava创建一个Android工程以及如何创建一个可观测的列表来填充RecyclerView。我们现在知道了如何从头、从列表、从一个已存在的传统Java函数来创建Observable。...
阅读(3330) 评论(1)

RxJava开发精要3-向响应式世界问好

在上一章中,我们对观察者模式有个理论上的快速概述。我们也看了从头开始、从列表、或者从已经存在的函数来创建Observables。在本章中,我们将用我们学到的来创建我们第一个响应式Android应用程序。首先,我们需要搭建环境,导入需要的库和有用的库。然后我们将创建一个简单的应用程序,在不同的flavors中包含几个用RxJava填充的RecycleView items。...
阅读(3287) 评论(2)

RxJava开发精要2-为什么是Observables?

在面向对象的架构中,开发者致力于创建一组解耦的实体。这样的话,实体就可以在不用妨碍整个系统的情况下可以被测试、复用和维护。设计这种系统就带来一个棘手的负面影响:维护相关对象之间的统一。...
阅读(3630) 评论(0)
322条 共22页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1115935次
    • 积分:13760
    • 等级:
    • 排名:第872名
    • 原创:179篇
    • 转载:120篇
    • 译文:23篇
    • 评论:969条
    博客专栏
    最新评论