热搜: Loading  安卓开发  Android  ios  ShareSDK  开源  Python  生命周期  新手  RecyclerView 
  • 首 页
  •  
     
    当前位置: 首页 » 移动开发 » Android开发 » 正文

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

    放大字体  缩小字体 发布日期:2017-02-05  浏览次数:260
    核心提示:JetBrains JVM Debugger Memory View plugin 在我最近的研发活动期间寻找新的工具,以提高我的开发经验,使Android Studio的生活更轻松,我发现一个有用的插件,我从来没有听说过。 这就是为什么,我决定写这个强大的工具,它如何帮助我与内存调试我的应用程

    说一说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

    内存视图工具窗口

    如果没有看到内存视图,打开工具窗口,使用主菜单: ViewTool WindowsMemory 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中一个很有用的内存调试插件

    你可以在 JetBrains blog 中阅读有关此插件的更多信息.


    小编为您推荐“说一说Android Studio和IDEA中一个很有用的内存调试插件”相关文章

    Android使用SQLite数据库的简单实例
    这篇文章主要介绍了Android使用SQLite数据库的简单实例,有需要的朋友可以参考一下

    listviewButton始终放在底部示例
    android实现底部布局往往使用RelativeLayout的布局方式,以下的例子就是实现三层布局的底部布局的功能,感兴趣的朋友可以参考下哈,希望对大家有所帮助

    Android Toolbar,你想知道的都在这里了
    Android 3.0之后,Google引入了ActionBar,想统一安卓应用的导航栏样式。但由于ActionBar难以定制,很大程度上限制了开发人员,比如标题文字大小、间距等不易实现个性化,很多开发者放弃了ActionBar的使用,而是使用普通的ViewGroup来封装自己的App Bar,或者

    Android CheckBox 的使用案例分析
    本篇文章小编为大家介绍,Android CheckBox 的使用案例分析。需要的朋友参考下

    Android自定义View探索(一)—生命周期
    写在前面:之前零零散散写过两篇自定义View的文章,当时只是为了模仿实现某个好看的效果,并没有深入学习过,许多问题还是一知半解。这一系列的博客主要记录自己学习自定义View的过程以及心得。任何一个视图都是要经过非常科学的绘制流程后才能显示出来的,每

     
    TAGS: Android Studio
     
     
    猜你想看
     
    更多..
    与本文有关Android
    • 安卓中通知功能的具体实现
      安卓中通知功能的具体实现
      通知[Notification]是Android中比较有特色的功能,当某个应用程序希望给用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知实现。使用通知的步骤1、需要一个NotificationManager来获得NotificationManager manager = (NotificationManager
      02-05 关键词:安卓开发
    • Android view系统分析-setContentView
      Android view系统分析-setContentView
      第一天上班,列了一下今年要学习的东西。主要就是深入学习Android相关的系统源代码,夯实基础。对于学习Android系统源代码,也没什么大概,就从我们平常使用最基础的东西学起,也就是从view这个切入点开始学习Android的源码,在没分析源码之前,我们有的时候
      02-05 关键词:安卓开发
    • 如何进行网络视频截图/获取视频的缩略图
      如何进行网络视频截图/获取视频的缩略图
      小编导读:获取视频的缩略图,截图正在播放的视频某一帧,是在音视频开发中,常遇到的问题。本文是主要用于点播中截图视频,同时还可以获取点播视频的缩略图进行显示,留下一个问题,如下图所示, 如果要获取直播中节目视频缩略图,该怎么做呢?(ps:直播是直
      02-05 关键词:Bitmap安卓开发
    • Android NDK 层发起 HTTP 请求的问题及解决
      Android NDK 层发起 HTTP 请求的问题及解决
      前言新的一年,大家新年快乐~~鸡年大吉!本次给大家带来何老师的最新文章~虽然何老师还在过节,但依然放心不下广大开发者,在此佳节还未结束之际,给大家带来最新的技术分享~ 事件的起因不说了,总之是需要实现一个 NDK 层的网络请求。为了多端适用,还是选择
      02-05 关键词:HTTP安卓开发
    • SDK热更之如何在SDK代码中自动插桩及如何生成补
      写在前面本文是SDKHotfix相关的SDK热更系列文章中的一篇,以下为项目及系列文章相关链接:SDKHotfix整体介绍:http://blog.bihe0832.com/sdk_hotfix_project.htmlSDKHotfix对应github地址:https://github.com/bihe0832/SDKHoxFix这篇文章主要介绍一下SDK热更
      02-05 关键词:加密解密Java
    • 安装量破千万的第一个产品,我总结了3句话
      安装量破千万的第一个产品,我总结了3句话
      在今天的文章中,作者回顾了自己的第一个产品,他说“我做的第一款产品,是我的一块里程碑。”一起来看看~背景老牌大型互联网公司,部门内部创业的一个项目。我作为产品经理,也是第一次做产品经理,主导产品项目。实际上,项目初期包括我和安卓开发2个人。开
      02-05 关键词:互联网产品经理
    • 移动周刊第 176 期:Android 知识梳理
      移动周刊第 176 期:Android 知识梳理
      写在前面 本期移动周刊第 176 期如约而至,聚焦 Android、iOS、VR/AR/MR、直播等前沿移动开发技术,收录一周最热点,解读开发技巧,每周三移动周刊抢先看,我们希望从中能够让你有一些收获,如果你有好的文章以及优化建议,请发送邮件至mobilehub@csdn.net,
      02-05 关键词:安卓热修复
    • Android插件化(六): OpenAtlasの改写aapt以防止资源ID冲突
      Android插件化(六): OpenAtlasの改写aapt以防
      引言Android应用程序的编译中,负责资源打包的是aapt,如果不对打包后的资源ID进行控制,就会导致插件中的资源ID冲突。所以,我们需要改写aapt的源码,以达到通过某种方式传递资源ID的Package ID,通过aapt打包时获取到这个Package ID并且应用才插件资源的命名
      02-05 关键词:安卓开发
    • Android架构(一)MVP架构在Android中的实践
      Android架构(一)MVP架构在Android中的实践
      为什么要重视程序的架构设计 对程序进行架构设计的原因,归根结底是为了 提高生产力 。通过设计是程序模块化,做到模块内部的 高聚合 和模块之间的 低耦合 (如依赖注入就是低耦合的集中体现)。 这样做的好处是使得程序开发过程中,开发人员主需要专注于一点,
      02-05 关键词:安卓开发
    • 安卓逆向系列教程 4.2 分析锁机软件
      安卓逆向系列教程 4.2 分析锁机软件
      安卓逆向系列教程 4.2 分析锁机软件 作者: 飞龙 这个教程中我们要分析一个锁机软件。像这种软件都比较简单,完全可以顺着入口看下去,但我这里还是用关键点来定位。首先这个软件的截图是这样,进入这个界面之后,除非退出模拟器,否则没办法回到桌面。上面那
      02-05 关键词:安卓开发
     
    相关评论
     
    猜你喜欢
     
    网站首页 | 关于我们 | 联系方式 | 使用协议 | 版权隐私 | 网站地图 | 网站留言