Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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)