public static String getPss() { // 获取Pss Debug.MemoryInfo mi = new Debug.MemoryInfo(); Debug.getMemoryInfo(mi); long memorySize = Debug.getPss(); // 保留有效数字 DecimalFormat df = new DecimalFormat("#.00"); String pssMB = df.format((memorySize / 1024.0)); return pssMB; } public static String getPss(Context context){ ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); int pid = android.os.Process.myPid(); int[] pids = new int[]{pid}; int totalPss = 0; try { Debug.MemoryInfo[] processMemoryInfo = activityManager.getProcessMemoryInfo(pids); for (Debug.MemoryInfo info : processMemoryInfo) { totalPss = info.getTotalPss(); } }catch (Exception e) { Log.i(TAG, "Exception:" + e.getMessage()); } return String.format(Locale.US, "%.1f", totalPss/1024.0); }
时间: 2024-02-15 16:27:01 浏览: 110
PSS_corr.zip_3G/4G/5G开发_matlab_
5星 · 资源好评率100%
这段代码定义了两个静态方法,它们的名称相同,但是方法的参数不同,因此这两个方法是重载(overload)关系。它们都返回一个字符串类型的Pss值,表示应用程序使用的物理内存大小。
第一个方法`getPss()`直接调用了`Debug.getPss()`方法来获取Pss值,然后使用`DecimalFormat`将Pss值保留两位小数,最后将其转换成字符串类型并返回。
第二个方法`getPss(Context context)`需要传入一个`Context`类型的参数,通过`ActivityManager`获取当前进程的Pss值,并使用`String.format`将结果格式化成字符串并返回。这个方法更加灵活,可以在任何需要获取Pss值的时候使用,并且不需要依赖于`Debug`类。
阅读全文