Korean subtitles

← 05-09 Network_and_Battery_Drain

05-09 Network_and_Battery_Drain

Get Embed Code
13 Languages

Showing Revision 7 created 05/20/2016 by nc_translator1.

  1. 시작하기 전에 한가지 짚고 넘어갈게요
  2. 배터리의 관점에서 네트워킹은
  3. 가장 크고, 나쁘고, 지저분한 악당이에요
  4. 여러분의 스마트폰에는 사실상 HAM 라디오와 같은 하드웨어가 있어요
  5. 이 하드웨어의 역할은 주변 기지국과 연결해
  6. 대량 데이터를 전송하는 겁니다
  7. 하지만 이 칩은 항상 켜져 있지 않아요
  8. 데이터 패킷을 보낸 후에
  9. 라디오 칩은 짧은 시간 동안 작동상태를 유지합니다
  10. 서버에서 보내는 답장을 기다리기 위해서 말이죠
  11. 하지만 들어오는 데이터가 없다면 배터리를 아끼기 위해 종료돼요
  12. 보셨듯이 칩이 켜지면 배터리 사용량이 급등하고
  13. 응답을 기다리기 위해 켜진 상태를 유지하면
  14. 계속 전력을 소모하게 됩니다
  15. 애플리케이션이 라디오와 소통하는 방법은 크게 2가지로 나뉩니다
  16. 첫째로는 당장 처리해야 하는 작업들이 있어요
  17. 이런 작업들은 사용자의 입력에 반응하거나
  18. 애플리케이션의 UI를 업데이트해야 하는 상황이에요
  19. 예를 들어 사용자가 트윗을 요청했다고 생각해보세요
  20. 트렌드 중인 해시태그 관련 트윗들을 말이죠
  21. 이건 사용자가 실행한 작업이기 때문에
  22. 애플리케이션은 최대한 빨리 반응을 해야 해요
  23. 반면 타이밍이 중요하지 않은 네트워크 작업들도 있어요
  24. 예를 들어 사용자 정보 업로드,
  25. 백그라운드 통계정보 동기화,
  26. 소셜 미디어 사진 크기 조절 등이 있죠
  27. 첫 번째 종류의 작업들은 바로 수행되어야 하지만
  28. 사용자에게 반응을 보여주기 위해 말이죠
  29. 두 번째 종류의 작업은 나중으로 미뤄도 돼요
  30. 배터리를 효율적으로 사용할 수 있게 말이죠
  31. 여러분이 사용하는 애플리케이션의 네트워크 요청 대부분은
  32. 두 번째 종류일 가능성이 매우 커요
  33. 네트워크 작업을 더 효율적으로 처리하는 방법은
  34. 2가지 단계로 나눌 수 있어요
  35. 우선 Battery Historian 툴에서
    여러분 애플리케이션의 mobile_radio 열을 자세히 보세요
  36. 보이시는 빨간 막대들은 라디오가 켜진 상태를 나타내요
  37. 막대 사이의 빈 공간은 라디오가 꺼져있는 상태를 의미합니다
  38. 그래프에서 얇은 막대와 빈 공간이 많이 보인다면
  39. 이는 성능 문제를 의미해요
  40. 라디오 시작과 종료를 반복해 churn이 발생한다는 뜻이기 때문이죠
  41. 대신 저희가 원하는 그래프 모양은 두꺼운 막대와 빈 공간이에요
  42. 이런 형태는 네트워크 요청을 최소화해 오버헤드를 줄일 수 있어요
  43. 아니면 라디오를 전혀 사용하지 않으면 가장 좋겠죠
  44. 스마트폰이 와이파이에 연결될 때까지 기다렸다
  45. 전력 소모가 적은 와이파이 하드웨어로 작업을 처리하는 거예요
  46. 문제는 네트워크 요청을 배칭, 캐싱, 그리고 미루는
    코드는 작성하기 무지 어려워요
  47. 그래서 저희가 대신해드렸어요
  48. 안드로이드의 L 버젼 출시와 함께 제공된 JobScheduler API는
  49. 네트워크 요청 관리를 포함한 많은 작업을
  50. 여러분 대신해줘요
  51. 하지만 제가 JobScheduler API에 대해서 설명해드리는 것보다
  52. 여러분께서 직접 사용해 보시는 건 어떨까요?