摘要: 欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 一. 前言 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。而往往获取用户的成本是高昂的,因此因为性能问题阅读全文
posted @ 2018-06-05 15:37 BaronZhang 阅读(331) 评论(0) 编辑
摘要: 一道 Google 面试题告诉你如何破局而出,快速成长为优秀工程师!阅读全文
posted @ 2018-04-25 15:15 BaronZhang 阅读(965) 评论(42) 编辑
摘要: 写给 Android 应用工程师的 Binder 原理剖析 一. 前言 这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依旧战战阅读全文
posted @ 2018-04-10 23:11 BaronZhang 阅读(1112) 评论(3) 编辑
摘要: 首发于《程序员》杂志五月刊 一、前言 万维网发明人 Tim Berners-Lee 谈到设计原理时说过:“简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。” 由此可见模块化之于软件工程领域的重要性。 从 2016 年开始,模块化在 Android 社区越来越多的被提及。随着移动平台的不阅读全文
posted @ 2017-05-16 14:35 BaronZhang 阅读(10226) 评论(0) 编辑
摘要: 本文已授权微信公众号 AndroidDeveloper 独家发布。 入职安居客三年从工程师到Team Leader,见证了Android团队一路走来的发展历程。因此有心将这些记录下来与大家分享,也算是对自己三年来一部分工作的总结。希望对大家有所帮助,更希望能得到大家宝贵的建议。 一、三网合并 三年前阅读全文
posted @ 2017-02-25 16:03 BaronZhang 阅读(3919) 评论(22) 编辑
摘要: 欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 一. 前言 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。而往往获取用户的成本是高昂的,因此因为性能问题阅读全文
posted @ 2018-06-05 15:37 BaronZhang 阅读(331) 评论(0) 编辑
摘要: 一道 Google 面试题告诉你如何破局而出,快速成长为优秀工程师!阅读全文
posted @ 2018-04-25 15:15 BaronZhang 阅读(965) 评论(42) 编辑
摘要: 写给 Android 应用工程师的 Binder 原理剖析 一. 前言 这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依旧战战阅读全文
posted @ 2018-04-10 23:11 BaronZhang 阅读(1112) 评论(3) 编辑
摘要: 首发于《程序员》杂志五月刊 一、前言 万维网发明人 Tim Berners-Lee 谈到设计原理时说过:“简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。” 由此可见模块化之于软件工程领域的重要性。 从 2016 年开始,模块化在 Android 社区越来越多的被提及。随着移动平台的不阅读全文
posted @ 2017-05-16 14:35 BaronZhang 阅读(10226) 评论(0) 编辑
摘要: 最近公司项目需要在WebView上调用手机系统相册来上传图片,开发过程中发现在很多机器上无法正常唤起系统相册来选择图片。解决问题之前我们先来说说WebView上传文件的逻辑:当我们在Web页面上点击选择文件的控件()时,会回调WebChromeClient下的openFileCho...阅读全文
posted @ 2017-03-02 16:09 BaronZhang 阅读(85) 评论(0) 编辑
摘要: 前言在过去的文章中我介绍过Java8的一些新特性,包括:Java8新特性第1章(Lambda表达式)Java8新特性第2章(接口默认方法)Java8新特性第3章(Stream API)之前由于Android平台不支持Java8,如果我们想在Android项目中使用Lambda表达式...阅读全文
posted @ 2017-03-02 15:47 BaronZhang 阅读(37) 评论(0) 编辑
摘要: Stream作为Java8的新特性之一,他与Java IO包中的InputStream和OutputStream完全不是一个概念。Java8中的Stream是对集合功能的一种增强,主要用于对集合对象进行各种非常便利高效的聚合和大批量数据的操作。结合Lambda表达式可以极大的提高开...阅读全文
posted @ 2017-03-02 15:45 BaronZhang 阅读(25) 评论(0) 编辑
摘要: 在Java中一个接口一旦发布就已经被定型,除非我们能够一次性的更新所有该接口的实现,否者在接口的添加新方法将会破坏现有接口的实现。默认方法就是为了解决这一问题的,这样接口在发布之后依然能够继续演化。默认方法就是向接口增加新的行为。它是一种新的方法:接口方法可以是抽象的或者是默认的。...阅读全文
posted @ 2017-03-02 15:44 BaronZhang 阅读(18) 评论(0) 编辑
摘要: 在介绍Lambda表达式之前,我们先来看只有单个方法的Interface(通常我们称之为回调接口):public interface OnClickListener { void onClick(View v);}我们是这样使用它的:button.setOnClickList...阅读全文
posted @ 2017-03-02 15:41 BaronZhang 阅读(34) 评论(0) 编辑
摘要: 文章中的例子和思路均来自于《Head First》场景我们接到一个来自气象局的需求:气象局需要我们构建一套系统,这系统有两个公告牌,分别用于显示当前的实时天气和未来几天的天气预报。当气象局发布新的天气数据(WeatherData)后,两个公告牌上显示的天气数据必须实时更新。气象...阅读全文
posted @ 2017-03-02 15:35 BaronZhang 阅读(50) 评论(0) 编辑