发布了文章2020-05-10
最近 Ubuntu 发布了 20.04 LTS 版本,我也在第一时间安装体验。由于各种 Linux 发行版本并不像 MacOS、Windows 一样开箱即用,因此需要做很多配置。每次配置都需要查阅各种资料,虽然网络上有很多配置文章,但基本上都会存在一些问题:
发布了文章2020-05-07
最近 Ubuntu 发布了 20.04 LTS 版本,我也在第一时间安装体验。由于各种 Linux 发行版本并不像 MacOS、Windows 一样开箱即用,因此需要做很多配置。每次配置都需要查阅各种资料,虽然网络上有很多配置文章,但基本上都会存在一些问题:
发布了文章2019-10-22
安居客 Android App 距离上次的模块化/组件化重构已经两年多了,重构之后很好的支撑了两年多以来的业务发展。但这个世界总是在向前走的,没有任何一种架构能够一劳永逸的解决所有问题,外部环境的不断变化相应的也要求项目架构做出改变,以此来应对环境变化所带来的...
发布了文章2019-09-30
每年的八九月份都是各大厂商发布年自己旗舰机的时候,最近 vivo、oppo、小米、华为、苹果接连发布了自己的年度旗舰,这当中除了苹果,其它厂商均发布了 5G 版本手机。恰逢国庆,势必会迎来一波换机潮,而各大厂商发布的 5G 手机很可能会成为很多同学的首选,今天我要...
发布了文章2019-06-12
书籍真的是常读常新,古人说「书读百遍其义自见」还是蛮有道理的。周志明老师的这本《深入理解 Java 虚拟机》我细读了不下三遍,每一次阅读都有新的收获,每一次阅读对 Java 虚拟机的理解就更进一步。因而萌生了将读书笔记整理成文的想法,一是想检验下自己的学习成...
发布了文章2018-06-05
性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。而往往获取用户的成本是高昂的,因此因为性能问题导致用户流失的情况是我们要极力避...
赞了文章2018-04-27
App在后台久置后,再次从桌面或最近的任务列表唤醒时经常会发生崩溃,这往往是App在后台被系统杀死,再次恢复的时候遇到了问题,而在使用FragmentActivity+Fragment的时候会更加频繁。比如,如果Fragment没有提供默认构造方法,就会在重建的时候因为反射创建Fragment...
发布了文章2018-04-25
我相信每个工程师都曾怀揣一个成为技术大牛的梦想,可是真正走向技术大牛这条路的少之又少。工作中我们常常会发现,有些同学工作没几年但成长迅速;很快就能走向团队核心岗位,成为一名优秀的工程师;而有些同学工作几年后却在公司里默默无闻,能力和职位上都没有太...
发布了文章2018-04-10
这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依旧战战兢兢。
发布了文章2017-05-17
万维网发明人 Tim Berners-Lee 谈到设计原理时说过:“简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。” 由此可见模块化之于软件工程领域的重要性。
发布了文章2017-02-24
入职安居客三年从工程师到Team Leader,见证了Android团队一路走来的发展历程。因此有心将这些记录下来与大家分享,也算是对自己三年来一部分工作的总结。希望对大家有所帮助,更希望能得到大家宝贵的建议。
发布了文章2017-01-18
转载请注明出处:[[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 有点标题党了,其实谈不上什么最佳实践...
发布了文章2017-01-18
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 通过前面五个篇幅的介绍,相信大家对RxJ...
发布了文章2017-01-18
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 这一章我们接着介绍组合操作符,这类operator...
发布了文章2017-01-18
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前面一篇文章中我们介绍了转换类操作符,那么...
发布了文章2017-01-18
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前面两篇文章中我们介绍了RxJava的一些基本概...
发布了文章2017-01-18
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 上一篇的示例代码中大家一定发现了Obser...
发布了文章2017-01-17
转载请注明出处:[链接] RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 提升开发效率,降低维护成本一直是开发...
发布了文章2017-01-17
我们接到一个来自气象局的需求:气象局需要我们构建一套系统,这系统有两个公告牌,分别用于显示当前的实时天气和未来几天的天气预报。当气象局发布新的天气数据(WeatherData)后,两个公告牌上显示的天气数据必须实时更新。气象局同时要求我们保证程序拥有足够的可...
发布了文章2017-01-17
解决问题之前我们先来说说WebView上传文件的逻辑:当我们在Web页面上点击选择文件的控件(<input type="file">)时,会回调WebChromeClient下的openFileChooser()(5.0及以上系统回调onShowFileChooser())。这个时候我们在openFileChooser方法中通过Intent打开...