按下按钮时,Android内存使用量会增加

时间:2015-07-24 14:45:19

标签: java android

我正在创建一个计算器应用程序,这样我就可以熟悉Java(刚开始学习)和Android SDK。我有一个关于内存使用的问题。当我点击“=”按钮时,每次点击时内存增加约0.03 MB(即使在结果变量显示“Infinity”之后)。当我达到堆限制时,它下降大约8 MB。在=按钮上调用的方法是:

public double calculate() {
    switch(_op) {
        case '/':
            result = _firstnum / _secondnum;
            break;
        case '*':
            result = _firstnum * _secondnum;
            break;
        case '-':
            result = _firstnum - _secondnum;
            break;
        case '+':
            result = _firstnum + _secondnum;
            break;
    }

    _firstnum = result;

    return result;
}

如您所见,我没有创建任何变量或对象。引用的所有变量都已声明并初始化。这个方法只是做简单的算术,为什么它会增加内存使用量呢?

1 个答案:

答案 0 :(得分:2)

内存使用量增加“0.03MB”合理

当您按下“=”按钮时,该方法执行算术运算。这个操作很轻,但在你的应用程序当时不是唯一正在发生的事情

当您触摸屏幕时,会拦截触摸事件并执行所需的操作。也可以重新绘制视图以显示结果。还有很多其他小型Android进程正在发生幕后

所以,这里绝对没有什么可担心的。当系统认为合适时,它会自动垃圾收集不必要的对象并释放堆。