一线大厂资深APP性能优化系列-卡顿定位(一)

本文介绍了在一线大厂APP性能优化中,如何定位卡顿问题。通过adb命令、手动打点和Aspectj的AOP方式来测量方法耗时,详细解析了traceView的使用,包括其特点、使用方式、性能分析,以及Call Chart和Flame Chart的区别,帮助开发者高效定位性能瓶颈。
摘要由CSDN通过智能技术生成

1.简介

本篇文章是该系列文章中的第一篇,主要介绍的是在一些一线大厂的实际项目中,如果APP发生卡顿是如何进行定位问题的。主要介绍 程序的耗费时间


2.测量时间方式

首先,如果要查看页面加载花费的时间有3种方式

  1. adb命令查看
  2. 手动打点的方式
  3. traceView

3.adb命令

只需要一行命令,就可以查看加载页面的时间。

adb shell am start -W 包名/包名.Activity

使用后会显示

ThisTime: 代表启动最后一个Activity的耗时
TotalTime: 代表启动所有的Activity的耗时
WaitTime: 代表AMS启动所有的Activity的耗时

注意点:该命令只能是获取配置了的Activity, 其他的无效,因为Android组件中有个 exported 属性,没有intent-filter时exported 属性默认为false,此组件只能由本应用用户访问,配备了intent-filter后此值改变为true,允许外部调用。

缺点
adb命令只能查看配置了的Activity,其他的无法查看,并且也无法精准的查看其方法具体耗费的时间,所以因为其局限性 并不能很好的解决我们问题,我们采用手动打点的方式查看。


4.手动打点

先看代码

public class MyApplication extends Application {
   

    @Override
    public void onCreate() {
   
        super.onCreate();

        initBugly();

        initBaiduMap();

        initJPushInterface();

        initShareSDK();
        ...
    }

    private void initBugly() throws InterruptedException {
   

        Thread.sleep(1000); // 模拟耗费的时间
    }

    private void initBaiduMap()
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值