YouTube

Got a YouTube account?

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

Korean subtitles

← 02-07 Visualize_and_Fix_Overdraw_-_Solution

02-07 Visualize_and_Fix_Overdraw_-_Solution

Get Embed Code
13 Languages

Showing Revision 6 created 05/08/2016 by nc_translator1.

  1. 불필요한 배경의 개수는 4개였어요

  2. 나머지 2개의 XML 파일에서 말이예요
  3. 같이 한번 살펴보아요
  4. 기본 액티비티 XML에서는
  5. 흰 배경을 유지한다는 것을 기억하시죠?
  6. 그런데 fragment_chats.xml에서는
  7. 불필요한 흰색 배경 속성을 선언했네요
  8. 이미 기본 액티비티에서 선언했기 때문에
    이 부분은 필요하지 않아요
  9. 이 파일엔 그게 전부네요
  10. 개별적인 채팅 항목을 지정한 chat_item.xml 파일을 보면
  11. 불필요한 배경이 3개 있어요
  12. 바로 여기에 하나 있고
  13. 이 녀석도 필요하지 않고
  14. 마지막으로 TextView에
    불필요한 배경 속성이 하나 더 있네요
  15. 그럼 이 부분들을 삭제할게요
  16. 좋아요
  17. 그럼 overdraw가 얼마나 줄었나 볼까요?
  18. 불필요한 배경을 지운 후 보이는 화면의 모습입니다
  19. 훨씬 깔끔해졌죠?
  20. 좋아요
    잘 해주셨어요
  21. 이제 거의 끝났습니다
  22. 하지만 아직 한가지 최적화할 수 있는 부분이 남았어요
  23. 아바타들 주변 overdraw를 보세요
  24. 저희가 사각형을 우선적으로 그리고
    그 위에 아바타를 그려서 일어나는 현상이에요
  25. 그럼 조금만 더 똑똑하게 접근해보아요
  26. 아바타를 찾지 못 할 경우에만 배경을 지정해볼게요
  27. 조건문 코드로 할 수 있어요
  28. 한번 ChatAdapter 코드로 가 볼게요
  29. 이 코드는 각 채팅 아이템의
    내용을 채우는 역할을 하고 있어요
  30. getView() 메소드를 볼게요
  31. 아래를 보시면 여기에 정의된 로직은
  32. 아바타와 배경색을 모두 설정하고 있어요
  33. 여기를 조금만 더 똑똑하게 작성해보아요
  34. 우선 아바타가 나타나지 않을 때만
  35. 배경을 설정하도록 합시다
  36. 그리고 아바타가 있으면
    그땐 배경을 투명으로 설정하고
  37. 아바타만 로드할게요
  38. 이렇게 하시면 됩니다
  39. 업데이트된 코드에요
  40. 아바타가 없을 때는
  41. 아바타가 있어야 할 공간에 투명한 배경을 로드합니다
  42. 그다음 아바타 대신 배경색을 입힐 거예요
  43. 아바타가 있을 경우엔
  44. 아바타를 로드하고
  45. 배경색을 투명하게 설정합니다
  46. 이렇게 수정하면 overdraw를 최소화하죠
  47. 그럼 얼마나 개선됐는지 볼게요
  48. 좋은데요
  49. 여기 아바타 주변을 보시면
  50. 업데이트 된 코드는 overdraw가 많이 줄었어요
  51. 그게 마지막 수정사항이었습니다
    이제 다 됐어요
  52. 다시 한번 정리해 볼까요?
  53. 처음 시작했을 땐 overdraw가 이렇게 많았죠
  54. 처음으로 한 것은 배경 drawable을 null값으로 설정하고
  55. 그 다음엔 불필요한 배경 속성을
  56. XML에서 삭제했어요
  57. 그리고 마지막으로
  58. 아바타가 없을 경우에만 배경색을 설정하도록 수정했어요
  59. 모든 수정사항을 적용한 결과물입니다
  60. Overdraw 측면에서 훨씬 깔끔해졌습니다
  61. 정말 잘 하셨어요
  62. 그리고 꼭 기억하세요
    성능은 중요합니다