可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have built an Android app that is working fine and as expected with a tablet: Acer. 7-inch API 21.
I recently got a new tablet: Acer. 10-inch API 22.
Now I am getting my logs spammed with this line.
04-12 18:23:27.371 8776-9082/com.callbell.callbell D/Surface: Surface::setBuffersDimensions(this=0x7f9aa44000,w=800,h=1280)
and the screen will freeze and go blank at random intervals. I have not seen any errors in the log and the only reference I can find to this log line is here
https://android.googlesource.com/platform/frameworks/native/+/fe94bd262bc0a33d709aee8fb70c1369656b479b/libs/gui/Surface.cpp
UPDATE I've tried this on a few devices with varying success.
NO ISSUES:
Samsung Galaxy Tab 7"
Samsung Galaxy Tab 10"
Acer Iconia 8"
ISSUES:
Acer Iconia 10"
回答1:
These log come when we have EditText with cursor, And that cursor blink is responsible to redraw screen.
Surface::setBuffersDimensions(this=0x7f4ccc7c00,w=1080,h=1920)
D/OpenGLRenderer: WorkerThread 0x7f7c07f000 running
When I did
android:cursorVisible="false"
these logs were gone.
So when studio screen become spam with these logs, Its an alert for developer to check UI draw pattern.
回答2:
This log means that something on your screen is being redrawn.
It is shown only on few devices, but whatever the device you are using, you can enable 'hardware layers updates' or 'gpu view updates' in developer options and you'll see flashed zone, which is being redrawn.
Moreover, if the issue exists on one device, it's likely that it exists on others too.