Android内存泄漏排查利器LeakCanary
发布时间 - 2026-01-11 00:19:48 点击率:次本文为大家分享了Android内存泄漏排查利器,供大家参考,具体内容如下

开源地址:https://github.com/square/leakcanary
在 build.gralde 里加上依赖, 然后sync 一下, 添加内容如下
dependencies {
....
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
}
省略号代表其他已有内容
在 Application类里面将 LeakCanary 初始化。。 比如叫MyApplication ,如果没有就创建一个,继承 android.app.Application。 别忘了在AndroidManifest.xml中加上,否则不起作用
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(this);
// 你的其他代码从下面开始
}
}
官方已经有demo了,可以跑跑看。
package com.github.pandafang.leakcanarytest;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View button = findViewById(R.id.async_task);
button.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
startAsyncTask();
}
});
}
void startAsyncTask() {
// This async task is an anonymous class and therefore has a hidden reference to the outer
// class MainActivity. If the activity gets destroyed before the task finishes (e.g. rotation),
// the activity instance will leak.
new AsyncTask<Void, Void, Void>() {
@Override protected Void doInBackground(Void... params) {
// Do some slow work in background
SystemClock.sleep(20000);
return null;
}
}.execute();
}
}
进入主界面按下按钮, 再按返回键退出主界面, 反复几次,LeakCanary 就能探测到内存泄漏了。注意要多操作几次,1次的话泄漏规模太小,可能不会探测到。LeakCanary 一旦探测到会弹出提示的。
回到桌面,会看到一个LeakCanary 的图标,如果有多个app 用到就会有多个LeakCanary图标。
点进去就会看到内存泄漏记录
再点进去就可以看到调用栈了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# 内存泄漏
# LeakCanary
# Android LeakCanary的使用方法介绍
# Android中的LeakCanary的原理详解
# Android 进阶实现性能优化之OOM与Leakcanary详解原理
# Android LeakCanary检测内存泄露原理
# Android中LeakCanary检测内存泄漏的方法
# 使用Android Studio检测内存泄露(LeakCanary)
# Android性能优化之利用强大的LeakCanary检测内存泄漏及解决办法
# 详解LeakCanary分析内存泄露如何实现
# 多个
# 几次
# 就会
# 就能
# 已有
# 如果没有
# 弹出
# 要多
# 按下
# 别忘了
# 太小
# 大家分享
# 创建一个
# 开源
# 具体内容
# 大家多多
# 再按
# 就可以
# 跑跑
# 再点
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何快速查询网址的建站时间与历史轨迹?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel如何使用Telescope进行调试?(安装和使用教程)
浅析上传头像示例及其注意事项
JavaScript如何实现继承_有哪些常用方法
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
如何基于云服务器快速搭建网站及云盘系统?
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
简单实现Android文件上传
iOS发送验证码倒计时应用
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
利用vue写todolist单页应用
深入理解Android中的xmlns:tools属性
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
如何选择PHP开源工具快速搭建网站?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
如何续费美橙建站之星域名及服务?
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
如何基于PHP生成高效IDC网络公司建站源码?
如何获取PHP WAP自助建站系统源码?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
如何在阿里云虚拟服务器快速搭建网站?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
如何在万网自助建站平台快速创建网站?
如何快速上传建站程序避免常见错误?
Laravel如何实现数据库事务?(DB Facade示例)
利用JavaScript实现拖拽改变元素大小
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
网站制作软件有哪些,制图软件有哪些?
iOS UIView常见属性方法小结
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何在腾讯云服务器上快速搭建个人网站?

