美文网首页
App启动代码优化

App启动代码优化

作者: xyzkaye | 来源:发表于2023-02-22 12:42 被阅读0次

代码不优化

在构建App时,我们经常需要引用一些第三方的sdk,而项目业务越多,引用的第三方也越多,有些第三方会要求我们在Application的onCreate方法中对其初始化。这意味着:在application的onCreate方法中执行时间会被越长,首个Activity布局的渲染时间也会相应的拉长。
同理,如果我们在Activity的onCreate, onStart,onResume方法中执行的任务时间过长,同样也会导致布局被渲染的时间拉长。这样直接导致的问题就是,用户会感觉页面迟迟没有加载出来,用户体验极差。

测量启动时间

在Android4.4及更高的版本中。logcat包括一个输出行,其中包含命名为
Displayed的值,此值代表从启动进程到在屏幕上完成对应 Activity 绘制所经

通过adb命令

adb shell am start -W com.xykaye/.MainActivity

// 运行结果
ThisTime:最后一个Activity启动时间
TotalTime:一系列Activity启动时间
WaitTime:总启动时间,包含系统在冷启动时,需要加载app信息到内存的时间

手动打印检测

  public void onCreate(){ 
      super.onCreate();  
      File file = new File(Environment.getExternalStorageDirectory(),"app.trace");
      Debug.startMethodTracing(file.getAbsolutePath());
      // 其他业务逻辑代码
      init();
      test();
      Debug.stopMethodTracing();
  } 
// 获取trace文件命令 
adb pull /storage/emulated/0/app.trace

手动打印日志计算启动时间,只能记录应用内耗时

优化目标 减少代码执行时间:

  • 采用异步线程的方式来进行处理
    1.异步线程中使用的api不能创建handler
    2.不能有UI操作
    3.对异步要求不高
  • 延时初始化
  • 懒加载
  • 空闲时初始化


    test.png

相关文章

网友评论

      本文标题:App启动代码优化

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