界面秒开实现
界面秒开就是一个小的启动优化
可以借鉴启动优化及布局优化
Systrace,优雅异步+优雅延迟初始化
异步Inflate、X2C、绘制优化
提前获取页面数据
界面秒开率统计
onCreate到onWindowFocusChanged
特定接口
Lancet
轻量级Android AOP框架
编译速度快,支持增量编译
API简单,没有任何多余代码插入apk
@Proxy 通常用于对系统API调用的Hook
@Insert常用于操作App与library的类
public class ActivityHooker {
public static ActivityRecord sActivityRecord;
static {
sActivityRecord = new ActivityRecord();
}
public static String trace;
@Insert(value = "onCreate",mayCreateSuper = true)
@TargetClass(value = "android.support.v7.app.AppCompatActivity",scope = Scope.ALL)
protected void onCreate(Bundle savedInstanceState) {
sActivityRecord.mOnCreateTime = System.currentTimeMillis();
Origin.callVoid();
}
@Insert(value = "onWindowFocusChanged",mayCreateSuper = true)
@TargetClass(value = "android.support.v7.app.AppCompatActivity",scope = Scope.ALL)
public void onWindowFocusChanged(boolean hasFocus) {
sActivityRecord.mOnWindowsFocusChangedTime = System.currentTimeMillis();
LogUtils.i("onWindowFocusChanged cost "+(sActivityRecord.mOnWindowsFocusChangedTime - sActivityRecord.mOnCreateTime));
Origin.callVoid();
}
}
界面秒开监控维度
总体耗时
生命周期耗时
生命周期间隔耗时