Android获取app内存使用
程序员文章站
2022-03-10 20:35:38
int memSize = 0; if( Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1 ){ memSize = getPackageMemoryUsage( topAppName ); }else{ .....
int memSize = 0;
if( Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1 ){
memSize = getPackageMemoryUsage( topAppName );
}else{
memSize = getPidMemorySize( getPid() );
}
public int getPackageMemoryUsage(String packagename){
//dumpsys meminfo com.ztl.helper .然后取 TOTAL那一行
String sss= FileUtli.execRootCmd("dumpsys meminfo " + packagename);
Log.e("meminfo","返回" + sss);
int nIndex = sss.indexOf("TOTAL");
String subStr = sss.substring(nIndex+9, nIndex + 19); //;( nIndex, 100);
int eIndex = subStr.indexOf(' ');
String totalInBytes = subStr.substring(0, eIndex);
int nTotal = Integer.valueOf(totalInBytes);
return Integer.valueOf( totalInBytes );
}
public int getPidMemorySize(int pid) {
ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
int[] myMempid = new int[] { pid };
Debug.MemoryInfo[] memoryInfo = am.getProcessMemoryInfo(myMempid);
memoryInfo[0].getTotalSharedDirty();
int memSize = memoryInfo[0].getTotalPss();
return memSize;
}
方法如上。 因为7.1并不允许其他程序获取别的程序的内存。所以只能曲线救国。
本文地址:https://blog.csdn.net/glunoy/article/details/111868390
上一篇: 括号生成
下一篇: 安卓学习笔记34:默默工作的服务
推荐阅读
-
android ddms heap内存分析工具使用步骤(监测内存)
-
Android使用网络获取定位的方法
-
Android开发中使用外部应用获取SD卡状态的方法
-
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
-
android使用webwiew载入页面使用示例(Hybrid App开发)
-
Android开发实现的获取sdcard大小及内存大小工具类
-
android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)
-
Android获取手机型号/系统版本号/App版本号等信息实例讲解
-
实时获取股票数据的android app应用程序源码分享
-
Android 手机app三种方法获取定位地址(自带API,外接SDK,获取外网IP)