YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Simplified subtitles

← 02-05 GPU_Problem_Overdraw

Get Embed Code
13 Languages

Showing Revision 7 created 02/10/2016 by QA_SP_10_ZH_SM.

  1. 如果你曾经粉刷过房子,你应该知道
  2. 给墙壁粉刷工作量非常大
    如果你需要重新粉刷
  3. 第一次的粉刷就白干了
  4. 同样的道理,你的应用程序
    会因为过度绘制,
  5. 从而导致性能问题
  6. 如果你想兼顾高性能和完美的设计
  7. 往往会碰到一种性能问题
    即,过渡绘制
  8. 过度绘制是一个术语
  9. 指的是屏幕上的某个像素点
    在同一帧的时间内被绘制了多次
  10. 假如我们有一堆重叠的UI卡片
    最接近用户的卡片在最上面
  11. 其余卡片都藏在下面
  12. 也就是说我们花大力气绘制的
    那些下面的卡片基本都是不可见的
  13. 问题就在于此
    因为每次像素经过渲染后
  14. 并不是用户最后看到的部分
    这就是在浪费GPU的时间
  15. 目前流行的一些布局是一把双刃剑
  16. 带给我们漂亮视觉感受的同时
  17. 也造成过度绘制的问题
  18. 为了最大限度地提高应用程序的性能
  19. 你必须尽量减少过度绘制
  20. 幸运的是
  21. Android手机提供了查看过度绘制情况的工具
  22. 在开发者选项中打开
    "Show GPU overdraw"选项
  23. 手机屏幕显示会出现一些异常
    不用过于惊慌
  24. 非常正常
  25. Android在屏幕上使用不同颜色
  26. 标记过度绘制的区域
  27. 如果某个像素点只渲染了一次
  28. 你看到的是它原来的颜色
  29. 随着过度绘制的增多
    标记颜色也会逐渐加深
  30. 例如1倍过度绘制会被标记为蓝色
  31. 表示这个像素点绘制了2次
  32. 2倍、3倍、4倍过度绘制遵循同样的模式
  33. 所以当你调试应用程序的用户界面时
  34. 目标就是尽可能地减少过度绘制
  35. 将红色区块转变成蓝色区块
  36. 为了完成目标
    有两种清除过度绘制的方法
  37. 首先要从视图中清除那些
  38. 不必要的背景和图片,
    它们不会在最终渲染图像中显示
  39. 记住,这些都会影响性能
  40. 其次 ,对视图中重叠的屏幕区域进行定义
  41. 从而降低CPU和GPU的消耗
  42. 现在我们加入Chris
    他将令我们更了解过度绘制