App启动代码优化

代码不优化

在构建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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容