Android 应用开发大家都知道可以通过DDMS来查看应用程序进程占用的内存大小;然而Native
内存并不能在虚拟堆上看到;Android系统基于Linux,这样的话其具备Linux的大多数特性;在Linux当中有不少方法可以查看进程占用的内存,可以采用图形界面工具,也可以采用命令,具体如何查看这边就不介绍了。

Android Native 内存查看:

1.首先需要确保你的PC上装了adb工具;不同平台安装相应的版本。

2.adb shell 然后通过ps 命令查看手机上的进程。

[html] view
plain
 copy

  1. u0_a101   18271 174   656392 32856 ffffffff 00000000 S com.baidu.map.location
  2. u0_a101   18286 174   654332 34288 ffffffff 00000000 S com.baidu.map.location:re
  3. mote
  4. u0_a58    18325 174   673716 38868 ffffffff 00000000 S com.xiaomi.channel:pushse
  5. rvice
  6. u0_a58    18347 174   688288 43628 ffffffff 00000000 S com.xiaomi.channel
  7. root      18380 2     0      0     ffffffff 00000000 S kworker/0:3
  8. u0_a11    18440 174   686980 41256 ffffffff 00000000 S com.google.process.gapps
  9. u0_a11    18470 174   674016 36508 ffffffff 00000000 S com.google.android.gms
  10. u0_a11    18497 174   676944 38440 ffffffff 00000000 S com.google.android.gsf.lo
  11. gin
  12. u0_a11    18517 174   684580 41268 ffffffff 00000000 S com.google.process.locati
  13. on
  14. u0_a12    18588 174   654444 32760 ffffffff 00000000 S com.miui.cloudservice
  15. u0_a74    18623 174   838968 123264 ffffffff 00000000 R com.android.chrome
  16. u0_i134   18654 174   747068 56468 ffffffff 00000000 S com.android.chrome:sandbo
  17. xed_process0
  18. u0_a23    18767 174   654368 32372 ffffffff 00000000 S com.google.android.partne
  19. rsetup

3.查看进程:下面以com.android.chrome为例

找到com.android.chrome 进程id是18623:在终端上输入:

[plain] view
plain
 copy

  1. shell@android:/ $ cat /proc/18623/status
[plain] view
plain
 copy

  1. cat /proc/18623/status
  2. Name:   .android.chrome
  3. State:  S (sleeping)
  4. Tgid:   18623
  5. Pid:    18623
  6. PPid:   174
  7. TracerPid:      0
  8. Uid:    10074   10074   10074   1007
  9. Gid:    10074   10074   10074   1007
  10. FDSize: 256
  11. Groups: 1006 1015 1028 3003
  12. VmPeak:   842864 kB
  13. VmSize:   811216 kB
  14. VmLck:         0 kB
  15. VmPin:         0 kB
  16. VmHWM:    126080 kB
  17. <strong>VmRSS:    125484 kB</strong>
  18. VmData:    69156 kB
  19. VmStk:       136 kB
  20. VmExe:         8 kB
  21. VmLib:     68128 kB
  22. VmPTE:       298 kB
  23. VmSwap:        0 kB
  24. Threads:        46
  25. SigQ:   0/14952
  26. SigPnd: 0000000000000000
  27. ShdPnd: 0000000000000000
  28. SigBlk: 0000000000001204
  29. SigIgn: 0000000000000000
  30. SigCgt: 00000002000094e8
  31. CapInh: 0000000000000000
  32. CapPrm: 0000000000000000
  33. CapEff: 0000000000000000
  34. CapBnd: ffffffffffffffff
  35. Cpus_allowed:   f
  36. Cpus_allowed_list:      0-3
  37. voluntary_ctxt_switches:        2759
  38. nonvoluntary_ctxt_switches:     2591

4.分析内存

熟悉Linux的童鞋知道proc目录下存放的是进程的各种信息;

第三步中看到的VmRSS就是进程当前占用的实际内存。

具体其他参数可以参考:进程信息参数详解

[plain] view
plain
 copy

  1. <span style="font-size:18px">rss %ld     (24) Resident Set Size: number of pages the
  2. process has in real memory.  This is just the
  3. pages which count toward text, data, or stack
  4. space.  This does not include pages which have not
  5. been demand-loaded in, or which are swapped out.</span>

5.ps会列出很多进程我们有时候需要直接找到对应的进程,linux大家都知道可以通过grep、或者find找到直接找到进程;

adb shell;trim版本的linux ,不直接支持这些命令;不过有个方法是通过busybox来解决;下面以查找chrome为例:

[plain] view
plain
 copy

  1. <span style="font-size:18px">shell@android:/ $ ps | busybox grep chrome
  2. ps | busybox grep chrome
  3. u0_a74    18623 174   837800 125568 ffffffff 00000000 S com.android.chrome
  4. u0_i134   18654 174   752124 55908 ffffffff 00000000 S com.android.chrome:sandbo
  5. xed_process0</span>

android Native堆的更多相关文章

  1. Android Native 代码NDK开发学习笔记

    引用:http://www.kunli.info/2011/08/21/android-native-code-study-note/ JNI,全称Java Native Interface,是用于让 ...

  2. NDK开发历程(一):android native code的调试方法

    引用:http://www.cnblogs.com/ychellboy/archive/2013/02/22/2922683.html 使用NDK在android上做开发是一件“痛并快乐着”的差事,之 ...

  3. [原]Android Native Debug

    1,安装adt插件,cdt插件2,SDK目录配置: Eclipse文件菜单选择“Window”--->“Preferences”--->“Android”--->设置“SDK Loc ...

  4. android 安装 出现Android Native Development Tools不能安装

    Software being installed: Android Native Development Tools 20.0.0.v201206242043-391819 (com.android. ...

  5. GDB + gdbserver 远程调试android native code

    原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuT ...

  6. Android Native App自动化测试实战讲解(上)(基于python)

    1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...

  7. Android Native App自动化测试实战讲解(下)(基于python)

    6.Appuim自动化测试框架API讲解与案例实践(三) 如图1,可以在主函数里通过TestSuite来指定执行某一个测试用例: 6.1,scroll():如图2 从图3中可以看到当前页面的所有元素r ...

  8. Android Native层异步消息处理框架

     *本文系作者工作学习总结,尚有不完善及理解不恰当之处,欢迎批评指正* 一.前言 在NuPlayer中,可以发现许多类似于下面的代码: //============================== ...

  9. Android native层动态库注射

    1.简单介绍 本文解说在Android native层.root权限下.注射动态库到目标进程,从而hook目标进程中动态库的函数的实现方式. 文中的源代码所有来源于网络.我仅仅是略微加以整理. 环境: ...

随机推荐

  1. OpenCV, MatBGR2ARGB, ARGB2MatBGR

    代码片段~ unsigned int* abMatBGR2ARGB(Mat imag) { int nCols; int nRows; unsigned int *pbuff = NULL; if(i ...

  2. Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎

    CocoaPod是一个用ruby实现,用于方便的管理Xcode中第三方插件的管理器.用它我们可以很方便的安装和升级插件而不用担心破坏原有的项目. 而pop是一个用于实现App中动画的引擎,它是由Fac ...

  3. Linux Java开发坏境搭建,Ubuntu-jdk+tomcat+eclipse+svn 包安装详细操作

    更新时间2015-03-15 更新2015-04-12 svn安装更新 第一步 安装jdk (在linux上使用yum安装JDK  http://blog.chinaunix.net/uid-1546 ...

  4. Android初级教程:对文件和字符串进行MD5加密工具类

    转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/52200008   点击打开链接 之前写过一篇博文,是针对字符串进行md5加密的.今 ...

  5. MyBatis与MySQL交互

    MyBatis是我接触到的第一个框架,下面谈一谈我第一次使用MyBatis时的感悟. 首先是一些准备工作 下载相关的jar包.到GitHub上就行,上面有全面和完整的jar文件 在eclipse上安装 ...

  6. Hibernate之持久化状态

    可持久化对象有以下三种状态: 临时状态(Transient):对象在保存进数据库之前为临时状态,这时数据库中没有该对象的信息,如果没有持久化,程序退出后临时状态的对象信息将会丢失.随时可能被垃圾回收器 ...

  7. path和classpath的区别

    path的作用 path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行JAVA文件,但必须把完整的路径写出来,如C:\Program Files\Java\jdk1.6 ...

  8. 固定宽高的DIV绝对居中示例

    看了一些代码,然后自己试验了一番,分享如下示例: 实现点: 如果元素的宽高固定,那么,css指定样式为top:50%;left:50%; 而margin-top和 margin-left 指定为负数, ...

  9. ROS_Kinetic_05 ROS基础内容(二)

    ROS_Kinetic_05 ROS基础内容(二) 1. ROS节点node 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes ...

  10. Server2012R2 ADFS3.0 The same client browser session has made '6' requests in the last '13'seconds

    本问题是在windows server2012R2系统ADFS3.0环境下遇到的,CRM2013部署ADFS后运行一段时间(大概有一两个月)后在IE浏览器中访问登陆界面点击登陆后就报以下错误 &quo ...