close
当前位置: 物联网在线 > 技术文库 > android >

说一说Android Studio和IDEA中一个很有用的内存调试插件

说一说Android Studio和IDEA中一个很有用的内存调试插件

JetBrains JVM Debugger Memory View plugin

在我最近的研发活动期间寻找新的工具,以提高我的开发经验,使Android Studio的生活更轻松,我发现一个有用的插件,我从来没有听说过。 这就是为什么,我决定写这个强大的工具,它如何帮助我与内存调试我的应用程序。

What is the plugin about?

根据 plugin page :

此插件扩展了内置的JVM调试器,具有在调试会话期间观察JVM堆中的对象的功能。

内存视图按照类名称分组来显示 堆中的对象总数

当你一步步调试代码时, “Diff”列显示调试器停靠点(debugger stops也就是debug点)之间对象数量的变化 。 这种方式你可以很容易地看到你的步进代码如何影响堆。

双击类名称,打开一个包含该类实例的对话框。 该对话框允许您 通过计算表达式过滤实例 。 所有调试器操作(如检查,标记对象,评估表达式,添加到观察等)都可以应用于此对话框中的实例。

How to install this wonderful plugin?

打开Android Studio Plugins 页面:

快捷键:command/ ctrl + shift + A, 类型 插件 随后,按 enter 键:

或打开 Preferences/Settings: (Mac:Android Studio - >Preferences / Windows和Linux:File - >Settings)并找到 Plugins 页面:

说一说Android Studio和IDEA中一个很有用的内存调试插件

Install jetBrains plugin… 按钮,搜索 JVM Debugger Memory View 然后 Install

说一说Android Studio和IDEA中一个很有用的内存调试插件

装完重新启动Android Studio。

At first glance:

回到Android Studio后,您会发现 Memory View Tool Window 已经添加到工具栏的右侧。

说一说Android Studio和IDEA中一个很有用的内存调试插件

Memory View Tool Window

内存视图工具窗口

如果没有看到内存视图,打开工具窗口,使用主菜单: View → Tool Windows → Memory View 。

首先,这个工具只有在打了调试断点并在 debug模式 运行期间才会显示数据。

其次,我要提到的是,我阅读了Android Studio可能会发生的一些警告和错误,不过,我并没有碰到过。

警告:Android Studio版本包含以下限制:

由于Android内存限制,获取大量的实例可能会失败,并会停止VM。

Android Studio可能会停止响应,请参阅 此错误

Let’s debug!

在调试模式下运行应用程序并在BreakPoint上暂停后,您会看到很神奇的画面:

说一说Android Studio和IDEA中一个很有用的内存调试插件

这个表让我们最感兴趣的地方是 Diff ”列,当你一步步调试代码行时,你将看到会有多少新的对象实例被创建或销毁!

我想寻找我自己的对象 (即ProfileModel类) ,所以我搜索它:

说一说Android Studio和IDEA中一个很有用的内存调试插件

正如你可以看到我已经在这行代码更新了ProfileModel vairable,在GC删除旧对象之前我得到差异是+1 ,也可以访问之前不可能访问到的旧的对象。 通过双击这条记录,我将在窗口中获取ProfileModel类的实例:

说一说Android Studio和IDEA中一个很有用的内存调试插件

此窗口还允许你使用类方法通过计算的表达式过滤实例,例如,您可以使用 OkHttp Response 类的 isSuccessful 方法来过滤筛选在内存中加载不成功的响应:

说一说Android Studio和IDEA中一个很有用的内存调试插件

实例过滤器功能

另一个有用的功能是跟踪新实例,您可以通过Memory View Tool窗口中的右键菜单启用:

说一说Android Studio和IDEA中一个很有用的内存调试插件

此功能可帮助您跟踪已生成类的新实例的代码!

说一说Android Studio和IDEA中一个很有用的内存调试插件

.

来自:https://muyinchen.github.io/2017/02/05/Android Studio和IDEA中一个很有用的内存调试插件/


(责任编辑:ioter)

用户喜欢...

摆脱APP收入被Android逆袭的命运?苹果宣布App Store支持微信支付

APP营收即将被Android超越的苹果,和移动支付市场份额即将追上支付宝的腾讯,终于走到了一起...IT经理网...


人肉推荐才是王道:Google Play独立手游节发布Android游戏TOP20大名单

Google Play独立游戏节是大数据时代通过人工推荐来提高优秀APP曝光率和可视性的另外一个尝试。IT经理网...


Seeed Studio Wio Tracker让你轻松创建基于GPS的IoT项目

Seeed Studio的Wio Tracker这款无线输入输出 (Wio) Tracker为开源网关,通过跟踪几乎所有移动的目标并以无线方式上传数据,...


Seeed Studio Wio Tracker登陆贸泽 让你轻松创建基于GPS的IoT项目

 最新半导体和电子元器件的全球授权分销商贸泽电子 (Mouser Electronics) ,宣布即日起开始备货Seeed Studio的Wio Tracker。这款无线输入输出 (Wio) Tracker为开源网关,通过跟踪几乎所有移动的目标并...


Android O之后 一加3/3T再无重大系统升级

谷歌很快就将推出Android O了,相关细节也将在近期逐一浮出水面。而一加3以及一加3T也将会在今年年底之前迎来这一...


北美汽车电子与安全配置需求调查:用户最想要的是USB而不是CarPlay

2017年各大汽车厂商极力推行,并且装配大量新车型的CarPlay和Android Auto汽车数字娱乐系统,压根没有触及用户需求的“...


Android Things 入手,具体如何构建一个完整的智能家居系统

2012 年 6 月,由 IoT-GSI(Global Standards Initiative on Internet of Things)发布的白皮书ITU-T Y.4000/Y.2060[1]中明确定义了物联网的概念。从技术标准化的角度来讲,物联网可以看作是信息社会中,基于现有...


基于Unity3d 引擎的Android游戏优化

最近项目进入收尾阶段,之前对项目做了很多优化,mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,在IOS上还好,但是上,试过几款手机,从低端到高端,发现...


捷德为DOCOMO提供eSIM管理解决方案

捷德宣布为日本领先移动网络运营商NTT DOCOMO提供eSIM管理解决方案,随即世界首款向消费者推出的采用嵌入式SIM(eS...


跻身Android Wear生态MIPS处理器圈地穿戴市场

Imagination近期不仅成为Google Android Wear作业系统生态圈中,唯一的处理器矽智财(IP)供应商,更与北京君正等处理器业者,合作推出穿戴式装置参考设计平台,因而让MIPS架构处理器顺利搭上And...