Android代码优化

本文探讨了App启动慢的原因,特别是由于代码未优化和第三方SDK初始化导致的问题。通过使用adb和Debug工具,可以检测并统计App启动时间及各方法执行耗时,从而定位瓶颈并采取措施如异步初始化来提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码未优化造成的问题

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

App启动时间检测

adb shell am start -w com.goodboy/.MainActivity

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

代码执行时间统计

@Override
    public void onCreate() {
        super.onCreate();
        File file = new File(Environment.getExternalStorageState(),"app.trace");
        Debug.startMethodTracing(file.getAbsolutePath());
        //中间业务逻辑代码
        init();//初始化些东兴(一些耗时操作)
        test();//初始化些东兴(一些耗时操作)
        Debug.startMethodTracing();
    }

//获取trace文件命令
adb pull /storage/emulated/0/app.trace

app.trace文件可以直接拖到Android studio 中分析那个方法耗时多少,然后对耗时方法进行优化。
onCreate方法是在Ui线程中进行的,所以耗时操作且不需要在UI进程初始化的,可以放到异步线程中进行初始化。懒加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值