아직 나도 완벽한 정보는 모른다..


하지만 내용을 기록하기 위해 몇 글자 끄적여 본다..




Proguard란,

빌드 된, apk에 대해 디컴파일을 방지하기 위해서

변수나 클래스명을 a, b, c, d와 같이 변경 시켜 빌드 하는 것이다.

빌드 후, getDefaultProguardFile('proguard-android.txt') 저장을 하여 어떤 클래스가 무슨 변수명으로 바뀌었는지 알수 있다.



아래와 같이

minifyEnabled를 true, false를 통해서 proguard를 on/off 할 수 있다.



다른 Library를 사용할 때, 클래스 명이 바뀜에 따라서 제대로 인식이 안되는 경우도 생길수 있다.

이 같은 경우, minifyEnabled의 값을 true/false바꿔서 테스트 하여 확인할 수 있다. 




build.gradle

buildTypes {

        debug {

            minifyEnabled false

            buildConfigField( STRING, KM_FLURRY_API_KEY, '"xxxxxxxxxxxxxxxx"')

            buildConfigField( BOOLEAN, KM_LL_D, TRUE )

            buildConfigField( BOOLEAN, KM_LL_V, TRUE )

        }

        release {

            minifyEnabled true

            shrinkResources false

            signingConfig signingConfigs.release

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            buildConfigField( BOOLEAN, KM_LL_V, FALSE )

        }

    }








특정 클래스를 proguard 시키고 싶지 않을 떄, 해당 클래스만 proguard 해제 시킬수 있다.

이와 같은 방법으로 해당 문제를 해결 할 수 있다.





프로젝트 아래에 

-keep public class com.google.**

위 와 같이... -keep public class 클래스명으로 해당 클래스만 proguard 해제 시킬수 있다.










'Android > Framework&Build' 카테고리의 다른 글

Google I/O 2017 [18일 Sessions]  (0) 2017.05.22
Google I/O 2017 [17일 Sessions]  (0) 2017.05.22
[Android] Image 심기 (Nexus)  (0) 2015.07.28
/system/ 읽기 권한 변경  (0) 2015.03.30
파일 속성 바꾸기.. chomd & chown  (0) 2015.03.30
Posted by 소망아기
: