Java 在Android中监视我的应用程序使用的内存

Java 在Android中监视我的应用程序使用的内存,java,android,memory,memory-management,Java,Android,Memory,Memory Management,我正在尝试优化我的应用程序消耗的内存量。 当我的应用程序加载时(按住home键,然后选择task manager),我可以看到应用程序占用了17MB,但该值不会刷新。 如何实时跟踪该值?DDM有这样的选择吗?请具体一点,我已经搜索了很多,但什么也没找到。 提前感谢是的,您可以使用DDMS,这里有一个指南。查看“查看进程的堆使用情况”下的使用eclipse内存分析器 安装垫子后。在eclipse IDE中,从设备视图中选择应用程序并单击转储HPROF文件。它会自动打开一个向导,供您选择要执行的分

我正在尝试优化我的应用程序消耗的内存量。 当我的应用程序加载时(按住home键,然后选择task manager),我可以看到应用程序占用了17MB,但该值不会刷新。 如何实时跟踪该值?DDM有这样的选择吗?请具体一点,我已经搜索了很多,但什么也没找到。
提前感谢

是的,您可以使用DDMS,这里有一个指南。查看“查看进程的堆使用情况”下的使用eclipse内存分析器


安装垫子后。在eclipse IDE中,从设备视图中选择应用程序并单击转储HPROF文件。它会自动打开一个向导,供您选择要执行的分析类型。

中会出现另一种更面向代码的内存跟踪调试方法,并带有指向包含更多信息的博客的链接

简而言之,您可以小心地将以下代码(或其改进版本)放入某种点击事件中,并将实时信息放入日志或toast消息中:

View v = (View) findViewById(R.id.SomeLayout);

    v.setOnClickListener(new OnClickListener() {
        public void onClick(View view) {

            Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
            Debug.getMemoryInfo(memoryInfo);

            String memMessage = String.format("App Memory: Pss=%.2f MB, Private=%.2f MB, Shared=%.2f MB",
                    memoryInfo.getTotalPss() / 1024.0,
                    memoryInfo.getTotalPrivateDirty() / 1024.0,
                    memoryInfo.getTotalSharedDirty() / 1024.0);

            Toast.makeText(ThisActivity.this,
                    memMessage,
                    Toast.LENGTH_LONG).show();
            Log.i("log_tag", memMessage);
        }
        });