安居客 Android APP 走向平台化

2019-10-22
阅读 8 分钟
6.2k
安居客 Android App 距离上次的模块化/组件化重构已经两年多了,重构之后很好的支撑了两年多以来的业务发展。但这个世界总是在向前走的,没有任何一种架构能够一劳永逸的解决所有问题,外部环境的不断变化相应的也要求项目架构做出改变,以此来应对环境变化所带来的挑战。

深入理解Java虚拟机(自动内存管理机制)

2019-06-12
阅读 9 分钟
2k
书籍真的是常读常新,古人说「书读百遍其义自见」还是蛮有道理的。周志明老师的这本《深入理解 Java 虚拟机》我细读了不下三遍,每一次阅读都有新的收获,每一次阅读对 Java 虚拟机的理解就更进一步。因而萌生了将读书笔记整理成文的想法,一是想检验下自己的学习成果,对学习内容进行一次系统性的复盘;二是给还没接触...

Android 性能监控系列一(原理篇)

2018-06-05
阅读 3 分钟
6.4k
性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。而往往获取用户的成本是高昂的,因此因为性能问题导致用户流失的情况是我们要极力避免的,做不好这一点是我们开发人员的失职。

RxJava系列七(最佳实践)

2017-01-18
阅读 4 分钟
2.2k
转载请注明出处:[[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 有点标题党了,其实谈不上什么最佳实践。前段时间公司实行996,所以也没什么时间和精力来更...

RxJava系列六(从微观角度解读RxJava源码)

2017-01-18
阅读 19 分钟
2.9k
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 通过前面五个篇幅的介绍,相信大家对RxJava的基本使用以及操作符应该有了一定的认识。但是知...

RxJava系列五(组合操作符)

2017-01-18
阅读 9 分钟
3.8k
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 这一章我们接着介绍组合操作符,这类operators可以同时处理多个Observable来创建我们所需要的Obser...

RxJava系列四(过滤操作符)

2017-01-18
阅读 9 分钟
3.6k
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前面一篇文章中我们介绍了转换类操作符,那么这一章我们就来介绍下过滤类的操作符。顾名思义,这类...

RxJava系列三(转换操作符)

2017-01-18
阅读 6 分钟
2.2k
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前面两篇文章中我们介绍了RxJava的一些基本概念和RxJava最简单的用法。从这一章开始,我们开始聊聊...

RxJava系列二(基本概念及使用介绍)

2017-01-18
阅读 7 分钟
4.1k
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 上一篇的示例代码中大家一定发现了Observable这个类。从纯Java的观点看,Observable类源自于...

RxJava系列一(简介)

2017-01-17
阅读 4 分钟
4k
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 提升开发效率,降低维护成本一直是开发团队永恒不变的宗旨。近一年来国内的技术圈子中越来越...

观察者模式(ObserverPattern)

2017-01-17
阅读 6 分钟
2.9k
我们接到一个来自气象局的需求:气象局需要我们构建一套系统,这系统有两个公告牌,分别用于显示当前的实时天气和未来几天的天气预报。当气象局发布新的天气数据(WeatherData)后,两个公告牌上显示的天气数据必须实时更新。气象局同时要求我们保证程序拥有足够的可扩展性,因为后期随时可能要新增新的公告牌。

在Android项目中使用Java8

2017-01-17
阅读 3 分钟
4.1k
转载请注明出处:[链接] 前言 在过去的文章中我介绍过Java8的一些新特性,包括: Java8新特性第1章(Lambda表达式) Java8新特性第2章(接口默认方法) Java8新特性第3章(Stream API) 之前由于Android平台不支持Java8,如果我们想在Android项目中使用Lambda表达式、Stream API等Java8中的新特性就必须使用Retrolambda、Light...

Java8新特性第3章(Stream API)

2017-01-17
阅读 4 分钟
3.1k
Stream作为Java8的新特性之一,他与Java IO包中的InputStream和OutputStream完全不是一个概念。Java8中的Stream是对集合功能的一种增强,主要用于对集合对象进行各种非常便利高效的聚合和大批量数据的操作。结合Lambda表达式可以极大的提高开发效率和代码可读性。

Java8新特性第2章(接口默认方法)

2017-01-17
阅读 1 分钟
2.3k
在Java中一个接口一旦发布就已经被定型,除非我们能够一次性的更新所有该接口的实现,否者在接口的添加新方法将会破坏现有接口的实现。默认方法就是为了解决这一问题的,这样接口在发布之后依然能够继续演化。

Java8新特性第1章(Lambda表达式)

2017-01-17
阅读 5 分钟
2.3k
转载请注明出处:[链接] 在介绍Lambda表达式之前,我们先来看只有单个方法的Interface(通常我们称之为回调接口): {代码...} 我们是这样使用它的: {代码...} 这种回调模式在各种框架中非常流行,但是像上面这样的匿名内部类并不是一个好的选择,因为: 语法冗余; 匿名内部类中的this指针和变量容易产生误解; 无法捕...

神兵利器Dagger2

2017-01-05
阅读 13 分钟
9.2k
Dagger-匕首,鼎鼎大名的Square公司旗下又一把利刃(没错!还有一把黄油刀,唤作ButterKnife);故此给本篇取名神兵利器Dagger2。

RxJava系列番外篇:一个RxJava解决复杂业务逻辑的案例

2017-01-04
阅读 7 分钟
7.1k
之前写过一系列RxJava1的文章,也承诺过会尽快有RxJava2的介绍。无奈实际项目中还未真正的使用RxJava2,不敢妄动笔墨。所以这次还是给大家分享一个使用RxJava1解决问题的案例,希望对大家在使用RxJava的时候有一点点启发。对RxJava还不了解的同学可以先去看看我之前的RxJava系列文章: