首页 > 代码库 > android内存检测
android内存检测
/** * 开启线程检测软件可用内存情况,软件退出后, 调用System.exit(0)该线程才会停止 * * * @param sleep * 每隔一段时间检测内存 * @param standard * 内存超过多少比例报警 */ public static void memoryWatch(final int sleep, final int standard) { if (sleep <= 0) { Log.e(TAG, "memoryWatch, invalid sleep = 0!"); return; } if (standard <= 0 && standard > 100) { Log.e(TAG, "memoryWatch, invalid standard percent = " + standard); return; } new Thread(new Runnable() { @Override public void run() { Log.d(TAG, "memoryWatch, start thread!"); while (true) { long divisor = 1024 * 1024; long maxMem = Runtime.getRuntime().maxMemory(); long totalMem = Runtime.getRuntime().totalMemory(); long freeMem = Runtime.getRuntime().freeMemory(); int percent = (int) (totalMem * 100 / maxMem); Log.d(TAG, "memoryWatch" + ", app maxMem = " + maxMem / divisor + "M, totalMem = " + totalMem / divisor + "M, freeMem = " + freeMem / divisor + "M, percent = " + percent); if (standard <= percent) { if (freeMem / divisor <= 2) { Log.e(TAG, "memoryWatch" + ", app maxMem = " + maxMem / divisor + "M, totalMem = " + totalMem / divisor + "M, freeMem = " + freeMem / divisor + "M, percent = " + percent); } else if (freeMem / divisor >= totalMem / (divisor * 2)) { Log.e(TAG, "memoryWatch" + ", app maxMem = " + maxMem / divisor + "M, totalMem = " + totalMem / divisor + "M, freeMem = " + freeMem / divisor + "M, percent = " + percent + "%" + ", reset memory warn flag = true!"); } } try { Thread.sleep(sleep); } catch (InterruptedException e) { Log.e(TAG, "memoryWatch, thread sleep exception : " + e); } } } }).start(); }
android内存检测
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。