友盟 +U-APM分享:Android应用性能优化

  随着Android开发越来越趋于完善,工程师的开发水平以及用户对产品的要求也日益增长,所以对于开发质量的要求,甚至有点不近人情的苛刻。内存优化、UI卡顿优化、App监控崩溃等性能调优,也逐渐成为了中高级开发者的必备技能。

  很多Android工程师,对于性能优化相关内容都还不够熟悉,为了让大家更好地掌握性能优化技能,bugly和友盟+U-APM都是帮助大家进行APP性能优化的平台,两款产品相比较来说,还是友盟+U-APM使用起来更好用一些,从后台来看,U-APM的功能项是很多的,而且可筛选的维度上很细致。

  今天在这里给大家分享友盟+U-APM是如何对Android进行性能优化的。

  一、 Android应用性能的指标主要有:

  1、布局复杂度:

  布局复杂会导致布局需要更长的时间,从而导致进入应用慢、页面切换慢;

  2、耗电量:

  耗电量大会导致机器发热、缩短机器的有效使用时长;

  3、内存:

  内存消耗大会导致频繁GC,GC时会暂停其它工作,导致页面卡顿;内存泄露会导致剩余可用内存越来越小;内存不足会导致应用异常;

  启动:

  从心理学角度而言,越快的启动速度往往给用户以性能好,高效可靠的心理暗示,这就很容易让用户对其产生好感,为你后面打动用户留下了余地。

  优化步骤

  布局优化

  •减少布局的层级,合理的使用include,merge,ViewStub;

  •自定义组件的onDraw()中避免大量创建临时对象,比如String,以免频繁触发GC;

  •自定义组件的onDraw()中,考虑使用canvas.clipRect()绘制需要被绘制的区域;

  •对像ListView这样的组件容器,考虑使用convertView,使用ViewHolder;

  •考虑使用性能更高的组件,比如推荐使用RecycleView来代替ListView,使用staticlayout来实现自动换行。

  电量优化

  •减少唤醒屏幕的次数与持续的时间,正确的使用WakeLock;

  •延迟非必须的操作到充电状态时,比如日志上报完全可以在夜间充电时完成,这点可以结合JobScheduler使用;

  •使用传感器采集数据时,一旦不需要记得取消注册;

  •减少网络通信,合并通信;

  •合理使用定位功能,减少位置更新频率以及根据实际情况使用不同精度的定位需求。

  内存优化

  •主动的释放内存,在onLowMemory()和onTrimMemory()中适当的释放内存;

  •避免内存泄漏和内存溢出;

  •在使用Bitmap的时候,考虑对其进行压缩,使用缓存或者改变颜色模式,比如android默认的颜色格式是ARGB_8888,在要求不高的情况下可以采用RGB__565,这样每个像素1占用的内存就可懂4byte到2byte;

  •减少帧动画的使用,如果需要,通过SurfaceView实现;

  •使用更轻量级的数据结构,比如ArrayMap/SparseArray;

  •合理的使用相关组件,比如Service和Webview,在不需要的时候主动结束其生命周期;

  •合理的使用多进程,比如像音乐播放器类,可以分为主进程和播放进程;

  •使用异步队列时考虑有界队列;

  •如果你能明确知道HashMap的大小,那就再初始化时为其制定容量。

  启动优化:

  •Activity的onCreate()中减少复杂和耗时的操作;

  •Application的onCreate(),attachBaseContext()中同样减少复杂和耗时的操作,但是对于很多App在此处会执行大量组件和服务的初始化操作,如果可能考虑并行初始化;

  •提供自定义启动窗口,比如将一张图片通过设置主题的方式显示为启动窗口;

  •优化布局

  这篇文章分析了Android应用性能的布局、耗电量、内存以及启动,平时开发中,大部分同学可能都是做业务需求为主,对于这些问题,可能不太注重,大家可以借助第三方平台友盟+U-APM,对APP性能缺陷进行查找,帮你更快解决问题。另外友盟+U-APM还提供云真机测试能力,助力开发者从研发测试质量验收到线上问题复现排查,保障应用品质,提升测试效率。在云真机测试期间自动采集崩溃信息,提供详尽的崩溃报告协助筛查,真正实现监控测试全流程深度打通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值