java - 监控我的应用程序在Android中占用的内存

标签 java android memory memory-management

我正在尝试优化我的应用消耗的内存量。 当我的应用程序加载时(按住主页键然后选择任务管理器)我可以看到该应用程序正在占用 17MB,但该值不会刷新。 我如何实时跟踪该值? DDMS 有一个选项吗?请具体说明我已经搜索了很多但没有找到。 提前致谢

最佳答案

另一种更面向代码的内存跟踪调试方法出现在https://stackoverflow.com/a/6471227/978329中。带有指向包含更多信息的博客的链接。

简而言之,您可以小心地将以下代码(或它的改进版本)放入某种点击事件中,并将实时信息放入日志或 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);
        }
        });   

关于java - 监控我的应用程序在Android中占用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766898/

相关文章:

java - 与 androidx.work.logger 发生不兼容的ClassChangeError

java - Android 位图 - 内存不足

java - Spring MVC : Saving a Java List in PostgreSQL with Hibernate

Java JDBC 连接在方法之间共享/中继

c++ - 输入和存储用户希望的任意长度的字符串

hadoop - Flume 内存 channel 在启动时已满

java - 您是否通过将方法内变量声明为属性来节省垃圾收集器的工作?

java - Hadoop 字数统计

android - map 聚类 - 最大缩放标记仍然聚类

c# - 如何在 Eclipse 中导入 .net 库?