android Native堆

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

  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>  
目录
打赏
0
0
0
0
498
分享
相关文章
Android native层实现MediaCodec编码H264/HEVC
Android平台在上层实现mediacodec的编码,资料泛滥,已经不再是难事,今天给大家介绍下,如何在Android native层实现MediaCodec编码H264/HEVC,网上千篇一律的接口说明,这里不再赘述,本文主要介绍下,一些需要注意的点,权当抛砖引玉,相关设计界面如下:
300 0
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
80 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
[Android JNI] --- 静态注册和动态注册实现java和native相互调用
[Android JNI] --- 静态注册和动态注册实现java和native相互调用
175 0
Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncT
Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncT
196 0
Android Native Crash问题排查思路
Android Native Crash问题排查思路
1259 0
Android Native Crash问题排查思路

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
    15
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    18
  • 3
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    15
  • 4
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    4
  • 5
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    2
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    7
  • 7
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    4
  • 8
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    2
  • 9
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    12
  • 10
    Android实战经验之Kotlin中快速实现MVI架构
    9
  • 1
    android FragmentManager 删除所有Fragment 重建
    18
  • 2
    Android实战经验之Kotlin中快速实现MVI架构
    31
  • 3
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    36
  • 4
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    43
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    147
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    47
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    59
  • 8
    Android历史版本与APK文件结构
    164
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    48
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    42
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等