Slide 1

Slide 1 text

Rogery! Android Team Leader! 透過 GCM 實作跨裝置資料同步 @Android Taipei

Slide 2

Slide 2 text

•  關於 Rogery  &  KKBOX  Android  Team   •  Concept  &  Idea   •  Implement   •  Demo   •  Q  &  A   Agenda

Slide 3

Slide 3 text

•  從 Android  1.0  開始研發 KKBOX  Android,   開發經驗至今已四年以上     •  在 KKBOX  擔任 Android  Team  Leader     •  熱愛音樂創作的工程師 http://youtu.be/IwsNKobAkS0   關於 Rogery

Slide 4

Slide 4 text

•  產品:KKBOX  Android,  KKBOX  Music  Store,  UtaPass   •  裝置:Handset,  Tablet,  STB 和車機   •  團隊人數從 1 人到 11 人   關於 KKBOX Android Team

Slide 5

Slide 5 text

Concept & Idea

Slide 6

Slide 6 text

GCM (Google Cloud Message) •  幫助開發者發送推播訊息到各個 Android 裝置   •  首次在 Google  IO  2012 亮相   •  前身是 C2DM  (Cloud  to  Device  Messaging)  

Slide 7

Slide 7 text

KKBOX use GCM •  Push  NoPficaPon: 推播跟隨的臺長已經上線訊息   •  只用在訊息通知  

Slide 8

Slide 8 text

Concept & Idea 直到我看見…

Slide 9

Slide 9 text

Google IO 2013 – StopWatch Demo

Slide 10

Slide 10 text

Concept & Idea 怎麼能那麼即時同步?

Slide 11

Slide 11 text

Concept & Idea Think: KKBOX 能用在哪裡?

Slide 12

Slide 12 text

Concept & Idea 歌單立即同步?!

Slide 13

Slide 13 text

Polling vs Pushing •  Polling: 每個裝置定期去向 Server 問目前最新的狀態   •  目前 KKBOX 實作歌單同步的方式   •  容易實作   •  耗電:手機一直送連線、Server 一直收連線  

Slide 14

Slide 14 text

Polling vs Pushing •  Pushing: 當 Server 有狀態更新時去通知裝置     •  省電:連線數降低、Server  Loading 降低  

Slide 15

Slide 15 text

Implement

Slide 16

Slide 16 text

POC KKGCMSyncServer (Google App Engine) KKGCMSyncClient

Slide 17

Slide 17 text

Registration (1) (2) (3) 1.  register  GCM  -­‐  ref.1   2.  return  GCM  registraPon  ID  - ref.1 ref.2   3.  put  registracPon  ID  to  server  -­‐  ref.3  

Slide 18

Slide 18 text

Push & Sync (2) (3) (1) 1.  push change to server -­‐  ref.1  ref.2   2.  send  sync  message  to  GCM  -­‐  ref.3   3.  client  receive  sync  message  from  GCM  -­‐  ref.4     4.  pull  change  from  server  -­‐  ref.5   5.  return  change  to  client  -­‐  ref.6   (4) (5)

Slide 19

Slide 19 text

Demo 1 POC: GCMSyncList

Slide 20

Slide 20 text

Demo 2 KKBOX GCM Sync

Slide 21

Slide 21 text

Demo Source •  KKGCMSyncServer – GitHub - https://github.com/rogery/KKGCMSyncServer •  KKGCMSyncClient – GtiHub - https://github.com/rogery/KKGCMSyncClient  

Slide 22

Slide 22 text

References •  C2DM - https://developers.google.com/android/c2dm/   •  GeYng  Started  with  GCM  –  Android  Developer   -­‐  http://developer.android.com/google/gcm/gs.html   •  Google  Cloud  Messaging  for  Android  –  Google  I/O  2012   -­‐  https://developers.google.com/events/io/2012/sessions/gooio2012/100/   •  StopWatch  Demo  –  Google  I/O  2013   -­‐  http://bradabrams.com/2013/06/google-io-2013-demo-android-studio- cloud-endpoints-synchronized-stopwatch-demo/

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Thank  You   [email protected] Rogery Yang 楊哲豪(Rogery)