前言
记录一下App启动优化,方便自己查阅。
正文
App启动时间检测
adb shell am start -W com.biumall.demo/.MainActivity
运行结果
ThisTime: 最后一个Activity启动时间 [上面指定了是MainActivity启动时间]
TotalTime: 一系列Activity启动时间 [启动过程中所有Activity的启动时间]
WaitTime: 总启动时间,包含系统在冷启动时需要加载资源到内存的时间。
PS: TotalTime是启动中所有Activity时间,也就是除了MainActivity还有过度的SplashActivity启动时间。
统计代码执行时间
方式一
//存放的目录可以自己指定。这里只是一个实例而已
File file = new File(Environment.getExternalStorageDirectory(), "app.trace");
Debug.startMethodTracing(file.getAbsolutePath());
//开始统计
//业务逻辑
//结束统计
Debug.stopMethodTracing();
然后把内置sdcard中的app.trace进行pull出来,并拖入Android Studio中。
方式二
这种只是看是否耗时,至于代码中哪个地方耗时,需要自己排查。
打印代码开始的时间和结束的使用时间,然后end-start就是耗时时间。
long start = SystemClock.uptimeMillis();
long end = SystemClock.uptimeMillis();
个人推荐方式一
优化
- 异步加载
- 延迟加载和初始化
参考文章
历史上的今天
暂无评论...
随机推荐
泰戈尔:你一定要走吗?
旅人,你一定要走吗?夜是静谧的,黑暗昏睡在树林上。露台上灯火辉煌,繁花朵朵鲜丽,年轻的眼睛也还是清醒的。旅人,你一定要走吗?我们不曾以恳求的手臂束缚你的双足,你的门是开着的,你的马上了鞍子站在门口。如果我们设法挡住你的去路,那也不过是用我们的歌声罢了,如果我们曾设法挡住你,那也不过是用...
[摘]svc命令:管理电源控制,无线数据,WIFI
本文摘抄于《Android命令行测试BT,WIFI,Sensor工作状态》svc命令,位置在/system/bin目录下,用来管理电源控制,无线数据,WIFI。[plain] view plaincopy# svc svc Available commands: ...
JNI动态注册封装C语言版
前言在上一篇《JNI调用Java方法》的动态注册并调用Java方法,上次也说了可以把公共部分封装一下。说干就干,今天就把上次代码封装一下。正文我这不介绍完整的动态注册,有需要可以看《JNI动态注册》。这里只是个人流水账。Hello.javapackage com.biumall.dyn...
[摘]Android SD卡挂载状态
一、 Sd卡挂载主要ACTIONACTION_MEDIA_BAD_REMOVALsd卡已经从sd卡插槽拔出,但是挂载点还没解除ACTION_MEDIA_BUTTON“媒体”按钮被按下ACTION_MEDIA_CHECKING存在外部媒体,磁盘检查挂...
内存分析工具MAT简单记录
前言MAT(Memory Analyzer Tool,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,...
[ijkplayer专题]编译ijkplayer时出现Failed to create toolchain
前言最近在使用Ubuntu编译bilibili/ijkPlayer自己编译so库使用。记录于此,方便自己查阅。好记性不如烂笔头正文build on Linux x86_64ANDROID_NDK=/home/water/ijkdir/ndk-sdk-tool/android-ndk-r...