상세 컨텐츠

본문 제목

Google Play Services GCM 변경 후기.

Android.. Story

by HeyLee 2013. 11. 14. 14:36

본문

기존에 잘~ 사용하고 GCM을 구글 님들께서 



깔끔하게 이전에 사용하던 클래스 전부 다 사용하지말고 GoogleCloudMessaging 로 갈아 타라고 하셧다.


참민감한 푸쉬 서비스를 다 갈아 엎으란다... 푸쉬 적용한 서비스가 몇갠데!...






막 이러고.. 막상 건들려니 막막햇던 내용인데...


개인적으로 서버쪽은 안건드리고 클라이언트만 샘플 프로그램 참고해서 바꿔보니 푸쉬도 잘 오더라구요.


해서 일단 포스팅하기로 함...


GCM 사용 방법은 이전 포스팅이나 다른 분들 포스팅 이 훨씬 잘 되어있으니 다른분 포스팅 참조 해주시고...


물론 전기종 테스트한건 아니고 가지고 있던 옵티머스 G만 실험대상으로 삼아 해보았습니다.


구글 플레이 서비스 예제 소스 위치.

https://code.google.com/p/gcm/source/checkout 


영어로 써주신 상세한 구글님의 메뉴얼 주소.

http://developer.android.com/google/play-services/setup.html



그림과 함께 보는 간단 요약 -ADT에서 구글 플레이 서비스 설치.

1) 두개를 설치 해주자.. 필자는 2.2 지원 계획이 없기에 설치를 안햇다. 짧은 영어 실력으로 메뉴얼에 보니 2.2도 지원할려면 해당 라이브러리 설치 따로 해야된다고 한다.


2) 설치 하면 SDK 설치 위치 아래 해당 라이브러리 프로젝트가 있을것입니다. 해당 프로젝트를 Import합시다.


필자는 개발환경은 맥입니다.


3) git에서 샘플 프로젝트를 다운로드 합니다. 개발 환경이 맥이다보니..걍 터미널 열어서 

    git clone https://code.google.com/p/gcm/ 를 치니 알아서 샘플 코드 잘 받아옴.

(물론.. 맥에서 해당 명령어 없으면 해당 명령어 프로그램 자동 설치 되던..데.. git사용법은 다른 블로그 포스팅 참조.)  


4) 가져온 샘플 프로젝트 중 gcm-client를 임폴트 하시고.. 해당 프로젝트 AndroidManifest.xml에 

 <application>  사이에 </application> 다음 태그를 삽임.

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />


 그리고 해당 샘플 프로젝트에서 오른쪽 마우스 눌르셔서 프로퍼티즈에서 2)에서 Import 한 프로젝트를 라이브러리로 넣어줍시다.



여기 까지 해도... src쪽에 많은 오류들이 보일텐데..


libs 폴더 만드셔서 android-support-v4.jar파일을 넣어주세요.

<주의>해당 서포트 라이브러리는 최신판..을 이용해주세요.. 안그러면 WakefulBroadcastReceiver 같은 클래스가 없다나올수있음. 못찾겟다면 sdk 설치 위치/extras/android/support/v4 폴더 안에 있으니 복사해서 쓰시길 바람.


GcmBroadcastReceiver.java - 추가 및 AndroidManifest.xml에 선언.

기존 해당 레지스터 id값 가져오는 소스 코드 를 샘플 코드로 변경하시고...

GCMIntentService.java 에 상속을 GCMBaseIntentService이 아닌 IntentService로 변경후 onMessage메소드를 

onHandleIntent 메소드로 대체 정도만 하시면 될것 같네요..기존 onMessage메소드에서 인자값으로 제공하던

context 대신에 그냥 this 사용하시면 됩니다.


여기까지 하셧고 컴파일 하였을시 실행이 되신다면 방금 까지 작업하셧던것을 잘 기억하셔서 

원래 새로 적용하려던 프로젝트에 적용하시면 됩니다.


그리고나서 테스트하면 기존 서버쪽 소스코드 변경없이 GCM이 적용되는걸 보실수있습니다.


읽어주셔서 감사합니다.. 


댓글질문은 올려주셔도 일주일내에 댓글 확인 안 할 확률이 99.9%라...; 양해를...


- 해당 포스팅 관련 문제에 대해서 추가적인 정보 댓글은 환영합니다.

- 추가적인 실험 및 포스팅 해봐야할것. 기존대비 GCM지원 범위 및 차이점. 적용 디바이스 .

   에러케이스 조사. 신규로 생긴 send의 역활 및 활용.

관련글 더보기

댓글 영역