如何使用DDMS Heap查看Android应用内存情况

时间:2023-01-01 03:34:08

作为大四毕业生,而且还是二本,加上技术基础不咋样,找工作自然也是辛酸得很。。。最糟糕的情况就是一开始实在是太小看了求职之路的艰辛,整个9月都是无所事事的度过,直到月底面试腾讯被鄙视后才顿然醒悟,意识到自己目前的处境是多么可怕,马上找了几本面试宝典,整天泡在图书馆。。。但迅雷的笔试将我彻底打败,满满的题目,写得我是一点心情也没有,提前一个小时交卷,关键就是笔试还没开始,就让我们填一份基本情况调查表,非常详细,敏锐的意识到,这次笔试肯定要刷一大批人,果然如此,有幸过了笔试这关的同学跟我说,能去面试的人非常少。。。国庆之前在网上大量海投,凡是搭上边的都投,腾讯一面被刷后,接到一家专门做外包的公司的面试通知,办公环境很好,开发氛围感觉很极客,可惜我从腾讯面试中吸取的教训还不够,没有充分发挥自己的优点,依然被刷。。。腾讯面试中我以为是自己基本功不行,于是恶补基本功,这次面试甚至在讲解的时候亲手写代码,但事实证明,关键的地方是我的出发点是错的。腾讯面试中,是从项目开发中自己对项目的理解出发的,但可惜自己并没有彻底想好这个问题,被抓住痛脚了,一时反应不过来,这次就撇开这个,直接就是整个项目流程,关注的是项目实现细节,但依然失败。。。

这次打击颇大,感觉自己以前做过的东西,学过的东西貌似都没啥用,自己就要失业了。。。国庆后去了一次招聘会,只投了一家,然后没下文了。。。这次是HR面试,但我和她扯技术实现问题,不过采取的是对比式说明,只是谈到界面的设计问题,还亲自解释为啥这样的界面设计会是这么复杂,画图什么的都上阵了,自我介绍还专门讲了个小故事,关于自己是如何虚心好学的。。。接着就是一家物联网公司,这次真的是出乎我意料,我完全省略了自我介绍这些东西,单纯讲一下兴趣爱好而已,笔试的题目也是随便做的,不懂就是不懂,然后在技术面试的时候非常淡定,他问到一点,我就根据这点不断扩展出去,设计模式什么的都搬了出来,优化什么的也拿出来,都是自己这边主动提出来的,他的问题本身是很基础粗显的,整整一个小时的技术面试,不懂的点都是非常爽快的回答不懂,但有给出自己的想法,期间还对自己笔试中没有写的题目进行补充,说明我是如何思考这个问题,但之所以没写,难点是在哪里,我该如何去解决。。。HR的面试也是非常久,一直强调自己的弱点,但都有提出自己的克服方法,隔天他们就发offer过来了,但我有事没有收到,期间还去了一家非常小的公司面试,那时我真的是连死的心都有了。那家公司是在一家民房里面,非常小,开发氛围我也不喜欢,直接就是老板过来面试,没问任何技术性的问题,因为我自己这边也察觉到自己不是他们要的,整个过程我都是面无表情,平淡无奇的应付,结果自然是没有通过。。。

那时是比说好的时间还早了一个小时,但看了工作环境后,我一直没有推门进去,只是站在窗边,想想自己也是只能去找这样的公司过活了,心里很不是滋味。。。

收到那家公司的offer后,我心里的石头终于落下来了,觉得这家公司不错,不想再找了,刚好之前报的一家大公司叫我去笔试,我随便应付,反正我觉得自己是不过的,笔试又是提前一个小时交了,所有的简单题回答得非常简洁,都是一两句话就结束了,但竟然过了!隔天的面试也不想去,被同学拉着去,一个小时半的技术面试,我都是面带微笑,采取同样的政策,但这次不懂的问题回答得非常爽快,“不懂”,毫无拖泥带水,反正自己也是不过的,面试官也给了我一个评语:基础有点薄弱,但学习能力很强,通过的概率不大。然后是HR面试,一个小时,我都是面带微笑的和她聊聊方法学,自然哲学的问题,但这些问题的开端都是从我刚才技术面试中无法回答的问题出发,解释我会以怎样的方式弥补这个差距。。。既然面试官都说我通过的概率不大,我自然也是很轻松的应付,回去继续看书了,一周后,我过了面试。。。

感觉面试什么的都是看RP的,看是否合面试官的眼,当然,自己的表现也是非常重要的,不要太差劲就行。

说回正题,Android默认情况下分配给一个应用程序的内存大小是16M,这对于涉及到大量图片或者后台的应用程序来说,有点吃力,一个不小心,就会出现OOM的问题,所以,要对应用程序运行过程中的内存使用情况进行测试。

可以使用Eclipse DDMS的Heap进行测试。

首先,我们在DDMS的界面的设备选项中找到手机设备,可以看到它里面正在运行的进程:

如何使用DDMS Heap查看Android应用内存情况

点一下“Update Heap"图标,然后在Heap选项中查看我们标注的进程的内存使用情况:

如何使用DDMS Heap查看Android应用内存情况

点一下"Cause GC", 相当于向虚拟机执行一次GC请求,然后无需再按就可以动态的查看该应用程序的内存使用情况。

最值得关注的就是”data object“的"Total Size",它决定了是否存在内存泄露的危险。一般情况下,它都是固定在一个稳定的数值范围,如果回落非常大,或者该数值非常大,像是3.55后就会被kill掉,说明该应用程序的内存使用情况不佳,代码结构需要优化。

如何使用DDMS Heap查看Android应用内存情况的更多相关文章

  1. Linux查看CPU和内存情况

    本文简单介绍在Linux上查看CPU和内存情况和一款系统资源查看工具htop. 查看CPU情况 以下是个人工作会经常使用到的服务器的信息. 查看所有CPU信息 可以通过如下命令查看所有CPU信息: # ...

  2. Linux 查看进程消耗内存情况总结

    在Linux中,有很多命令或工具查看内存使用情况,今天我们来看看如何查看进程消耗.占用的内存情况,Linux的内存管理和相关概念要比Windows复杂一些.在此之前,我们需要了解一下Linux系统下面 ...

  3. 查看tomcat的内存情况

    查看现有tomcat的内存大小情况 1.启动tomcat 2.访问 http://localhost:8080/manager/status ,并输入您在安装tomcat时输入的用户与口令,如 adm ...

  4. top,ps查看进程使用内存情况

    ps -e -o 'pid,comm,args,pcpu,vsz,stime,user,uid' |grep chrome|grep -v grepwatch 'ps -e -o 'pid,comm, ...

  5. 转:Android开发:使用DDMS Heap进行内存泄露调试

    无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方.Android tools中的DDMS就带有一个很不错的内存监测工具Heap,本 ...

  6. Android 内存监测工具 DDMS --> Heap(转)

    DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息.Logcat.广播状态信息.模拟电话呼叫.接收 ...

  7. Android 内存监测工具 DDMS --> Heap

    用 Heap监测应用进程使用内存情况的步骤如下: 1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图.Heap视图都是打开的: 2. 将手机通过USB链接至电脑,链接时需要确认 ...

  8. android--------Eclipse中ddms heap内存分析工具

    无 论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方. Android tools中的DDMS就带有一个很不错的内存监测工具Heap ...

  9. 内存监测工具 DDMS --> Heap

    无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方.Android tools中的DDMS就带有一个很不错的内存监测工具Heap(这 ...

随机推荐

  1. Redis性能问题排查解决手册(七)

     阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Red ...

  2. 第二章 搭建Android开发环境--读书笔记

    俗话说,工欲善其事,必先利其器,对于Android驱动开发来说,首先我们要做的就是搭建Android开发环境,我们首先要配置Linux驱动的开发环境,接着还得配置开发Android应用程序以及Andr ...

  3. 2016暑假多校联合---A Simple Chess

    2016暑假多校联合---A Simple Chess   Problem Description There is a n×m board, a chess want to go to the po ...

  4. 配置webstorm使用supervisor时出现 /usr/bin/env: node: 没有那个文件或目录 解决方法

    配置好supervisor路径后 出现了 启动时出现了 /usr/bin/env: node: 没有那个文件或目录 需要讲.nvm下的node链接到, /usr/bin/目录下 sudo ln -s ...

  5. 君子性非异也,善假于物也 - Threejs 引入TrackballControls 查看场景

    君子性非异也,善假于物也 - Threejs 引入TrackballControls 查看场景 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循&quot ...

  6. Android反编译odex然后重新打包

    #Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ...

  7. Spring Bean装配方式

    Spring装配机制 在xml中进行显示配置 在Java中进行显示配置 隐式bean发现机制和自动装配 自动化装配bean 组件扫描(component scanning),Spring会自动发现应用 ...

  8. Python中模块之shutil及zipfile&tarfile的功能介绍

    shutil的功能介绍及其他打包.压缩模块 1. shutil模块的方法 chown 更改指定路径的属组 2. copy 拷贝文件和权限 方法:shutil.copy(src,dst,*,follow ...

  9. ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露

    一.前言 在涉及到后端项目的开发中,如何实现对于用户权限的管控是需要我们首先考虑的,在实际开发过程中,我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能,而在 Grapefruit.VuCore ...

  10. BigDecimal实现末尾去掉无用0

    BigDecimal 原生提供了 stripTrailingZeros 方法可以实现去掉末尾的 0,然后使用 toPlainString 可以输出数值,注意这里如果使用 toString()  会变成 ...