신혼여행에서 즐긴 음식들

스페인 바르셀로나

카푸치노

IMG_1491

핀초스

IMG_0238

샹그리아

IMG_0452

빠에야

IMG_0455

보케리아시장 해산물구이

IMG_1623

보케리아시장 컵과일

IMG_0489

El Rey De La Gamba

IMG_0649

English Breakfast

IMG_1664

프랑스 카르카손

IMG_0722

IMG_0720

IMG_0817

IMG_0818

IMG_0852

IMG_0855

IMG_0856

프랑스 아를

IMG_0894

IMG_0896

IMG_0897

IMG_1047

IMG_1056

IMG_1057

IMG_1058

IMG_1063

프랑스 고흐드

IMG_1135

IMG_1136

IMG_1923

프랑스 후쓸리옹

IMG_1194

IMG_1195

프랑스 엑상프로방스

IMG_1268

IMG_1269

프랑스 니스

IMG_1310

IMG_1309

IMG_1330

IMG_1331

IMG_2071

IMG_2072

Android Studio 프로젝트 릴리즈 빌드할때 Proguard를 이용해 로그제거하기

마켓에 애플리케이션을 릴리즈하기 전에 해야할 일 중 하나는 로그를 제거하는 작업입니다.

소스코드를 수정하지 않고 릴리즈 빌드할때 Proguard를 이용해 로그(android.util.Log) 메서드 호출을 간단하게 제거할 수 있습니다.

build.gradle에서 다음과 같이 릴리즈 빌드할때 Proguard를 적용하도록 정의해 줍니다.

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
        }
    }

그리고 proguard-rules.txt를 아래와 같이 수정해 줍니다.

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

이렇게 설정하고 gradle assembleRelease로 빌드하면, Log.d(), Log.v() 호출은 제거됩니다. (리턴값을 참조하지 않는다면)

중요한 포인트는 -assumenosideeffects 옵션은 optimize 단계를 거쳐야만 적용이 된다는 점입니다. 때문에 proguard-android.txt가 아닌 proguard-android-optimize.txt를 사용하도록 설정해야 합니다.

이 파일들은 안드로이드 SDK의 tools/proguard 디렉토리에 위치하고 있습니다.