android注解注入AspectJ面向切面AOP插桩技术性能监测android原生类函数/方法运行耗时/时长(2)
import android.util.Log;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
//一个切面
@Aspect
public class MyActivityAspect {
@Pointcut("execution(void androidx.appcompat.app.AppCompatActivity+.onCreate(..))")
public void activityOnCreate() {
}
@Around("activityOnCreate()")
public Object activityOnCreateTime(ProceedingJoinPoint joinPoint) {
Object object = null;
long startTime = System.currentTimeMillis();
try {
object = joinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
Log.d("zhangphil","activity - onCreate: 耗时 "+(System.currentTimeMillis() - startTime));
return object;
}
}
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.SystemClock;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SystemClock.sleep(2500);
}
}
输出: