Android性能优化之检查App初始化时间,易于优化

一、检查app初始化时间的原因

1、在application的onCreate()方法中,我们一般会直接初始化第三方的SDK,导致App启动较慢; 2、在Activity中onCreate() 中初始化时间过长,导致app加载缓慢的现象;

二、配置的位置
File file = new File(Environment.getExternalStorageState(), "AppTrace.trace");
Debug.startMethodTracing(file.getAbsolutePath());

//此处是我们初始化的代码;比如在application的onCreate()方法中,我们一般会直接初始化第三方的SDK, 导致App启动较慢。
//...
//...
//...

Debug.stopMethodTracing();

代码写好以后, 重新运行app项目。

三、出现的异常问题

然后我们期待AppTrace.trace文件并没有生成(我这边是这样的);
结果是这样子的:
Caused by: java.lang.RuntimeException: Unable to open trace file '/mounted/AppTrace.trace' at dalvik.system.VMDebug.startMethodTracingFilename(Native Method) at dalvik.system.VMDebug.startMethodTracing(VMDebug.java:171)

结合网上资料:https://blog.csdn.net/cshichao/article/details/78425531

四、异常的解决

改为:

File file = getExternalFilesDir(null);
Debug.startMethodTracing(file + "AppTrace.trace");
Debug.startMethodTracing(file.getAbsolutePath());

//...
//...
//...

Debug.stopMethodTracing();

再次运行,问题解除。我们可Android Studio右下侧Device File Explorer中查看,如下图:
在这里插入图片描述
我们要的文件生成了。接下来我们需要将文件导出;

五、导出生成的.tract文件

在Android Studio的Terminal中(或控制台cd到项目根目录)执行:adb pull 生成的文件路径;
注意,前提是在环境变量中已经配置来adb;

adb pull /mnt/sdcard/Android/data/xxx/filesZhaoAppTrace.trace

然后在项目的根目录生成filesZhaoAppTrace.trace文件;

六、使用.tract文件来分析具体代码的消耗时间

将生成的.trace文件拖入到Android Studio工具中即可;如下图:

在这里插入图片描述

这里可以看到具体的模块所消耗的时间。
接下来就是具体如何优化代码了;

优化在这里就不讲啦。但提一点,将不对UI进行操作的初始化,可以放到线程中去执行,是有效避免启动耗时的方案之一。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉淀的沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值