自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr.Simple的专栏

LIFE IS LIKE A BATTLE.

原创 面向对象六大原则

本文出自《Android源码设计模式解析与实战》中的第一章。 1、优化代码的第一步——单一职责原则单一职责原则的英文名称是Single Responsibility Principle,简称SRP。它的定义是:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高...

2015-11-30 00:10:44 40112 37

原创 Android事件总线还能怎么玩?

事件总线还能怎么玩顾名思义,AndroidEventBus ( github链接 )是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量。但它能做的...

2015-05-04 11:50:17 8847 20

原创 AndroidEventBus ( 事件总线 ) 的设计与实现

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

2015-03-16 17:32:24 11298 12

原创 Android事件总线 ( AndroidEventBus ) 开源库发布

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

2015-02-03 15:32:20 18136 69

原创 Android App内存泄漏自动化分析工具 - MMAT发布

在Android App开发过程中空指针和内存泄漏是影响性能、稳定性的两座大山, Kotlin的出现在很大程度上避免了空指针导致的Crash, 而几年前LeakCanary的出现也大大的提高了Android工程师查找内存泄漏的效率。两年前, 我在初创团队的Android应用质量保障之道 一文中阐述...

2019-08-17 11:04:41 1766 1

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

稳定性与内存优化随着Android技术的发展各种开源库层出不穷,开发一个Android应用已经变得容易了很多。然而开发一个商业应用并不是单纯是实现业务需求那么简单,开发完成只是基础,后续还需要经过QA同学的严格测试。然而对于小型创业公司来说,我们并没有BAT等大厂里的测试平台、方案研究员,我们QA...

2017-06-25 14:22:48 13957 13

原创 Android ButterKnife 的实现思路

Android ButterKnife 的实现思路 本文出自《Android源码设计模式解析与实战》中的第十六章。 在Android开发中,我们为了方便初始化Activity中的各种View,我们可能会使用到Jake Wharton的 ButterKnife库,这个库是针对...

2016-09-18 11:28:40 9234 6

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

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

2016-08-05 11:36:20 48215 6

翻译 使用ClassyShark压缩你的项目

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

2016-03-18 21:54:18 6252 0

翻译 高效地配置okhttp

当我为[可汗学院](https://www.khanacademy.org/)开发[Android app](https://play.google.com/store/apps/details?id=org.khanacademy.android)的时候,[OkHttp](http://squa...

2016-03-18 21:52:50 8872 1

翻译 Android下雪动画的实现

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

2016-03-18 21:51:52 8836 4

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

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

2016-03-17 13:11:18 12748 20

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

对于很多开发人员来说,炫酷的UI效果是最吸引他们注意力的,很多人也因为这些炫酷的效果而去学习一些比较知名的UI库。而做出炫酷效果的前提是你必须对自定义View有所理解,作为90的小民自然也不例外。特别对于刚处在开发初期的小民,对于自定义View这件事觉得又神秘又帅气,于是小民决定深入研究自定义Vi...

2016-03-09 16:58:19 13336 7

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

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

2016-01-13 18:19:09 7401 1

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

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

2016-01-13 18:18:32 12550 0

翻译 RxJava开发精要6 - 组合Observables

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

2016-01-13 18:17:49 8768 0

翻译 RxJava开发精要5 - Observables变换

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

2016-01-13 18:16:50 6815 0

翻译 RxJava开发精要4 - Observables过滤

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

2016-01-13 18:16:09 6506 1

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

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

2016-01-13 11:17:56 6079 2

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

在面向对象的架构中,开发者致力于创建一组解耦的实体。这样的话,实体就可以在不用妨碍整个系统的情况下可以被测试、复用和维护。设计这种系统就带来一个棘手的负面影响:维护相关对象之间的统一。

2016-01-13 11:16:08 6630 0

翻译 RxJava开发精要1-从.NET到RxJava

RX - 从.NET到RxJava响应式编程是一种基于异步数据流概念的编程方式

2016-01-13 11:14:12 6828 0

原创 打造AbsListView、RecyclerView的通用Adapter

该库用于简化AbsListView类型与RecyclerView的Adapter构建,在ListViewAdapter和RecyclerAdapter封装了固定的业务逻辑,使得用户只需要实现变化的部分即可,简化代码,避免重复的模板代码。

2015-09-29 14:09:46 7695 8

原创 Android动态换肤开源库Colorful发布

最近本人需要用到夜间模式,但是经过一番搜索似乎并没有看到好的开源实现,看到有一个类似的库MultipleTheme,但是需要自定义所有要实现换肤功能的View,感觉比较麻烦。因此本人花了点时间简单弄了一个实现该功能的开源库,命名为Colorful。Colorful是基于Theme,无需重启Acti...

2015-09-09 20:26:44 8589 15

翻译 使用Mockito对异步方法进行单元测试

之前我拍着胸脯承诺要维护的我博客,因此才有了这篇文章。但是请忘记我的那些承诺,我今天要写的是关于Mockito,这是一个当你写单元测试时经常会用到的对象Mock框架。

2015-08-03 13:54:05 10516 5

原创 Android系统架构之微服务架构

前段时间我们翻译的《软件架构模式》( 完整书籍的地址 ) 对外发布之后得到了大家的一致好评,书中讲述了五种经典、流行的软件架构模式,同时分析了五种模式的实现、优缺点等,为我们的开发工作提供了很有价值的指导。但是《软件架构模式》的问题

2015-06-01 10:26:27 13556 4

原创 AndroidEventBus V1.0.4版发布啦

新版特性 支持Sticky事件; 弱引用持有订阅者,无需手动unregister,避免内存泄露。

2015-05-28 08:22:52 4735 6

原创 Ted Mosby - 一个MVP框架的软件架构

MVP软件架构的重量级文章

2015-05-28 08:20:01 8951 5

翻译 Swift Core Graphics教程之Gradients 与 Context

为Xcode 6.3 和 Swift1.2更新欢迎回到我们的Swift核心绘图教程系列!

2015-05-27 08:25:17 3542 0

原创 开发技术前线 第十一期

高质量的Android、iOS技术文章

2015-05-25 11:28:21 3923 9

原创 Android布局优化之ViewStub、include、merge使用与源码分析

在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。 首先用得最多的应该是include,按照官方的意思,include就是为了解决重复定义相同布局的

2015-05-20 12:52:46 33993 28

翻译 Android 如何直播RTMP流

在android上,视频/音频流直播是极少有人关注的一部分。每当我们讨论流媒体,RTMP(Real Time Messaging Protocol)是不可或缺的。RTMP是一个基本的视频/音频直播流协议,但是不幸的是Android标准的VideoView不支持RTMP的播放。

2015-05-14 11:55:37 15095 11

原创 Android应用内社区SDK技术架构浅析

简单来说,友盟的微社区就是一款帮助开发者在应用中快速搭建一个社区( 类似于新浪微博、朋友圈 )的产品。在很多应用中,开发商往往都会需要一个用户之间以及用户与开发商之间互动的社区,用户往往又会在社区里选择赞、评论、关注、转发、发帖等各种互动方式。

2015-05-08 18:11:53 5797 3

原创 开发技术前线 第八期 周报

开发技术前线 第八期 周报Android 领域技术文章Android 进行单元测试难在哪-序自定义DrawablesSupport Libraries v22.1.0检测Android应用的启动与关闭开始学习Material-Design如何在Android上响应各种信息通知iOS 领域技术文章使...

2015-05-08 12:32:39 2553 0

原创 NotRxJava懒人专用指南-RxJava的演进过程

这不是一个简单的入门指南,而是告诉你RxJava是如何演变过来的,一步一步教你实现一个简单的RxJava

2015-05-07 10:20:27 6198 3

原创 开发技术前线 第七期 周报

文章来自 开发技术前线 www.devtf.cn 。开发技术前线 第七期 。

2015-04-24 19:41:04 2780 2

翻译 软件架构模式之分层架构

对程序员来说很常见一种情况是在没有合理的程序架构时就开始编程,没有一个清晰的和定义好的架构的时候,大多数开发者和架构师通常会使用标准式的传统分层架构模式(也被称为多层架构)——通过将源码模块分割为几个不同的层到不同的包中。不幸的是,这种编码方式会导致一系列没有组织性的代码模块,这些模块缺乏明确的规...

2015-04-19 23:53:59 30284 9

原创 开发技术前线 第六期

Android 应用性能优化系列 那些年我们错过的响应式编程 深入理解Content Transition (part 2) Kotlin for Android (III) 扩展函数与默认值 功能测试框架 espresso 如何在本地搭建一个Android应用crashing跟踪系统-ACRA ...

2015-04-16 22:10:13 2596 0

原创 Android开发技术前线 (android-tech-frontier) --优质技术文章的聚合项目

Android开发技术前线 ( android-tech-frontier )Android开发技术前线一个定期翻译、发布国内外Android优质的技术、开源库、软件架构设计、测试等文章的开源项目,让我们的技术跟上国际步伐。

2015-04-12 18:18:25 6863 10

翻译 FaceBook推出的Android图片加载库-Fresco

FaceBook推出的Android图片加载库-Fresco 在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。

2015-04-08 17:32:43 4458 8

翻译 符合Material Design的抽屉导航效果

现在看来,抽屉式导航[已经成为主流导航模式之一](http://goo.gl/w4FVWS)。尽管广受批评,但我还是很喜欢该样式,因此我决定在我写的几个app上添加这个控件。这篇文章想通过介绍我觉得抽屉式导航有趣的地方,帮助阅读本文的 Android 开发者们学习到一些知识,同时从其他人的评论中学...

2015-04-08 17:29:56 5481 5

提示
确定要删除当前文章?
取消 删除