添加依赖:
implementation 'com.github.markzhai:blockcanary-android:1.5.0'
运行后会同时安装检测工具,主要检测UI线程运行卡顿现象
public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SystemClock.sleep(1000); } }
让主界面卡顿1秒
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); BlockCanary.install(this, new AppContext()).start(); } public class AppContext extends BlockCanaryContext { //默认卡顿阈值为1000ms public int provideBlockThreshold() { return 1000; } //输出的log public String providePath() { return "/blockcanary/"; } //支持文件上传 public void upload(File zippedFile) { throw new UnsupportedOperationException(); } //可以在卡顿提供自定义操作 @Override public void onBlock(Context context, BlockInfo blockInfo) { System.out.println("阻塞操作"); } } }
检测到卡顿超过1秒输出日志
<application android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher"
声明name属性
FPS基本的概念:
60 fps 的意思是说,画面每秒更新60次
这60次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅
每秒60次,也就是 1/60 ~= 16.67 ms 要更新一次