2017.03.12 Android卡顿分析

作者: 图乐 | 来源:发表于2017-03-12 14:19 被阅读92次

欢迎访问[Android日记][1],如有转载请注明Android日记 http://androiddiary.site
2017.3.12 周日 晴 北京

写日记

记录读书笔记

卡顿

    Android应用启动慢,使用时经常卡顿,是非常影响用户体验的,应该尽量避免出现。卡顿的场景有很多,按场景可以分成4类:UI绘制、应用启动、页面跳转、事件响应。在这四种场景下又有多个小分类,基本上覆盖了卡顿的各个场景。

  • UI:绘制、刷新
  • 启动:安装启动、冷启动、热气的
  • 跳转:页面切换、前后台切换
  • 响应:按键、系统事件、滑动

    这4种卡顿场景的根本原因又可以分成两大类。

  • 界面绘制:主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景更多出现在UI和启动后的初始界面以及跳转到页面的绘制上。
  • 数据处理:导致这种卡顿场景的原因是数据处理量太大,一般分为三种情况,一是数据处理在UI线程(这种应该避免),二是数据处理占用CPU高,导致主线程拿不到时间片,三是内存增加导致GC频繁,从而引起卡顿。
    引起卡顿的原因有很多,但不管怎么样的原因和场景,最终都是通过设备屏幕上的显示来到达用户,归根到底就是显示有问题,所以,要解决卡顿,就要先了解Android系统的显示原理。

显示原理

    Android的显示过程可以简单概括为:Android应用程序发起绘制任务经过测量、布局、绘制后的surface缓存数据,通过SurfaceFlinger把数据渲染到显示屏幕上,通过Android的刷新机制来刷新数据。也就是说应用层负责绘制,系统层负责渲染,通过进程间通信把应用层需要绘制的数据传递到系统层服务,系统层中的SurfaceFlinger服务通过刷新机制把数据更新到屏幕。
    Android的图形显示系统采用的是Client/Server架构。SurfaceFlinger(Server)由C++代码编写。Client端代码分为两部分,一部分是由Java提供给应用使用的API,另一部分则是由C++写成的底层具体实现。

相关文章

  • 2017.03.12 Android卡顿分析

    欢迎访问[Android日记][1],如有转载请注明Android日记 http://androiddiary.s...

  • Android开发页面帧率优化有感

    Android APP 优化工具分析Android App优化之消除卡顿Android性能优化:卡顿优化Andro...

  • Android 内存泄漏总结

    Android 性能相关知识 Android性能之 内存泄漏总结 Android性能之 卡顿分析解决 Androi...

  • Android 卡顿分析

    卡顿原因 造成Android系统卡顿的原因有很多,但是追根究底都会反映在cpu时间上.通过分析内存信息和cpu信息...

  • Android 卡顿分析

    卡顿 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。Android系统每隔大概16.6ms发出VS...

  • Android卡顿分析

    一、卡顿原因 屏幕1秒60帧,平均每帧16.6毫秒,如果代码实现不佳,或者过于复杂,导致一帧绘制时间大于16.6毫...

  • Android性能优化汇总

    页面卡顿、cpu、gpu占用分析 android性能跟踪分析工具系列 - GPU 呈现模式分析 为什么Andro...

  • Android动画卡顿分析

    最近处理了一个动画卡顿的问题,记录一下分析的过程; 问题分析 看了一下,出现卡顿的是一个位移的动画,具体的实现是通...

  • Android-卡顿分析

    APP的优化是任重而道远的过程,必须在意每一个环节,否者当你想要优化的时候,发现到处都是坑,已经不知道填补哪里了,...

  • 卡顿优化②原因分析和监控工具

    卡顿分析 造成卡顿的原因可能是多种多样的,但是最终都会反映在CPU时间上。Android系统是基于Linux的,可...

网友评论

    本文标题:2017.03.12 Android卡顿分析

    本文链接:https://www.haomeiwen.com/subject/frbtnttx.html