Instagram性能优化之道

@scale 2014大会上,Instagram工程师Tyler Kieft做了题为《普通安卓设备上的Instagram》的演讲,介绍其团队如何针对普通手机(相对高端手机而言)重新思考Instagram的设计。Highscalability.com据此报道了Instagram的性能优化之道。

\\

转向扁平化设计

\\

在开发新版本的Android应用时,Instagram团队借鉴了开发iOS7应用时的扁平化设计经验,从以下几个方面做了改进:

\\
  • 去掉了所有的渐变色和光滑的按钮,用轮廓形状代替。\\
  • 去掉了评论图标,使评论可以充分利用屏幕宽度,显示更多内容。\\
  • 为拍照功能创建了不同的布局。在小屏幕手机上,拍照按钮在屏幕上方;在大屏幕手机上,则是在下方。\\
  • 去掉了应用中所有不必要的UI,更注重内容的展示。\

这样做的好处是:

\\
  • 资源传输减少,这意味着APK文件更小。借助“资源着色(Asset Tinting)”技术,图像可以通过编程进行着色。\\
  • 资源加载减少,这意味着UI显示速度更快,内存使用更少。\\
  • 迭代速度更快。如果开发人员想改变颜色,只需改变代码并重新编译,而不再需要设计人员参与。\

扁平化设计使Instagram在所有设备上的启动时间减少了120毫秒。而且,整个应用的运行速度都更快了。

\\

缩短冷启动时间

\\

冷启动时间是指从应用开始启动到可以响应用户请求这段时间。为了缩短冷启动时间,提高冷启动速度,增强用户体验,Instagram团队采取了如下措施:

\\
  • 性能分析——反复对应用进行性能分析,找出增加应用冷启动时间的原因。通过延迟加载、重写速度慢的代码、将可以后台完成的任务交由后台线程处理等方法消除性能瓶颈。\\
  • 单例实例与UI分两部分并行加载, UI无需等到前者加载完成就可以显示。\\
  • 将Newsview由Webview改为原生控件。仅此一项就使冷启动时间缩短了30%。\

通过上述改进,Instagram在低端Galaxy Y上的启动时间由3秒降至1.5秒,在高端Galaxy S5上的启动时间由750毫秒降至400毫秒。


感谢郭蕾对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值