装箱百万奖金,第六届全国工业互联网数据创新应用大赛火热报名中! 了解详情
写点什么

如何提升 Android 应用的性能

  • 2015-06-22
  • 本文字数:722 字

    阅读完需:约 2 分钟

性能是移动应用的关键。谷歌提供了许多提升 Android 应用性能的培训资料。本文简单概括了其中的技巧和技术。

作为提升性能的一个综合方法,需要做好以下几个方面的基础工作:

将这些资料全部掌握非常困难,因此,写过多本 Android 开发相关书籍的 Shane Conder 和 Lauren Darcey提出了几项建议,包括:

  • 运用良好的编码实践
  • 不要使用主线程阻塞操作
  • 确保布局简单优雅
  • 针对设备裁剪资源
  • 使用 traceview 和其它性能分析工具

在开发应用时,这些建议可以预先提供帮助。但当应用几乎已经开发完成,却发现性能不尽人意,该怎么办呢?Tutsplus 的 Jessica Thornsby指出了三个容易检查的关键方面:

  • “过度绘制(overdraw)”:这在 GPU 绘制完背景后再在上面绘制其它图形工件时就会发生。过度绘制太多会杀死应用的性能。Android 支持“GPU 过度绘制调试”模式,高亮过度绘制区域,使用不同的颜色展示重复绘制的次数。这样,开发者就有了线索,知道应该修改哪个区域。
  • 渲染管道:UI 渲染耗时与层次中的视图数量成正比。 Android SDK 层次查看器可以帮助开发者检查视图层次,找出将其扁平化的方法。它还提供了有关每个视图渲染消耗多少时间的性能分析信息。
  • 内存泄露:尽管有垃圾收集,但 Android 并不能免于内存泄露。Android Studio 中内置的 Android内存监视器允许开发者查看应用使用了多少内存。 Android 设备监视器的 Heap 选项卡是另一款有助于解决内存泄露的工具。关于哪个对象真正地占用了设备内存,它提供了更多细节信息。

最后,简化应用 UI被认为是Jeannie Liou 提出的最重要的性能提升建议。他指出,在组织视图时,使用相对布局要优于线性布局。

查看英文原文: How to Improve Android App Performance

2015-06-22 07:082926
用户头像

发布了 1008 篇内容, 共 346.5 次阅读, 收获喜欢 330 次。

关注

评论

发布
暂无评论
发现更多内容

基于迁移学习的非侵入式负荷识别

白日梦

程序员有了这些工具,还用加班吗

刘祥

LabVIEW设计自定义指示灯和按钮控件

不脱发的程序猿

LabVIEW 自定义控件方法

Flink 实践教程-进阶(9):自定义表值函数(UDTF)

腾讯云大数据

flink sql 流计算 Oceanus

架构训练营模块五

刘帅

算法训练营毕业总结

白开水又一杯

算法训练营

浏览器中的页面

Tristan

我们不太可能一直存在着失控的人生,我们要做的是,让拥有自控力的时间长一点,让失控的日子短一点。

叶小鍵

明道云2022年春季校园招聘启动啦!

明道云

【网络安全】brainpan-windows缓冲区溢出详解

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

多场景推进 服务网格在联通的落地实践(上)

百度大脑

如何基于实时声纹变声实现对声音的“克隆”

声网

人工智能 音视频 声纹识别

Flutter 列表下拉刷新和上拉加载实现

岛上码农

flutter ios 安卓 移动端开发 3月月更

2022年软考时间是怎么安排的,有哪些工种可以选择?如何备考?

Ethereal

Python 中的函数式编程三大法宝:map、filter、reduce

踏雪痕

Python map reduce 3月程序媛福利 3月月更

redis持久化机制

喀拉峻

网络安全

camtasia studio2022更新内容介绍

茶色酒

智慧停车场-车牌识别自动计费系统

DS小龙哥

车牌识别 3月月更

如何在 Ubuntu 20.04 上安装和配置 NFS 服务器?

Ethereal

如何使用帆软BI直接分析明道云数据

明道云

开源|携程机票BDD-UI测试框架Flybirds

liang chen

开源 自动化测试框架 BDD UI自动化

硬件工程师实用工具网站

不脱发的程序猿

嵌入式 智能硬件 电路设计 硬件工程师 实用工具网站

模块五作业

achilles

Java中的异常

javaadu

Java 面试题 Java面试题

ICT的圣杯(一):人形电脑天使心

脑极体

什么是数据中心虚拟化?

Ethereal

什么是数据中心架构?

Ethereal

Redis集群架构剖析(1):认识cluster

非晓为骁

redis redis cluster 分布式,

遵循Promises/A+规范,手把手带你实现Promise源码(核心篇)

战场小包

JavaScript 前端 Promise 3月月更

数据分析小结:使用流计算 Oceanus(Flink) SQL 作业进行数据类型转换

腾讯云大数据

流计算 flink window

Flink 实践教程-进阶(10):自定义聚合函数(UDAF)

腾讯云大数据

flink sql 流计算 Oceanus

如何提升Android应用的性能_Android_Sergio De Simone_InfoQ精选文章