工欲善其事对雪,必先利其器河狐。所以開發(fā)工具集中第一篇,就介紹幾個非常優(yōu)秀的工具StrictMode、LeakCanary甚牲、和 BlockCanary义郑。
工具名稱 | 說明 |
---|---|
StrictMode | Google自帶的嚴(yán)苛模式 |
LeakCanary | squareup出品 簡潔的展示內(nèi)存泄漏 堆棧信息 |
BlockCanary | markzhai高手開源 記錄展示 主線程的卡頓 |
有了這些工具,我們可以在開發(fā)工程中事半功倍的優(yōu)化App性能丈钙,提升App的用戶體驗非驮。
下面說一下具體的集成:
1、StrictMode
推薦在應(yīng)用的Application中做初始化雏赦,具體可以如下:
if (debug) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
}
2劫笙、LeakCanary
推薦在應(yīng)用的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
推薦在應(yīng)用的Application中做初始化填大,具體可以如下:
BlockCanary.install(application,new TestBlockCanaryContext()).start();
TestBlockCanaryContext的實現(xiàn)
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進行卡頓監(jiān)控和提示的話,可以這么用
debugCompile 'com.github.markzhai:blockcanary-android:1.5.0'
releaseCompile 'com.github.markzhai:blockcanary-no-op:1.5.0'
}
下面說一下使用:
工具的使用也是很簡單的
StrictMode:如果你的有警告會在logcat看到 strictmode相關(guān)的日志俏橘。
LeakCanary和BlockCanary:他們會隨App生成自己的App允华,當(dāng)有異常信息時會在對應(yīng)的日志記錄。
【原創(chuàng)出品 未經(jīng)授權(quán) 禁止轉(zhuǎn)載】
【歡迎微友分享轉(zhuǎn)發(fā) 禁止公號等未經(jīng)授權(quán)的轉(zhuǎn)載】