性能优化
文章平均质量分 90
245123774
这个作者很懒,什么都没留下…
展开
-
屏幕刷新机制-源码流程阅读
文章目录结论1. UI刷新流程示意2. 源码流程2.1 ViewRootImpl.scheduleTraversals2.1 Choreographer.postCallback2.3 FrameDisplayEventReceiver.onVsync2.4 Choreographer.doFrame2.5 Choreographer.doCallbacksAndroid系统通过一个VSYNC来保证每16ms最多绘制一帧. 也就是说: UI必须至少等待16ms的间隔才会绘制下一帧, 所以连续两次setT原创 2021-03-06 18:13:32 · 450 阅读 · 1 评论 -
性能优化-FPS基础概念
笔记很多来自各种摘抄文章目录1. Android系统显示原理2. 绘制原理2.1 应用层2.2 系统层3. 帧率4. 屏幕刷新频率5. 单缓存画面撕裂6. 单缓冲 + 同步锁与双缓冲 + 同步锁6.1 双缓冲 + 同步锁6.2 VSYNC7. 三缓冲7.1 为什么要有三缓冲1. Android系统显示原理 Android应用程序把经过测量、布局、绘制后的surface缓存数据通过SurfaceFlinger把数据渲染到显示屏幕上, 通过Android刷新机制来刷新数据. 也就是说应用层负责绘制, 系原创 2021-03-03 00:16:48 · 965 阅读 · 0 评论 -
ANR笔记
文章目录一、ANR背景1.1 ANR种类1.2 ANR具体超时1.3 ANR原因二、数据收集一、ANR背景1.1 ANR种类Service Timeout: 比如前台服务在20s内未执行完成Broadcast Timeout: 比如前台广播在10s内未执行完成ContentProvider Timeout: 内容提供者, 在publish超时10sInputDispatching Timeout: 输入事件分发超时5s, 包括按键和触摸事件1.2 ANR具体超时1. Service<原创 2021-03-01 23:04:45 · 256 阅读 · 0 评论 -
创建线程OOM问题分析与解决
文章目录前言一、线程OOM1.1 OOM背景1.1.1 错误一1.1.2 错误二1.2 Android内存管理策略1.3 Thread.start源码分析1. thread.CreateNativeThread2. pthread_create.pthread_create3. pthread_create.__create_thread_mapped_space前言系统的学习、总结. 千万不要再犯零零散散学习的毛病了一、线程OOM1、背景2、Android内存管理策略3、源码分析1.1原创 2021-01-17 23:20:57 · 1369 阅读 · 0 评论 -
Matrix---ResourceCanary源码分析
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2020-12-01 23:09:43 · 457 阅读 · 1 评论 -
LeakCanary源码分析
LeakCanary源码分析不要记源码细节, 记也记不住, 记涉及到的基础知识、学习思想、学习架构、学习用到的哪些设计模式一、 监控内存泄漏1.1 内存泄漏的流程1、添加Activity生命周期的监听2、Activity执行了onDestroy之后, 理论上来说, Activity应当被回收掉, 但是实际上并没有被回收掉3、此时将Activity与弱引用进行关联, 这里思考一个问题, 为什么不将该Activity与软引用进行关联?4、同时将该弱引用与引用队列进行关联, 然后将该Activi原创 2020-11-29 23:19:08 · 130 阅读 · 0 评论