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. JAVA对象及属性的内存堆栈管理(通过小程序简单说明)

    JAVA在执行过程中会划分4个内存区域(heap.stack.data segment.code segment)代码区(codesegment):java开始执行会把代码加载到code segmen ...

  2. android推荐使用dialogFrament而不是alertDialog

    DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...

  3. FFmpeg源代码结构图 - 编码

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  4. FFmpeg源代码简单分析:avformat_find_stream_info()

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  5. 【问题汇总】ScrollView嵌套ListView的问题

    因产品的需求,需要在ScrollView中嵌套ListView来达到效果.众所周知,ScrollVIew和ListView都是可滑动的容器,嵌套使用一定会出现一些问题. [html] view pla ...

  6. antlr v4 使用指南连载3——g4文件概览

    g4文件概览        在深入介绍之前,有必要先给大家了解一下g4文件的结构,以便对如何编写语法规则文件有个全局的认识,我想这是大有禆益的.因为这样我们就可以很清晰地知道需要的东西写在哪里,或者哪 ...

  7. PGM:概率图模型Graphical Model

    http://blog.csdn.net/pipisorry/article/details/51461878 概率图模型Graphical Models简介 完全通过代数计算来对更加复杂的模型进行建 ...

  8. Tomcat内核之ASCII解码的表驱动模式

    我们知道Tomcat通信是建立在Socket的基础上,而套接字在服务器端和客户端传递的报文都是未经过编码的字节流,每8位组成1个字节,计算机以二进制为基础,这是由于使用晶体管的开合状态表示1和0,这样 ...

  9. iOS中 项目开发易错知识点总结 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 点击return取消textView 的响应者 - (BOOL)textFieldShouldReturn:(UI ...

  10. iOS开发中 常用枚举和常用的一些运算符(易错总结)

    1.色值的随机值: #define kColorValue arc4random_uniform(256)/255.0 // arc4random_uniform(256)/255.0; 求出0.0~ ...