Setup Google Play Services SDK


구글 플레이 서비스 SDK 는 안드로이드 SDK 의 확장이고, SDK 매니저에서 다운로드 패키지로 사용할 수 있습니다. 이 다운로드 패키지는 클라이언트 라이브러리와 코드 샘플을 포함합니다.


구글 플레이 서비스 API 를 사용해 개발하려면, 구글 플레이 서비스 SDK 를 다운로드 해야합니다. 또한, 애플리케이션을 실행하고 디버그 할 수 있는 물리적인 개발 디바이스를 제공해야합니다(내가 스스로에게 제공을 하겠죠...). 구글 플레이 스토어를 포함하는 안드로이드 2.2 또는 더 높은 버전에서 실행하는 어떤 호환 안드로이드 디바이스에서도 개발할 수 있습니다. 이상적인건, 폰과 태블릿을 포함한 다양한 디바이스에서 개발하고 테스트하는 것이죠.


Note: 구글 플레이 서비스는 안드로이드 이뮬레이터에서 지원되지 않습니다. API 를 사용해 개발하려면, 안드로이드 폰이나 태블릿 같은 개발 디바이스를 제공해야 합니다.



개발용 구글 플레이 서비스 SDK 를 설치하려면: 


1. SDK 매니저 실행

  • ADT 가 있는 이클립스에서, Windows > Android SDK Manager 선택.
  • Windows 에서는, Android SDK directory 루트에 있는 SDK Manager.exe 파일을 더블 클릭.
  • Mac 또는 Linux 에서는, 터미널을 열고, Android SDK 에 있는 tools/ 디렉토리를 찾아가서 android sdk 를 실행.

    


2. 패키지 리스트의 맨 아래로 스크롤, Extras > Google Play service 선택하고 설치.

    구글 플레이 서비스 SDK 는 Android SDK 환경에서 <android-sdk-folder>/extras/google/google_play/services/. 에 저장됨.

    


3. 주 안드로이드 앱 프로젝트 소스 트리에 ~/google_play_services/libproject/google-play-services_lib 프로젝트를 복사(Android studio의 경우)

    

   만약 이클립스를 사용중이라면, 소스 트리에 프로젝트를 import. File > Import 클릭, Android > Existing Android Code into Workspace 선택, import 된 라이브러리 프로젝트 카피로 이동.

    !!! Copy project into workspace 를 눌러주세요 !!!



프로젝트가 구글 플레이 서비스 SDK 를 사용하도록 설정하려면:


1. 당신의 안드로이드 프로젝트에서 라이브러리 프로젝트를 참조한다.

    라이브러리 프로젝트 참조를 하는 방법: Referencing a Library Project for Eclipse 또는 Referencing a Library Project on the Command Line 

Note: 소스 트리에 복사한 라이브러리의 카피를 참조해야합니다. Android SDK 디렉토리로 부터 참조하지 않아야합니다. (원본을 직접 참조하지 말고 사본을 참조하세요!)

    


2. 만약 ProGuard 를 사용한다면, 필요한 클래스를 멀리서 찾는걸 예방하기 위해서 <project_directory>/proguard-project.txt 파일에 아래의 라인들을 추가한다.

-keep class * extends java.util.ListResourceBundle {
   
protected Object[][] getContents();
}




Ensuring Devices Have the Google Play services APK



구글 플레이 서비스 소개에서 설명한것 처럼, 구글 플레이는 구글 플레이 스토어 애플리케이션을 통해 안드로이드 2.2 사용자에게 제공됩니다. 하지만, 업데이트가 즉시 모든 사용자에게 도달하지 않을 수 있습니다.

Important: 각 디바이스의 상태를 예측하기가 어렵기 때문에, 구글 플레이 서비스 기능에 액세스하기 전에, 항상 호환 구글 플레이 서비스 APK 를 확인해야 합니다.

많은 애플리케이션들에서, 확인을 위한 베스트 타임은 메인 액티비티의 onResume() 입니다.



유저 디바이스에서 구글 플레이 서비스 APK 의 가능한 상태를 설명하는 네가지 시나리오:


1. 구글 플레이 스토어 앱 최신 버전이 설치되었고, 가장 최신 구글 플레이 서비스 APK 를 다운로드 되었을 때.

2. 구글 플레이 스토어 앱 최신 버전이 설치되었지만, 가장 최신 구글 플레이 서비스 APK 가 다운로드 되지 않았을 때.

3. 구글 플레이 스토어 앱이 예전 버전이고, 구글 플레이 서비스 업데이트를 사전에 다운로드 하지 않았을 때.

4. 유저가 명시적으로 삭제하였거나 비활성화 시켜서, 디바이스에 구글 플레이 서비스 APK 가 없거나 비활성화 되었을 때.


1번의 경우는 성공 시나리오고 가장 일반적인 경우입니다. 하지만 다른 시나리오들은 여전히 발생할 수 있기 대문에, 애플리케이션이 구글 플레이 서비스에 연결할때마다 매번 구글 플레이 서비스 APK 가 존재하는지, 최신인지, 활성화되어있는지 확실하게 해야 합니다.


구글 플레이 서비스 클라이언트 라이브러리는, 현재 구글 플레이 서비스 APK 가 애플리케이션에서 사용하고 있는 클라이언트 라이브러리 버전을 지원할만큼 충분한지 결정하는, 유틸리티 메소드를 가지고 있습니다. 만약 충분하지 않다면, 클라이언트 라이브러리는 구글 플레이 서비스 APK 의 최신 버전 다운로드를 위해 유저를 구글 플레이 스토어로 보냅니다.

Note: 구글 플레이 서비스 APK 는 구글 플레이 스토어 검색에 표시되지 않습니다.

클라이언트 라이브러리는 디바이스에서 '구글 플레이 서비스 APK 가 없거나, 호환되지 않는 구글 플레이 서비스 APK 를 감지'하면 구글 플레이 스토어 안에서 딥링크(deep link)를 제공합니다.


이것은 당신에게 애플리케이션에서 구글 플레이 서비스 APK 가 유효한지 확인하는 단계를 수행할 적절한 장소를 선택하도록 합니다. 예를 들면, 애플리케이션에 구글 플레이 서비스가 필요하면, 앱이 처음 시작 되었을 때 이런 확인 작업을 수행할 수 있습니다. 반면에, 구글 플레이 서비스가 애플리케이션에서 선택적인 부분이면, 유저가 애플리케이션에서 해당 부분을 탐색할때 확인작업을 할 수도 있습니다:


1. 디바이스에서 구글 플레이 서비스 상태를 위한 쿼리, isGooglePlayServicesAvailable() method. result code 를 반환

2. result code 가 SUCCESS 이면, 구글 플레이 서비스 APK 가 최신이고, 정상적으로 진행 가능.

3. result code 가 SERVICE_MISSING, SERVICE_VERSION_UPDATE_REQUIRED, 또는 SERVICE_DISABLED 이면, 유저에게 에러 메시지를 보여주어 유저가 구글 플레이 스토어에서 APK 를 다운로드 하거나 디바이스의 시스템 설정에서 활성화 시킬 수 있게 하는 getErrorDialog() 를 호출.


저작자 표시 비영리 변경 금지
신고

'Android > Google Play Services' 카테고리의 다른 글

Setup Google Play Services SDK  (2) 2013.05.27
Google Play Services  (0) 2013.05.27
Posted by croute

댓글을 달아 주세요

  1. BlogIcon choong 2013.07.14 17:36 신고  댓글주소  수정/삭제  댓글쓰기

    라이브러리 추가하려고 하니까 add눌러도 아무것도 안뜨는데 이 현상에 대해 아시는게 있으면 좀 가르쳐주세요 ㅠㅠ

    • Favicon of http://croute.me BlogIcon croute 2013.07.15 11:32 신고  댓글주소  수정/삭제

      google-play-services_lib <-- 이 프로젝트가

      library project 로 되어있는지 확인해야합니다.
      google-play-services_lib 프로젝트의 properties 를 보면,
      is Library <-- 이게 체크 되어있어야 해요.