
性能优化
Android 性能优化
六号表哥
这个作者很懒,什么都没留下…
展开
-
「性能优化2.4」 AsyncLayoutInflater实现异步加载布局
「性能优化1.0」启动分类及启动时间的测量「性能优化1.1」计算方法的执行时间「性能优化1.2」异步优化「性能优化1.3」延迟加载方案「性能优化2.0」布局加载原理「性能优化2.1」LayoutInflater Hook控件加载耗时「性能优化2.2」获取布局的加载时间「性能优化2.3」Choreographer检测丢帧「性能优化2.4」 AsyncLayoutInflater实现异...原创 2019-03-21 23:22:31 · 3402 阅读 · 0 评论 -
「性能优化2.3」Choreographer检测丢帧
「性能优化1.0」启动分类及启动时间的测量「性能优化1.1」计算方法的执行时间「性能优化1.2」异步优化「性能优化1.3」延迟加载方案「性能优化2.0」布局加载原理「性能优化2.1」LayoutInflater Hook控件加载耗时「性能优化2.2」获取布局的加载时间「性能优化2.3」Choreographer检测丢帧一、Choreographer检测丢帧1.1、基本知识在「性...原创 2019-03-21 19:52:57 · 1458 阅读 · 0 评论 -
「性能优化2.2」获取布局的加载时间
「性能优化1.0」启动分类及启动时间的测量「性能优化1.1」计算方法的执行时间「性能优化1.2」异步优化「性能优化1.3」延迟加载方案「性能优化2.0」布局加载原理「性能优化2.1」LayoutInflater Hook控件加载耗时「性能优化2.2」获取布局的加载时间一、获取每一个界面加载耗时在 Activity onCreate 中我们会通过 setContentView 来加载...原创 2019-03-20 22:07:43 · 881 阅读 · 1 评论 -
「性能优化2.1」LayoutInflater Hook控件加载耗时
「性能优化1.0」启动分类及启动时间的测量「性能优化1.1」计算方法的执行时间「性能优化1.2」异步优化「性能优化1.3」延迟加载方案「性能优化2.0」布局加载原理「性能优化2.1」LayoutInflater Hook控件加载耗时一、绘制原理CPU 负责计算需要展示的数据,而 GPU 负责将数据绘制到屏幕上。屏幕绘制过程中涉及到两个基本概念:屏幕刷新率:屏幕刷新率代表屏幕...原创 2019-03-20 22:07:11 · 815 阅读 · 0 评论 -
「性能优化2.0」布局加载原理
「性能优化0」启动分类及启动时间的测量「性能优化1」计算方法的执行时间「性能优化2」异步优化「性能优化4」布局加载原理一、布局加载原理这一小节我们从源码的角度来分析 View 是如何加载的。我简单的绘了一张流程图,根据这张图配合接下来的源码开始我们的工作吧:废话不多说,直接从 setContentView 作为切入点,分析 Activity 的布局加载原理。1.1、Activ...原创 2019-03-20 11:48:49 · 204 阅读 · 0 评论 -
「性能优化1.3」延迟加载方案
一、延时加载1.1、为什么要延迟加载?我们在 MainActivity 中优先应该展示视图给用户,而一些其它的数据可以将其延迟再去初始化,例j如我们一般会在进入 MainActivity 时去检测一下当前是否是新用户来确定是否要显示引导图,或者读取当前未读的消息等,这些操作要求的及时性并不是那么高,这样就不会影响视图的展示。1.2、延迟加载的方案是什么?常规实现在 MainActiv...原创 2019-03-19 09:09:36 · 299 阅读 · 0 评论 -
「性能优化1.2」异步优化
一、异步优化在上一小节中,我通过获取应用的启动时间和每一个方法执行之间之后,我们发现,如果在 Application 或者 MainActivity 生命周期中串行去执行这些第三方库的初始化,是会拖慢整个应用的启动过程的,因此我们想通过子线程与主线程并行的方式来分担主线程的工作,从而减少主线程的执行时间。1.1、让任务执行在子线程中1.1.1、常规方案我们常规的方式是怎样的呢?publ...原创 2019-03-18 15:42:33 · 298 阅读 · 0 评论 -
「性能优化1.1」计算方法的执行时间
一、计算方法的执行时间我们在前面的几篇博客中分析了如何获取应用的启动时间,我们也知道启动过程中我们能优化的方向就是 Application 和 Activity 的生命周期,那么我们现在就来计算在启动过程 Application 中每一个调用每一个方法的执行耗时。1.1、常规方案手动埋点的方式,这种方案就是跟我们埋点获取应用启动时间是一样的原理,只要在方法执行前和执行后埋点,然后计算这两个...原创 2019-03-17 23:19:21 · 527 阅读 · 0 评论 -
「性能优化1.0」启动分类及启动时间的测量
一、为什么要做启动优化?应用的第一次启动是用户的第一体验,如果启动时间过长,那么就会造成用户的流失。在互联网中有一个8s法则,百科的解释式这样的:8秒原则是互联网的一个著名的原则,用户在访问Web网页时,如果时间超过8秒就会感到不耐烦,如果下载需要太长时间,他们就会放弃访问。所以说优化 APP 的启动速度是很有必要的。二、 启动分类谷歌官方针对以下三种启动方式做了详细的介绍,具体可以参...原创 2019-03-17 23:18:50 · 433 阅读 · 0 评论