本文整理汇总了Java中com.squareup.leakcanary.AnalysisResult类的典型用法代码示例。如果您正苦于以下问题:Java AnalysisResult类的具体用法?Java AnalysisResult怎么用?Java AnalysisResult使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
AnalysisResult类属于com.squareup.leakcanary包,在下文中一共展示了AnalysisResult类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: afterDefaultHandling
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
protected void afterDefaultHandling(@NonNull final HeapDump heapDump, @NonNull final AnalysisResult result,
@NonNull final String leakInfo) {
if (!result.leakFound || result.excludedLeak) {
return;
}
Crashlytics.log("*** Memory Leak ***");
for (final String s : leakInfo.split("\n")) {
Crashlytics.log(s);
}
Crashlytics.log("*** End Of Leak ***");
String name = classSimpleName(result.className);
if (!heapDump.referenceName.equals("")) {
name += "(" + heapDump.referenceName + ")";
}
Crashlytics.logException(new Exception(name + " has leaked"));
}
示例2: onHandleIntent
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
@Override protected void onHandleIntent(Intent intent) {
if (intent == null) {
CanaryLog.d("HeapAnalyzerService received a null intent, ignoring.");
return;
}
String listenerClassName = intent.getStringExtra(LISTENER_CLASS_EXTRA);
HeapDump heapDump = (HeapDump) intent.getSerializableExtra(HEAPDUMP_EXTRA);
HeapAnalyzer heapAnalyzer = new HeapAnalyzer(heapDump.excludedRefs);
AnalysisResult result = heapAnalyzer.checkForLeak(heapDump.heapDumpFile, heapDump.referenceKey);
AbstractAnalysisResultService.sendResultToListener(this, listenerClassName, heapDump, result);
}
示例3: afterDefaultHandling
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
@Override
protected void afterDefaultHandling(HeapDump heapDump, AnalysisResult result, String leakInfo) {
if (!result.leakFound || result.excludedLeak) {
return;
}
LoggerFactory.getLogger("LeakCanary").warn(leakInfo);
}
示例4: onHandleIntent
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
@Override protected void onHandleIntent(Intent intent) {
String listenerClassName = intent.getStringExtra(LISTENER_CLASS_EXTRA);
HeapDump heapDump = (HeapDump) intent.getSerializableExtra(HEAPDUMP_EXTRA);
ExcludedRefs androidExcludedDefault = createAndroidDefaults().build();
HeapAnalyzer heapAnalyzer = new HeapAnalyzer(androidExcludedDefault, heapDump.excludedRefs);
AnalysisResult result = heapAnalyzer.checkForLeak(heapDump.heapDumpFile, heapDump.referenceKey);
AbstractAnalysisResultService.sendResultToListener(this, listenerClassName, heapDump, result);
}
示例5: Leak
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
Leak(HeapDump heapDump, AnalysisResult result) {
this.heapDump = heapDump;
this.result = result;
}
示例6: Leak
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
Leak(HeapDump heapDump, AnalysisResult result, File resultFile) {
this.heapDump = heapDump;
this.result = result;
this.resultFile = resultFile;
}
示例7: Leak
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
Leak(HeapDump heapDump, AnalysisResult result, File resultFile) {
this.heapDump = heapDump;
this.result = result;
this.resultFile = resultFile;
}
示例8: run
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
@Override
public void run() {
final List<Leak> leaks = new ArrayList<>();
File[] files = leakDirectory.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String filename) {
return filename.endsWith(".hprof");
}
});
if (files != null) {
for (File heapDumpFile : files) {
File resultFile = leakResultFile(heapDumpFile);
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(new FileInputStream(resultFile));
HeapDump heapDump = (HeapDump) ois.readObject();
AnalysisResult result = (AnalysisResult) ois.readObject();
leaks.add(new Leak(heapDump, result));
} catch (IOException | ClassNotFoundException e) {
// Likely a change in the serializable result class.
// Let's remove the files, we can't read them anymore.
heapDumpFile.delete();
resultFile.delete();
Log.e(TAG, "Could not read result file, deleted result and heap dump:"
+ heapDumpFile,
e);
} finally {
IOUtils.closeSilently(ois);
}
}
Collections.sort(leaks, new Comparator<Leak>() {
@Override
public int compare(Leak lhs, Leak rhs) {
return Long.valueOf(rhs.heapDump.heapDumpFile.lastModified())
.compareTo(lhs.heapDump.heapDumpFile.lastModified());
}
});
}
mainHandler.post(new Runnable() {
@Override
public void run() {
inFlight.remove(LoadLeaks.this);
if (activityOrNull != null) {
activityOrNull.leaks = leaks;
activityOrNull.updateUi();
}
}
});
}
示例9: run
import com.squareup.leakcanary.AnalysisResult; //导入依赖的package包/类
@Override public void run() {
final List<Leak> leaks = new ArrayList<>();
List<File> files = leakDirectoryProvider.listFiles(new FilenameFilter() {
@Override public boolean accept(File dir, String filename) {
return filename.endsWith(".result");
}
});
for (File resultFile : files) {
FileInputStream fis = null;
try {
fis = new FileInputStream(resultFile);
ObjectInputStream ois = new ObjectInputStream(fis);
HeapDump heapDump = (HeapDump) ois.readObject();
AnalysisResult result = (AnalysisResult) ois.readObject();
leaks.add(new Leak(heapDump, result, resultFile));
} catch (IOException | ClassNotFoundException e) {
// Likely a change in the serializable result class.
// Let's remove the files, we can't read them anymore.
boolean deleted = resultFile.delete();
if (deleted) {
CanaryLog.d(e, "Could not read result file %s, deleted it.", resultFile);
} else {
CanaryLog.d(e, "Could not read result file %s, could not delete it either.",
resultFile);
}
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException ignored) {
}
}
}
}
Collections.sort(leaks, new Comparator<Leak>() {
@Override public int compare(Leak lhs, Leak rhs) {
return Long.valueOf(rhs.resultFile.lastModified())
.compareTo(lhs.resultFile.lastModified());
}
});
mainHandler.post(new Runnable() {
@Override public void run() {
inFlight.remove(LoadLeaks.this);
if (activityOrNull != null) {
activityOrNull.leaks = leaks;
activityOrNull.updateUi();
}
}
});
}