Proguard
Less than 1 minute
Proguard ๊ด๋ จ
Tip
shrinkResources
๋ช
๋ น์ด๋ฅผ ํตํด์ ๋๋
ํ ๊ณผ์ ์์ ์ฌ์ฉํ์ง ์๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค.
๋ฆฌ์์ค ์ถ์๋ ์ฝ๋ ์ถ์์ ํจ๊ป๋ง ๋์ ํฉ๋๋ค. ๋ชจ๋ ๋ฏธ์ฌ์ฉ ์ฝ๋๋ฅผ ์ ๊ฑฐํ ์ฑ์์ ์ฌ์ฉ๋์ง ์๋ ๋ฆฌ์์ค๋ฅผ ์๋ณ ํ ์ ์์ต๋๋ค.
Proguard Rule ์ฌ์ฉ๋ฐฉ๋ฒ
Proguard ๋ฃฐ์ ํ์ํ๊ฒ๊ณผ ๋ถํ์ํ๊ฒ์ ๋ถ๋ฆฌ ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ์ ๋๋ ํ๊ฐ ๋ถํ์ํ๊ฒฝ์ฐ ์ ๊ฑฐ๋ฅผ ํด์ฃผ์ด์ผ ํฉ๋๋ค. ์ฌ๋ฌ ์ฃผ์ ์ต์ ์ด ๋ง์ด ์์ง๋ง ์์ฃผ ์ฐ์ด๋ ์ต์ ๋ง ์ ๋ฆฌ ํ๊ฒ ์ต๋๋ค.
๋๋ ํ ์ต์
option | description |
---|---|
-dontwarn ํจํค์ง๋ช
.** | ์ง์ ํด์ ๊ฒฝ๊ณ ๋ฌด์ |
-keep class ํจํค์ง๋ช
.** | ๋๋ ํ๊ฐ ํ์ํ์ง ์์ ๊ฒฝ์ฐ |
-ignorewarnings | ๊ฒฝ๊ณ ๋ฌด์ |
-dontoptimize | ์ต์ ํ ํ์ง ์๊ธฐ |
-dontshrink | ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋ ์ ์ง |
-keepclassmembers | ํน์ ํด๋์ค ๋ฉค๋ฒ ์์ํ ์ ์ง |
-keepattributes | ๋ด๋ถ ํด๋์ค ์์ํ ์ ์ง ์ ์ฉ |
์์
-keep class org.xmlpull.v1.** { *; }
-dontwarn org.ejml.**
-dontwarn org.xmlpull.**
-dontwarn io.reactivex.**
-dontwarn com.squareup.okhttp.**
-dontwarn com.thoughtworks.xstream.**
-dontwarn boofcv.**-dontwarn java.awt.**
์์ฃผ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Proguard Rule
1. Retrofit2
# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions
2. Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
# for DexGuard only
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
3.Picasso
-dontwarn com.squareup.okhttp.**