野火🔥

QDaily app连续crash处理方案
上周出现了一次MIUI8.0的开机crash情况,在已经提交应用市场审核后通过的前一刻发现并下架,但也惊出了一身冷汗,深刻感觉开机crash的保护方案尤其重要。以前有crash的保护方案,但只是在连续crash后进行本地缓存清理,而且在Android端一直做的不够,不能够处理很多复杂情况。事实证明,这半年出现过两次打开crash的情况(一次iPad,一次MIUI8.0),之前的保护方案都未能生效。本文先进行头脑风暴,画出思维导图,然后进行细化和测试。 思维导图先出梗概,之后慢慢进行两个系统的细化实现。 iOS实现代码Android的实现代码
Android M、N适配踩坑
我们上个月才决定开始进行Android M、N的集中适配,发现很多问题,在此一起进行总结。 首先我们把buildToolsVersion和compileSdkVersion都改为24,相关support的lib也都改为24.*,以此放开了适配,遇上了很多坑。 这里不是一个大而全的适配方案,仅仅是一个小app(好奇心日报)的适配总结。 Android N的适配主要为组内同事操刀,所以文内部分内容源于该同事的总结。 ps:此后统一博客文章的路由命名方式,改为文章创见时间命名,如“2016-11-20”,若当天有第二篇则顺序命名为“2016-11-20-1”,以此来统一化,避免未来路由失效问...
QDaily - Android MVP改造
演进式框架设计。使得工程未来更有设计感和易于维护。上个月事情多,周末好多时间都周转于河北天津,而且有点懈怠,以后博客继续更新。 整个改造思路来源于google的Android Architecture Blueprints,google这个框架名字就非常霸气,Android架构蓝图,有了这个做参考,给了架构设计一个非常指导性的建议。 比较MVC和MVP。 MVP到底是什么 MVC来源于J2EE(web开发)的一个概念,Model就是一个数据实体,controller在逻辑处理完成后,通知View该更新了,view取model的最新值进行更新。MVC三个对象互相持有依赖。 主要来源于...
QDaily app流量和文章打开速度优化--js和css的加载逻辑
本文属于“好奇心日报app的流量和文章打开速度优化”系列文章第二篇,主要介绍为实现文章尽快的打开速度而进行的js和css的预载和缓存以及重用的逻辑。 整篇代码均为Objective-C,Android可以参考书写。 前言好奇心日报所有文章都是自产,js和css文件在所有文章中都使用的一套进行逻辑和样式处理。在每次前端同事修改了js或者css代码后,会给该文件直接生成一个64位的hashcode附在其后,以区分不同版本,用于浏览器端更新使用,例如: http://app3.qdaily.com/assets/app3/common-bc6aa258d92609720eb97f34f86...
【Android&iOS】QDaily基于WebP的流量优化实践
本文属于“好奇心日报app的流量和文章打开速度优化”系列文章第一篇,主要介绍基于图片压缩的流量优化。流量优化对于一个app来讲意义非常重大,能节约用户的流量,节约用户的存储空间,而且能有提高网络请求的回包速度,提高app的速度。因此流量优化历来都是app的优化重点,而且是一个持续优化的点。 QDaily是一个多图片的新闻类应用,采编喜欢上传gif图来提高内容的表现力,这也使得流量消耗非常大。粗略估计,用户在浏览完第一页所有新闻(共48篇),会消耗流量达100m,其中98m为图片,这里值得优化的空间非常大。 针对这种情况,我们先后使用的优化包含:wifi条件下预载所有文章、图片和js、c...