从给定的包中获取Ram数量

时间:2012-07-08 16:08:39

标签: android android-layout android-intent android-source android-package-managers

我想知道如何获得给定应用程序或安装在Android设备中的软件包名称的RAM使用量。到目前为止,我继续使用包管理器并使用我想要的包名称来提供它。但是,没有任何方法可以用来解决它。我不知道在这之后该怎么办。请有人帮助我获取当前特定应用程序正在使用的RAM量。

2 个答案:

答案 0 :(得分:0)

您可以使用adb工具获取应用消费的内存信息

adb shell dumpsys meminfo

可以通过adb shell dumpsys meminfo>将此输出转换为textfile。 meminfo.txt

以前对此in

的解释很好

How do I discover memory usage of my application in Android?

答案 1 :(得分:0)

此功能可以帮助您:

public static void logHeap(Class<?> clazz) {
        Double allocated = new Double(Debug.getNativeHeapAllocatedSize())/new Double((1048576));        
        Double available = new Double(Debug.getNativeHeapSize()/1048576.0);
        Double free = new Double(Debug.getNativeHeapFreeSize()/1048576.0);
        DecimalFormat df = new DecimalFormat();
        df.setMaximumFractionDigits(2);
        df.setMinimumFractionDigits(2);

        Log.d("memory-usage", "===================================================================================================");
        Log.d("memory-usage", "debug.heap native: allocated " + df.format(allocated) + "MB of " + df.format(available) + "MB (" + df.format(free) + "MB free) in [" + clazz.getName().replaceAll("com.myapp.android.","") + "]");
        Log.d("memory-usage", "debug.memory: allocated: " + df.format(new Double(Runtime.getRuntime().totalMemory()/1048576)) + "MB of " + df.format(new Double(Runtime.getRuntime().maxMemory()/1048576))+ "MB (" + df.format(new Double(Runtime.getRuntime().freeMemory()/1048576)) +"MB free)");

        System.gc();
        System.gc();
    }