0
点赞
收藏
分享

微信扫一扫

android进阶篇08、启动速度、卡顿与布局优化简述,【面试总结

minute_5 2022-01-25 阅读 55

第一种方法我们可以通过在Android Studio中的logcat日志界面查看,输入搜索关键字displayed,然后过滤条件选择No Filters,我们在启动应用时就会打印如下所示日志,代表启动耗时887毫秒;

2021-03-27 15:55:56.648 524-551/system_process I/ActivityTaskManager: Displayed com.xiangxue.arch_demo/.MainActivity: +887ms

方法二

第二种方法我们可以在cmd命令行中通过命令查看,如下命令;

adb shell am start -S -W [packageName]/[activityName]

输出结果如下所示,其中TotalTime就是耗时时间;

C:\Users\29155>adb shell am start -S -W com.xiangxue.arch_demo/.MainActivity
Stopping: com.xiangxue.arch_demo
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xiangxue.arch_demo/.MainActivity }
Status: ok
LaunchState: COLD
Activity: com.xiangxue.arch_demo/.MainActivity
TotalTime: 887
WaitTime: 890
Complete

3、启动速度分析

分析启动速度我们可以使用Android studio自带的profiler分析器;

  1. run – edit Configurations – profiling – start this
    recording on startup前面打勾
  2. 主要有两种模式可以选择,sample java methods:间隔时间采样,每隔一定时间进行采样,分析相应方法的时间占用;trace java method:方法调用跟踪,会跟踪调用每个方法,然后记录每个方法的耗时,这种方式特别卡,并且也没有必要,一般使用第一种足以;
  3. 保存之后,我们以profile方式启动app,即可在profiler界面查看启动耗时相关信息;
  4. 在prfiler界面主要看三个模块来分析启动耗时

Top Down:方法的调用栈信息,我们可以通过分析方法调用栈过程中的各个方法的耗时时间,来确定是在那个过程中耗时较多; Flame Chat:又称火焰图,是以时间条的形式对方法的耗时进行记录,我们一般在这个图上总览一下各个方法的耗时,真正去分析时间还得去Top down中分析具体的方法; Bottom Up:也是方法的调用信息,不过跟Top Down正好相反,是从底部往顶部查找的,一般不看这个模块,查找不方便,看第一个方法调用栈就可以;

4、黑白屏问题

当我们点击app图标时,在应用还没有启动起来的时候会有白屏或者黑屏代替,这是google提供的界面加载方法,不过用户体验不好,我们可以通过设置背景图的方法解决;

我们首先定义style属性,将windowbackground属性设置为我们的背景图片;

然后在activity标签中修改theme属性,使用我们自定义的style标签;

最后我们要在activity的oncreate方法中settheme设置回应用的主题,因为启动了之后还是需要使用应用的主题的;

添加背景图片并不能对启动速度有优化,只是为了提高用户体验度;








protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
、、、
}

二、卡顿分析

卡顿分析跟启动速度的分析的操作基本相同,也是使用Android studio自带的profiler分析器进行分析;

  1. 打开Profiler界面,保持应用运行在设备上或者模拟器上;
  2. 点击cpu运行模块进入cpu分析界面;
  3. 在Select CPU Profiling mode中选择Trace System Calls,并点击record;
    在设备上或者模拟器上;
  4. 点击cpu运行模块进入cpu分析界面;
  5. 在Select CPU Profiling mode中选择Trace System Calls,并点击record;
举报

相关推荐

0 条评论