[작성자:] 건우
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 디렉토리에 위치하고 있습니다.
Console에서 Android SDK 업데이트하기
Jenkins로 안드로이드 프로젝트를 자동으로 빌드하는 시스템을 구축하다보면 UI 없이 Console에서 Android SDK를 업데이트해야 하는 상황이 발생합니다.
먼저 SDK 루트 디렉토리에서 tools 디렉토리로 이동합니다.
cd tools
설치할 수 있는 SDK 목록을 확인합니다.
$ ./android list sdk
Refresh Sources:
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
Validate XML
Parse XML
Fetched Add-ons List successfully
Refresh Sources
Fetching URL: https://dl-ssl.google.com/android/repository/repository-10.xml
Validate XML: https://dl-ssl.google.com/android/repository/repository-10.xml
Parse XML: https://dl-ssl.google.com/android/repository/repository-10.xml
Fetching URL: https://dl-ssl.google.com/android/repository/addon.xml
Validate XML: https://dl-ssl.google.com/android/repository/addon.xml
Parse XML: https://dl-ssl.google.com/android/repository/addon.xml
Fetching URL: https://dl-ssl.google.com/android/repository/addon-6.xml
Validate XML: https://dl-ssl.google.com/android/repository/addon-6.xml
Parse XML: https://dl-ssl.google.com/android/repository/addon-6.xml
Fetching URL: https://dl-ssl.google.com/glass/gdk/addon.xml
Validate XML: https://dl-ssl.google.com/glass/gdk/addon.xml
Parse XML: https://dl-ssl.google.com/glass/gdk/addon.xml
Fetching URL: https://dl-ssl.google.com/android/repository/extras/intel/addon.xml
Validate XML: https://dl-ssl.google.com/android/repository/extras/intel/addon.xml
Parse XML: https://dl-ssl.google.com/android/repository/extras/intel/addon.xml
Fetching URL: https://dl-ssl.google.com/android/repository/sys-img/android/sys-img.xml
Validate XML: https://dl-ssl.google.com/android/repository/sys-img/android/sys-img.xml
Parse XML: https://dl-ssl.google.com/android/repository/sys-img/android/sys-img.xml
Fetching URL: https://dl-ssl.google.com/android/repository/sys-img/android-wear/sys-img.xml
Validate XML: https://dl-ssl.google.com/android/repository/sys-img/android-wear/sys-img.xml
Parse XML: https://dl-ssl.google.com/android/repository/sys-img/android-wear/sys-img.xml
Fetching URL: https://dl-ssl.google.com/android/repository/sys-img/android-tv/sys-img.xml
Validate XML: https://dl-ssl.google.com/android/repository/sys-img/android-tv/sys-img.xml
Parse XML: https://dl-ssl.google.com/android/repository/sys-img/android-tv/sys-img.xml
Fetching URL: https://dl-ssl.google.com/android/repository/sys-img/x86/addon-x86.xml
Validate XML: https://dl-ssl.google.com/android/repository/sys-img/x86/addon-x86.xml
Parse XML: https://dl-ssl.google.com/android/repository/sys-img/x86/addon-x86.xml
Packages available for installation or update: 15
1- Android SDK Tools, revision 23.0.2
2- Documentation for Android 'L' Preview SDK, revision 1
3- SDK Platform Android 4.4W, API 20, revision 1
4- SDK Platform Android L Preview, revision 1
5- Samples for SDK API 20, revision 1
6- Samples for SDK API L Preview, revision 1
7- Google APIs (x86 System Image), Android API 19, revision 6
8- Google APIs (ARM System Image), Android API 19, revision 6
9- Glass Development Kit Preview, Android API 19, revision 8
10- Android Support Repository, revision 6
11- Android Support Library, revision 20
12- Google Play services, revision 18
13- Google Repository, revision 9
14- Google Play Billing Library, revision 5
15- Google Play Licensing Library, revision 2
아래와 같은 커맨드로 원하는 항목만 선택적으로 업데이트 할 수 있습니다.
$ ./android update sdk --no-ui --filter 1,10,11,12
의존성 문제 때문인지 원하는 항목이 한 번에 나타나지 않을 수도 있습니다. 보통은 리스트를 확인하고 업데이트를 요청하는 과정을 반복하게 되더군요.
Android Studio에서 unsigned apk 생성하기
build.gradle에서 다음과 같이 release 빌드용 signing configuration을 정의해 줍니다.
signingConfigs {
release {
storePassword ""
keyAlias ""
keyPassword ""
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
그리고 아래와 같이 console에서 release 빌드하면,
$ gradle assembleRelease
다음 위치에서 unsigned apk를 확인할 수 있습니다.
build/outputs/apk/app-release-unsigned.apk
알리오 올리오
집에서 혼자 식사를 해결해야 할때 “알리오 올리오”는 재료가 많이 필요하지 않고 요리법도 간단해서 좋습니다.
재료는 단촐합니다. 스파게티면, 소금, 후추, 마늘, 청양고추, 올리브 오일
시간배분을 잘 해야 전체 요리시간을 단축할 수 있습니다. 먼저 소금을 넣은 물을 끓인 후 면을 넣어 삶습니다.
타이머를 이용해 정확히 8분을 삶습니다.
동시에 약불을 이용해 스텐팬을 10분 동안 예열합니다.
스파게티면을 삶고 스텐팬을 예열하는 사이에 마늘과 청양고추를 손질합니다. 참고로 청양고추의 씨는 꼭지를 따고 양손으로 비비면 떨어집니다.
8분 동안 삶은 면을 꺼내 체를 이용해 물기를 제거합니다.
스텐팬의 예열이 끝나면 올리브 오일을 충분히 두르고 1분 정도 후에 마늘과 청양고추를 볶아 줍니다. 이때 매운맛이 올리브 오일에 스며듭니다.
마늘이 노릇노릇해 졌다면 스파게티면을 넣고 올리브 오일이 면에 잘 스며들도록 요리해줍니다. 마무리로 소금이나 후추를 약간 더해주면 요리는 끝납니다.










































