Это связано с тем, как lockCanvas
действительно реализовано в графической структуре Android.
Вы, вероятно, уже знаете, что lockCanvas
вернет вам свободный фрагмент памяти, к которому вы будете обращаться. free означает, что эта память не использовалась для композиции и не для отображения. Внутренне, проще говоря, SurfaceView поддерживается двойным буфером, один для рисования, другой для композиции / отображения. Этот двойной буфер управляется BufferQueque. Если композиция / отображение медленнее, чем рисование, нам нужно подождать, пока у нас будет свободный буфер.