본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] Google Play Service 는 나쁜놈이었다.

by 돼지왕 왕돼지 2015. 9. 16.
반응형


 Google Play Service 는 나쁜놈이었다.



.dex, 3rd part library, 5.0, 6.5, 65k, Android, android studio, Compile, DEX, dex method limit, eclipse, google play service, Google Play Service 는 나쁜놈이었다., GPS, gradle, gralde build, IDE, Library, method limit, not used, proguard, release, 공식 ide, 구글, 구글 플레이, 기능, 기능 제공, 나쁜놈, 버전, 부분 compile, 서비스, 설정, 안드로이드, 프로가드



Google Play Service 가 현재( 2015-09-12 기준 )  7.x 버전까지 나왔다.


그런데 이 구글 플레이 서비스가 5.0 ~ 6.5 미만까지는 골치덩어리였다.



여러가지 기능들이 추가되어 편리하게 구글이 제공하는 기능, 서비스들을 제공받는 것은 좋았지만,

dex 파일의 method 갯수 제약 측면에서 노답인 상황이었다.



한 dex 파일은 65k 개의 method 만 가질 수 있는데, 

Google Play Service 5.0 버전에서는 이 녀석 혼자 20k 이상의 method 를 가지고 있다.


그래서 구글 플레이 서비스 library 를 사용하면서

다른 3rd party library 를 사용하면

method limit 에 걸려 문제가 될 수 있다.



아래 링크에 따르면, Android Studio 가 이제 공식 IDE 가 되면서

gradle build 를 사용할 수 있게 되었고,


Google Play Service 6.5 버전 이상에서는 실제 사용하는 library 만 부분적으로

compile 하여 사용할 수 있도록 기능제공을 해준다고 한다.


즉, 여러 구글 플레이 서비스 기능 중에서

실제 사용하는 녀석들만 .dex 파일에 포함할 수 있다는 것. 


http://android-developers.blogspot.kr/2014/12/google-play-services-and-dex-method.html




아직 Eclipse 를 고수하고 있는 개발자라면,

혹은 어떠한 이유로 6.5 미만 버전의 구글 플레이 서비스를 사용해야 한다면,

proguard 의 설정에서 사용되지 않는 함수들을 compile 단계에서 빼버리는

not used option 을 잘 사용하면 되겠다.







반응형

댓글