BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Instagram性能优化之道

| 作者 谢丽 关注 9 他的粉丝 发布于 2014年11月6日. 估计阅读时间: 2 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

@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)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT