加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Android APP 机能优化的一些思索

发布时间:2019-09-17 15:19:56 所属栏目:业界 来源:斜杠Allen
导读:说到 Android 体系手机,大部门人的印象是用了一段时刻就变得有点卡顿,有些措施在运行时代莫名其妙的呈现瓦解,打开体系文件夹一看,发明多了许多文件,然后用手机管家 APP 不绝地举办整理优化 ,才感受运行速率轻微进步了点,就算手机在各类机能跑分软件
副问题[/!--empirenews.page--]

说到 Android 体系手机,大部门人的印象是用了一段时刻就变得有点卡顿,有些措施在运行时代莫名其妙的呈现瓦解,打开体系文件夹一看,发明多了许多文件,然后用手机管家 APP 不绝地举办整理优化 ,才感受运行速率轻微进步了点,就算手机在各类机能跑分软件眼前分数遥遥领先,照旧感受无论有多大的内存空间都远远不足用。信托每个行使 Android 体系的用户都有过以上相同经验,确实,Android 体系在流通性方面不如 IOS 体系,为何呢,显着在看手机硬件设置上时,Android 装备都不会输于 IOS 装备,乃至都强于它,要害是在于软件上。造成这种征象的缘故起因是多方面的,简朴摆列几点如下:

着实连年来,跟着 Android 版本不绝迭代,Google 提供的Android 体系已经越来越流通,可是在海内大部门用户用的 Android 手机系是各大厂商定制过的版本,每每不是最新的原生体系内核,也许绝大大都还逗留在较老的Android版本,更新存在耽误性。

因为 Android 体系源码是开放的,每小我私人只要遵从响应的协议,就可以对源码举办修改,那么海内各个厂商就把基于 Android 源码改革本钱身对外宣布的体系,好比我们认识的小米手机 Miui 体系、华为手机 EMUI 体系、Oppo 手机 ColorOS 体系等。因为每个厂商都修悔改 Android 原生体系源码,这内里就会激发一个题目,那就是闻名的Android 碎片化题目,本质就是差异 Android 体系的应用兼容性差异,达不到同等性。

因为存在着各类 Android 碎片化和兼容性题目,导致 Android 开拓者在开拓应用时必要对差异体系举办适配,同时每个 Android 开拓者的开拓程度东倒西歪,写出来的应用机能也都存在差异范例的题目,导致用户在行使进程顶用户体验感觉差异,那么有些题目用户就会转化为 Android 体系题目,进而影响对Android 手机的评价。

机能优化

本日想说的重点是Android APP 机能优化,也就是在开拓应用措施时应该留意的点有哪些,怎样更好地进步用户体验。一个好的应用,除了要有吸引人的成果和交互之外,在机能上也应该有高的要求,即时应用很是具有特色,在产物前期也许吸引了部门用户,可是用户体验欠好的话,也会给产物带来欠好的口碑。那么一个好的应用应该怎样界说呢?首要有以下三方面:

  • 营业/成果
  • 切合逻辑的交互
  • 优越的机能

众所周知,Android 体系作为以移动装备为主的操纵体系,硬件设置是有必然的限定的,固然设置此刻越来越高级,但如故无法与 PC 对比,在 CPU 和内存上行使不公道可能淹灭资源多时,就会遇到内存不敷导致的不变性题目、CPU 耗损太多导致的卡顿题目等。

面临题目时,各人想到的都是接洽用户,然后查察日记,但殊不知有关机能类题目的反馈,缘故起因也很是难找,日记大多用处不大,为何呢?由于机能题目大部门长短必现的题目,题目定位很难复现,而又没有要害的日记,虽然就无法找到缘故起因了。这些题目很是影响用户体验和成果行使,以是相识一些机能优化的一些办理方案就显得很重要了,并在现实的项目中优化我们的应用,进而进步用户体验。

四个方面

可以把用户体验的机能题目首要总结为4个种别:

  • 流通
  • 不变
  • 省电、省流量
  • 安装包小

机能题目的首要缘故起因是什么,缘故起因有沟通的,也有差异的,但归根到底,不过乎内存行使、代码服从、吻合的计策逻辑、代码质量、安装包体积这一类题目,清算归类如下:

Android APP 机能优化的一些思索

从图中可以看到,打造一个高质量的应用应该以4个偏向为方针:快、稳、省、小。

  • 快:行使时停止呈现卡顿,相应速率快,减罕用户守候的时刻,满意用户祈望。
  • 稳:减低 crash 率和 ANR 率,不要在用户行使进程中瓦解和无相应。
  • 省:节减流量和耗电,减罕用户行使本钱,停止行使时导致手机发烫。
  • 小:安装包小可以低落用户的安装本钱。

要想到达这4个方针,详细实现是在右边框里的题目:卡顿、内存行使不公道、代码质量差、代码逻辑乱、安装包过大,这些题目也是在开拓进程中遇到最多的题目,在实现营业需求同时,也必要思量到这点,多花时刻去思索,怎样停止成果完成后再来做优化,否则的话等成果实现后带来的维护本钱会增进。

卡顿优化

Android 应用启动慢,行使时常常卡顿,长短常影响用户体验的,应该只管停止呈现。卡顿的场景有许多,按场景可以分为4类:UI 绘制、应用启动、页面跳转、变乱相应,如图:

Android APP 机能优化的一些思索

这4种卡顿场景的基础缘故起因可以分为两大类:

  • 界面绘制。首要缘故起因是绘制的层级深、页脸蛋大、革新不公道,因为这些缘故起因导致卡顿的场景更多呈此刻 UI 和启动后的初始界面以及跳转到页面的绘制上。
  • 数据处理赏罚。导致这种卡顿场景的缘故起因是数据处理赏罚量太大,一样平常分为三种环境,一是数据在处理赏罚 UI 线程,二是数据处理赏罚占用 CPU 高,导致主线程拿不到时刻片,三是内存增进导致 GC 频仍,从而引起卡顿。

引起卡顿的缘故起因许多,但不管怎么样的缘故起因和场景,最终都是通过装备屏幕上表现来到达用户,归根到底就是表现有题目,以是,要办理卡顿,就要先相识 Android 体系的表现道理。

Android体系表现道理

Android 表现进程可以简朴归纳综合为:Android 应用措施把颠末丈量、机关、绘制后的 surface 缓存数据,通过 SurfaceFlinger 把数据渲染到表现屏幕上, 通过 Android 的革新机制来革新数据。也就是说应用层认真绘制,体系层认真渲染,通过历程间通讯把应用层必要绘制的数据转达到体系层处事,体系层处事通过革新机制把数据更新到屏幕上。

我们都知道在 Android 的每个 View 绘制中有三个焦点步调:Measure、Layout、Draw。详细实现是从 ViewRootImp 类的performTraversals() 要领开始执行,Measure 和 Layout都是通过递回来获取 View 的巨细和位置,而且以深度作为优先级,可以看出层级越深、元素越多、耗时也就越长。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读