工欲善其事,必先利其器。所以开发工具集中第一篇,就介绍几个非常优秀的工具StrictMode、LeakCanary、和 BlockCanary。
工具名称 | 说明 |
---|---|
StrictMode | Google自带的严苛模式 |
LeakCanary | squareup出品 简洁的展示内存泄漏 堆栈信息 |
BlockCanary | markzhai高手开源 记录展示 主线程的卡顿 |
有了这些工具,我们可以在开发工程中事半功倍的优化App性能,提升App的用户体验。
下面说一下具体的集成:
1、StrictMode
推荐在应用的Application中做初始化,具体可以如下:
if (debug) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
}
2、LeakCanary
推荐在应用的Application中做初始化,具体可以如下:
LeakCanary.install(application);
在看一下依赖
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
}
3、BlockCanary
推荐在应用的Application中做初始化,具体可以如下:
BlockCanary.install(application,new TestBlockCanaryContext()).start();
TestBlockCanaryContext的实现
public class TestBlockCanaryContext extends BlockCanaryContext {
private static final String TAG = TestBlockCanaryContext.class.getSimpleName();
@Override
public int provideBlockThreshold() {
return 1000;
}
@Override
public boolean displayNotification() {
return BuildConfig.DEBUG;
}
}
在看一下依赖
dependencies {
compile 'com.github.markzhai:blockcanary-android:1.5.0'
// 仅在debug包启用BlockCanary进行卡顿监控和提示的话,可以这么用
debugCompile 'com.github.markzhai:blockcanary-android:1.5.0'
releaseCompile 'com.github.markzhai:blockcanary-no-op:1.5.0'
}
下面说一下使用:
工具的使用也是很简单的
StrictMode:如果你的有警告会在logcat看到 strictmode相关的日志。
LeakCanary和BlockCanary:他们会随App生成自己的App,当有异常信息时会在对应的日志记录。
【原创出品 未经授权 禁止转载】
【欢迎微友分享转发 禁止公号等未经授权的转载】