lyn*_*570 8 android leakcanary
LeakCanary是一个用于Android和Java的内存泄漏检测库. LeakCanary
我的项目基于android make文件系统,它依赖于一些android内部接口和自定义方法.
如何将LeakCanary作为lib添加到我的应用程序中以检测内存泄漏.
我的解决方案:首先,我必须将LeakCanary构建为jar文件,但是如何.因为它是一个gradle目录结构,我之前从未使用过Gradle.
任何提示都很珍贵.
对于Leak Canary,您应该使用Android Studio.在Android Studio中,在build.gradle中添加此项
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'
}
Run Code Online (Sandbox Code Playgroud)
在您的Application类中,添加此行LeakCanary.install(this); 在像这样的onCreate()方法中
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
Run Code Online (Sandbox Code Playgroud)
点击此链接https://github.com/square/leakcanary了解更多详情.
希望这可能会有所帮助.
这需要成为您的应用程序的一部分,以便泄漏工作.
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
Run Code Online (Sandbox Code Playgroud)
但这很令人困惑,因为我们大多数人都没有编写直接扩展Application类的类,一个简单的语句就可以解决这个问题,
public class YourClass extends Activity{//AppCompatActivity, A ctionBarActivity or anything
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(getApplication());
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!!!
最好将此方法称为
onPostCreate()
Run Code Online (Sandbox Code Playgroud)
LeakCanary 不仅仅是一个 JAR - 它不仅包含 java 代码,还包含资源(例如 png)。如果您使用 ANT,那么您唯一能做的就是将 LeakCanary 包含为库项目。但我强烈建议切换到 gradle。因为android开发团队在不久的将来不会支持以任何用户友好的方式导入任何不仅仅是jar的库(因为gradle是优先考虑的)。作为库项目导入是一个痛苦的过程,当有时将库的依赖项也包含为库项目时,这会变得更加痛苦。我很久以前就手工完成了,只是因为客户多年来一直使用 eclipse 和 ant 来完成大型项目。一般来说,您必须执行以下操作:
最后一步是启用清单合并。将以下行添加到项目的 project.properties 中:
清单合并.启用=true
完成后,将库项目中的所有 AndroidManifest.xml 合并到最终的 apk 中。
| 归档时间: |
|
| 查看次数: |
8631 次 |
| 最近记录: |