Android性能优化指南

举报
yechaoa 发表于 2022/05/31 00:04:35 2022/05/31
【摘要】 我们在刚开始撸码的时候就应该考虑到这个问题,良好的性能优化会大大提高用户体验,也能让程序运行更持久(主要还是持久)。 首先,我们得保证程序不能崩,比如在获取网络数据的时候要判断接口是否有数据,就算服务器崩了,我们前台也不会崩。这就需要我们有良好的逻辑思维了,有个笨方法,是个变量就判断一下。 其次,在程序运行时我们要减少性能消耗,比如...

我们在刚开始撸码的时候就应该考虑到这个问题,良好的性能优化会大大提高用户体验,也能让程序运行更持久(主要还是持久)。

首先,我们得保证程序不能崩,比如在获取网络数据的时候要判断接口是否有数据,就算服务器崩了,我们前台也不会崩。这就需要我们有良好的逻辑思维了,有个笨方法,是个变量就判断一下。

其次,在程序运行时我们要减少性能消耗,比如在开发中需要刷新listview,很简单,但是如果数据很多呢,频繁的刷新岂不是很消耗性能,所以我们需要局部刷新来减少消耗。

然后就是我们在开发中需要注意到的:

1.布局优化

通俗点讲就是少点套路,尽量减少布局文件的层级,能让Dalvik运行时迅速找到控件。尽量使用LinearLayout和FrameLayout,RelativeLayout比较复杂,运行时会花费更多CPU时间。

2.绘制优化

不要在onDraw方法中创建新的对象,因为可能会被频繁的调用,会产生大量的临时对象,占用内存,降低效率。也不要在onDraw方法中做耗时任务。

3.响应速度优化

避免在主线程做耗时操作。这个大家应该都知道的,之前看的段子说,项目经理会要求哪里哪里睡几秒啊什么的,后期维护效果明显好拿钱,主要还是看需求了...

4.内存泄漏优化

就像是水龙头没有拧紧一样,一滴一滴,时间久了也能装满一桶。程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。

比如:

  • 广播注册没取消
  • 静态变量持有Activity的引用
  • 查询数据库后没有关闭cursor
  • 构造Adapter时,没有使用 convertView 重用
  • Bitmap对象不使用时没有释放内存
5.线程优化
尽量使用线程池,避免程序中出现大量的Thread,减少性能开销。


使用ADT自带工具DDMS可以检测内存泄漏,MAT工具也可以,地址http://download.eclipse.org/mat/1.3/update-site
使用方法网上有很多大笑


文章来源: blog.csdn.net,作者:yechaoa,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/yechaoa/article/details/52105593

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。