android Native堆
Android 应用开发大家都知道可以通过DDMS来查看应用程序进程占用的内存大小;然而Native
内存并不能在虚拟堆上看到;Android系统基于Linux,这样的话其具备Linux的大多数特性;在Linux当中有不少方法可以查看进程占用的内存,可以采用图形界面工具,也可以采用命令,具体如何查看这边就不介绍了。
Android Native 内存查看:
1.首先需要确保你的PC上装了adb工具;不同平台安装相应的版本。
2.adb shell 然后通过ps 命令查看手机上的进程。
- u0_a101 18271 174 656392 32856 ffffffff 00000000 S com.baidu.map.location
- u0_a101 18286 174 654332 34288 ffffffff 00000000 S com.baidu.map.location:re
- mote
- u0_a58 18325 174 673716 38868 ffffffff 00000000 S com.xiaomi.channel:pushse
- rvice
- u0_a58 18347 174 688288 43628 ffffffff 00000000 S com.xiaomi.channel
- root 18380 2 0 0 ffffffff 00000000 S kworker/0:3
- u0_a11 18440 174 686980 41256 ffffffff 00000000 S com.google.process.gapps
- u0_a11 18470 174 674016 36508 ffffffff 00000000 S com.google.android.gms
- u0_a11 18497 174 676944 38440 ffffffff 00000000 S com.google.android.gsf.lo
- gin
- u0_a11 18517 174 684580 41268 ffffffff 00000000 S com.google.process.locati
- on
- u0_a12 18588 174 654444 32760 ffffffff 00000000 S com.miui.cloudservice
- u0_a74 18623 174 838968 123264 ffffffff 00000000 R com.android.chrome
- u0_i134 18654 174 747068 56468 ffffffff 00000000 S com.android.chrome:sandbo
- xed_process0
- u0_a23 18767 174 654368 32372 ffffffff 00000000 S com.google.android.partne
- rsetup
3.查看进程:下面以com.android.chrome为例
找到com.android.chrome 进程id是18623:在终端上输入:
- shell@android:/ $ cat /proc/18623/status
- cat /proc/18623/status
- Name: .android.chrome
- State: S (sleeping)
- Tgid: 18623
- Pid: 18623
- PPid: 174
- TracerPid: 0
- Uid: 10074 10074 10074 1007
- Gid: 10074 10074 10074 1007
- FDSize: 256
- Groups: 1006 1015 1028 3003
- VmPeak: 842864 kB
- VmSize: 811216 kB
- VmLck: 0 kB
- VmPin: 0 kB
- VmHWM: 126080 kB
- <strong>VmRSS: 125484 kB</strong>
- VmData: 69156 kB
- VmStk: 136 kB
- VmExe: 8 kB
- VmLib: 68128 kB
- VmPTE: 298 kB
- VmSwap: 0 kB
- Threads: 46
- SigQ: 0/14952
- SigPnd: 0000000000000000
- ShdPnd: 0000000000000000
- SigBlk: 0000000000001204
- SigIgn: 0000000000000000
- SigCgt: 00000002000094e8
- CapInh: 0000000000000000
- CapPrm: 0000000000000000
- CapEff: 0000000000000000
- CapBnd: ffffffffffffffff
- Cpus_allowed: f
- Cpus_allowed_list: 0-3
- voluntary_ctxt_switches: 2759
- nonvoluntary_ctxt_switches: 2591
4.分析内存
熟悉Linux的童鞋知道proc目录下存放的是进程的各种信息;
第三步中看到的VmRSS就是进程当前占用的实际内存。
具体其他参数可以参考:进程信息参数详解
- <span style="font-size:18px">rss %ld (24) Resident Set Size: number of pages the
- process has in real memory. This is just the
- pages which count toward text, data, or stack
- space. This does not include pages which have not
- been demand-loaded in, or which are swapped out.</span>
5.ps会列出很多进程我们有时候需要直接找到对应的进程,linux大家都知道可以通过grep、或者find找到直接找到进程;
adb shell;trim版本的linux ,不直接支持这些命令;不过有个方法是通过busybox来解决;下面以查找chrome为例:
- <span style="font-size:18px">shell@android:/ $ ps | busybox grep chrome
- ps | busybox grep chrome
- u0_a74 18623 174 837800 125568 ffffffff 00000000 S com.android.chrome
- u0_i134 18654 174 752124 55908 ffffffff 00000000 S com.android.chrome:sandbo
- xed_process0</span>
android Native堆的更多相关文章
- Android Native 代码NDK开发学习笔记
引用:http://www.kunli.info/2011/08/21/android-native-code-study-note/ JNI,全称Java Native Interface,是用于让 ...
- NDK开发历程(一):android native code的调试方法
引用:http://www.cnblogs.com/ychellboy/archive/2013/02/22/2922683.html 使用NDK在android上做开发是一件“痛并快乐着”的差事,之 ...
- [原]Android Native Debug
1,安装adt插件,cdt插件2,SDK目录配置: Eclipse文件菜单选择“Window”--->“Preferences”--->“Android”--->设置“SDK Loc ...
- android 安装 出现Android Native Development Tools不能安装
Software being installed: Android Native Development Tools 20.0.0.v201206242043-391819 (com.android. ...
- GDB + gdbserver 远程调试android native code
原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuT ...
- Android Native App自动化测试实战讲解(上)(基于python)
1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...
- Android Native App自动化测试实战讲解(下)(基于python)
6.Appuim自动化测试框架API讲解与案例实践(三) 如图1,可以在主函数里通过TestSuite来指定执行某一个测试用例: 6.1,scroll():如图2 从图3中可以看到当前页面的所有元素r ...
- Android Native层异步消息处理框架
*本文系作者工作学习总结,尚有不完善及理解不恰当之处,欢迎批评指正* 一.前言 在NuPlayer中,可以发现许多类似于下面的代码: //============================== ...
- Android native层动态库注射
1.简单介绍 本文解说在Android native层.root权限下.注射动态库到目标进程,从而hook目标进程中动态库的函数的实现方式. 文中的源代码所有来源于网络.我仅仅是略微加以整理. 环境: ...
随机推荐
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- javascript之正则表达式
创建正则表达式的两种方法 显式: new RegExp("pattern"[,"flags"]); 例 var regex = new ("abc&q ...
- 【Android应用开发】EasyDialog 源码解析
示例源码下载 : http://download.csdn.net/detail/han1202012/9115227 EasyDialog 简介 : -- 作用 : 用于在界面进行一些介绍, 说明; ...
- EBS开发技术之Patch安装
Contents Document Control........................................................................ ...
- Android的TabHost组件-android的学习之旅(四十)
TabHost简介 虽然,官方建议用Fagment取代TabHost,但是我们还是大概的介绍一下.TabHost是一种非常简单的组件,TabHost可以很方便的在窗口放置多个标签页,每一个标签页相当于 ...
- 【一天一道LeetCode】#349. Intersection of Two Arrays
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...
- 新手学python(2):C语言调用完成数据库操作
继续介绍本人的python学习过程.本节介绍如何利用python调用c代码.内容还是基于音乐信息提取的过程,架构如图一.Python调用c实现的功能是利用python访问c语言完成mysql数据库操作 ...
- 中国电信中兴F460光猫破解及路由级联设置
http://blog.csdn.net/pipisorry/article/details/50636541 中国电信中兴F460光猫破解,获取超级密码,修改配置. 之前家里的宽带升级了,换成了光纤 ...
- xml解析之使用dom4j的api对xml文件进行CRUD(二)
在使用dom4j的api对xml文件进行CRUD(一)见博客http://blog.csdn.net/qq_32059827/article/details/51524330的基础上,再对做一次练习. ...
- Uva - 810 - A Dicey Problem
根据状态进行bfs,手动打表维护骰子滚动. AC代码: #include <iostream> #include <cstdio> #include <cstdlib&g ...