SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Rogery!
Android Team Leader!
透過	 GCM	 實作跨裝置資料同步
@Android	 Taipei
•  關於	 Rogery	
  &	
  KKBOX	
  Android	
  Team	
  
•  Concept	
  &	
  Idea	
  
•  Implement	
  
•  Demo	
  
•  Q	
  &	
  A	
  
Agenda
•  從	 Android	
  1.0	
  開始研發	 KKBOX	
  Android,	
  
開發經驗至今已四年以上	
  
	
  
•  在	 KKBOX	
  擔任	 Android	
  Team	
  Leader	
  
	
  
•  熱愛音樂創作的工程師	 http://youtu.be/IwsNKobAkS0	
  
關於	 Rogery
•  產品:KKBOX	
  Android,	
  KKBOX	
  Music	
  Store,	
  UtaPass	
  
•  裝置:Handset,	
  Tablet,	
  STB	 和車機	
  
•  團隊人數從	 1	 人到	 11	 人	
  
關於	 KKBOX Android Team
Concept & Idea
GCM (Google Cloud Message)
•  幫助開發者發送推播訊息到各個	 Android	 裝置	
  
•  首次在	 Google	
  IO	
  2012	 亮相	
  
•  前身是	 C2DM	
  (Cloud	
  to	
  Device	
  Messaging)	
  
KKBOX use GCM
•  Push	
  NoPficaPon:	 推播跟隨的臺長已經上線訊息	
  
•  只用在訊息通知	
  
Concept & Idea
直到我看見…
Google IO 2013 – StopWatch Demo
Concept & Idea
怎麼能那麼即時同步?
Concept & Idea
Think: KKBOX	 能用在哪裡?
Concept & Idea
歌單立即同步?!
Polling vs Pushing
•  Polling:	 每個裝置定期去向	 Server	 問目前最新的狀態	
  
•  目前	 KKBOX	 實作歌單同步的方式	
  
•  容易實作	
  
•  耗電:手機一直送連線、Server	 一直收連線	
  
Polling vs Pushing
•  Pushing:	 當	 Server	 有狀態更新時去通知裝置	
  
	
  
•  省電:連線數降低、Server	
  Loading	 降低	
  
Implement
POC
KKGCMSyncServer
(Google App Engine)
KKGCMSyncClient
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	
  
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)
Demo 1
POC: GCMSyncList
Demo 2
KKBOX GCM Sync
Demo Source
•  KKGCMSyncServer – GitHub
- https://github.com/rogery/KKGCMSyncServer
•  KKGCMSyncClient – GtiHub
- https://github.com/rogery/KKGCMSyncClient	
  
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/
Thank	
  You	
  
rogeryyang@kkbox.com
Rogery Yang
楊哲豪(Rogery)

Mais conteúdo relacionado

Destaque

Goins slideshare
Goins slideshareGoins slideshare
Goins slideshareKaren_Goins
 
Opportunities for children everywhere to receive quality education
Opportunities for children everywhere to receive quality educationOpportunities for children everywhere to receive quality education
Opportunities for children everywhere to receive quality educationDavid Yeng
 
The moses bridge, the netherlands
The moses bridge, the netherlandsThe moses bridge, the netherlands
The moses bridge, the netherlandsNataly Auger
 
Author Level Bibliometrics
Author Level BibliometricsAuthor Level Bibliometrics
Author Level BibliometricsPaul Wouters
 
кулинарная продукция
кулинарная продукциякулинарная продукция
кулинарная продукцияGuslikulinar
 
đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...
đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...
đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...nhatruongvietnam
 

Destaque (7)

Goins slideshare
Goins slideshareGoins slideshare
Goins slideshare
 
Peta watak
Peta watakPeta watak
Peta watak
 
Opportunities for children everywhere to receive quality education
Opportunities for children everywhere to receive quality educationOpportunities for children everywhere to receive quality education
Opportunities for children everywhere to receive quality education
 
The moses bridge, the netherlands
The moses bridge, the netherlandsThe moses bridge, the netherlands
The moses bridge, the netherlands
 
Author Level Bibliometrics
Author Level BibliometricsAuthor Level Bibliometrics
Author Level Bibliometrics
 
кулинарная продукция
кулинарная продукциякулинарная продукция
кулинарная продукция
 
đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...
đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...
đồNg phục nghi thức đội mẫu mã đẹp ở đâu tại hà nội tốt nhất 2013, nghệ an, n...
 

Semelhante a 透過 GCM 實作跨裝置資料同步

開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)My own sweet home!
 
20160521 社群實務及組織協作
20160521 社群實務及組織協作20160521 社群實務及組織協作
20160521 社群實務及組織協作ericpi Bi
 
20151127 kh gov-data-training
20151127 kh gov-data-training20151127 kh gov-data-training
20151127 kh gov-data-trainingericpi Bi
 
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事Weizhong Yang
 
Android裝置開發過程的軟硬整合關鍵及挑戰
Android裝置開發過程的軟硬整合關鍵及挑戰Android裝置開發過程的軟硬整合關鍵及挑戰
Android裝置開發過程的軟硬整合關鍵及挑戰tick
 
北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdfssuserded2d4
 
Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0信宏 陳
 
Android 基礎開發課程
Android 基礎開發課程Android 基礎開發課程
Android 基礎開發課程Duran Hsieh
 
App introduction
App introductionApp introduction
App introductionJerromy Lee
 
Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天oasisfeng
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV FrameworkJollen Chen
 
Android event retrospect
Android event retrospectAndroid event retrospect
Android event retrospectrogeryi
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 dockerRay Lin
 
Maker to startup v1.2 4 27-2016-s
Maker to startup v1.2 4 27-2016-sMaker to startup v1.2 4 27-2016-s
Maker to startup v1.2 4 27-2016-sRay Tai
 
Flutter 踩雷心得
Flutter 踩雷心得Flutter 踩雷心得
Flutter 踩雷心得Weizhong Yang
 
GAME-NEXT SUMMIT 会议活动企划及合作方案
GAME-NEXT SUMMIT 会议活动企划及合作方案GAME-NEXT SUMMIT 会议活动企划及合作方案
GAME-NEXT SUMMIT 会议活动企划及合作方案GAMENEXT Works
 
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxXu Wang
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfDuran Hsieh
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdfFEG
 

Semelhante a 透過 GCM 實作跨裝置資料同步 (20)

開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
 
20160521 社群實務及組織協作
20160521 社群實務及組織協作20160521 社群實務及組織協作
20160521 社群實務及組織協作
 
20151127 kh gov-data-training
20151127 kh gov-data-training20151127 kh gov-data-training
20151127 kh gov-data-training
 
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事
 
Android裝置開發過程的軟硬整合關鍵及挑戰
Android裝置開發過程的軟硬整合關鍵及挑戰Android裝置開發過程的軟硬整合關鍵及挑戰
Android裝置開發過程的軟硬整合關鍵及挑戰
 
北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf
 
Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0
 
Android 基礎開發課程
Android 基礎開發課程Android 基礎開發課程
Android 基礎開發課程
 
App introduction
App introductionApp introduction
App introduction
 
Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework
 
Android event retrospect
Android event retrospectAndroid event retrospect
Android event retrospect
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
 
Maker to startup v1.2 4 27-2016-s
Maker to startup v1.2 4 27-2016-sMaker to startup v1.2 4 27-2016-s
Maker to startup v1.2 4 27-2016-s
 
Flutter 踩雷心得
Flutter 踩雷心得Flutter 踩雷心得
Flutter 踩雷心得
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
GAME-NEXT SUMMIT 会议活动企划及合作方案
GAME-NEXT SUMMIT 会议活动企划及合作方案GAME-NEXT SUMMIT 会议活动企划及合作方案
GAME-NEXT SUMMIT 会议活动企划及合作方案
 
Hyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptxHyper 基于hypervisor的docker引擎.pptx
Hyper 基于hypervisor的docker引擎.pptx
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdf
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf
 

Mais de Rogery Yang

時間管理系列(7)建立工作的優先次序
時間管理系列(7)建立工作的優先次序時間管理系列(7)建立工作的優先次序
時間管理系列(7)建立工作的優先次序Rogery Yang
 
時間管理系列(6)讓聖靈管理你的時間
時間管理系列(6)讓聖靈管理你的時間時間管理系列(6)讓聖靈管理你的時間
時間管理系列(6)讓聖靈管理你的時間Rogery Yang
 
時間管理系列(5)建立行動清單
時間管理系列(5)建立行動清單時間管理系列(5)建立行動清單
時間管理系列(5)建立行動清單Rogery Yang
 
時間管理系列(4)檢視自己的時間
時間管理系列(4)檢視自己的時間時間管理系列(4)檢視自己的時間
時間管理系列(4)檢視自己的時間Rogery Yang
 
時間管理系列(3)擺脫沒有次序的生活
時間管理系列(3)擺脫沒有次序的生活時間管理系列(3)擺脫沒有次序的生活
時間管理系列(3)擺脫沒有次序的生活Rogery Yang
 
時間管理系列(2)如何調整你的目標
時間管理系列(2)如何調整你的目標時間管理系列(2)如何調整你的目標
時間管理系列(2)如何調整你的目標Rogery Yang
 
時間管理系列(1)林書豪 榮耀的背後(鍛練篇)
時間管理系列(1)林書豪 榮耀的背後(鍛練篇) 時間管理系列(1)林書豪 榮耀的背後(鍛練篇)
時間管理系列(1)林書豪 榮耀的背後(鍛練篇) Rogery Yang
 

Mais de Rogery Yang (7)

時間管理系列(7)建立工作的優先次序
時間管理系列(7)建立工作的優先次序時間管理系列(7)建立工作的優先次序
時間管理系列(7)建立工作的優先次序
 
時間管理系列(6)讓聖靈管理你的時間
時間管理系列(6)讓聖靈管理你的時間時間管理系列(6)讓聖靈管理你的時間
時間管理系列(6)讓聖靈管理你的時間
 
時間管理系列(5)建立行動清單
時間管理系列(5)建立行動清單時間管理系列(5)建立行動清單
時間管理系列(5)建立行動清單
 
時間管理系列(4)檢視自己的時間
時間管理系列(4)檢視自己的時間時間管理系列(4)檢視自己的時間
時間管理系列(4)檢視自己的時間
 
時間管理系列(3)擺脫沒有次序的生活
時間管理系列(3)擺脫沒有次序的生活時間管理系列(3)擺脫沒有次序的生活
時間管理系列(3)擺脫沒有次序的生活
 
時間管理系列(2)如何調整你的目標
時間管理系列(2)如何調整你的目標時間管理系列(2)如何調整你的目標
時間管理系列(2)如何調整你的目標
 
時間管理系列(1)林書豪 榮耀的背後(鍛練篇)
時間管理系列(1)林書豪 榮耀的背後(鍛練篇) 時間管理系列(1)林書豪 榮耀的背後(鍛練篇)
時間管理系列(1)林書豪 榮耀的背後(鍛練篇)
 

透過 GCM 實作跨裝置資料同步