Android获取app内存使用
程序员文章站
2022-06-19 17:45:07
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
上一篇: 网站提升流量最常用最好的推广方法介绍
推荐阅读
-
android使用webwiew载入页面使用示例(Hybrid App开发)
-
Android开发实现的获取sdcard大小及内存大小工具类
-
android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)
-
Android获取手机型号/系统版本号/App版本号等信息实例讲解
-
实时获取股票数据的android app应用程序源码分享
-
Android 手机app三种方法获取定位地址(自带API,外接SDK,获取外网IP)
-
使用python获取CPU和内存信息的思路与实现(linux系统)
-
Android使用AsyncQueryHandler实现获取手机联系人功能
-
Java/Android 大文件获取SHA1防止内存溢出
-
C++/Qt/QtQuick高级应用系列(4)_获取CPU/内存使用率