đ R8 in Gradle: Android āĻ ্āϝাāĻĒāĻে āĻোāĻ, āĻĻ্āϰুāϤ āĻāĻŦং āύিāϰাāĻĒāĻĻ āĻāϰুāύ!
đ R8 in Gradle: Android āĻ ্āϝাāĻĒāĻে āĻোāĻ, āĻĻ্āϰুāϤ āĻāĻŦং āύিāϰাāĻĒāĻĻ āĻāϰুāύ!
R8 āĻšāϞ ProGuard-āĻāϰ āĻāĻĒāĻ্āϰেāĻĄেāĻĄ āϏংāϏ্āĻāϰāĻŖ, āϝা Android āĻ
্āϝাāĻĒেāϰ āĻোāĻĄ āĻŽিāύিāĻĢাāĻ, āĻ
āĻĒāĻিāĻŽাāĻāĻ āĻāĻŦং āĻ
āĻŦāĻĢুāϏāĻেāĻ (āĻোāϞāĻŽাāϞ āĻāϰে āĻĻেāĻā§া) āĻāϰāϤে āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§।
đš āĻāĻি āĻĄিāĻĢāϞ্āĻāĻাāĻŦে Android Gradle Plugin (AGP) 3.4+ āĻĨেāĻে āĻ
āύ্āϤāϰ্āĻুāĻ্āϤ āϰā§েāĻে।
đš ProGuard-āĻāϰ āĻŽāϤোāĻ āĻাāĻ āĻāϰে, āĻিāύ্āϤু āĻāϰāĻ āĻĻ্āϰুāϤ āĻ āĻāύ্āύāϤ! đ
đĨ R8 āĻীāĻাāĻŦে āĻাāĻ āĻāϰে?
R8 āĻŽূāϞāϤ āĻাāϰāĻি āϧাāĻĒে āĻাāĻ āĻāϰে, āϝা āĻāĻĒāύাāϰ āĻ ্āϝাāĻĒেāϰ āϏাāĻāĻ āĻāĻŽাā§, āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻŦাā§াā§ āĻāĻŦং āĻোāĻĄ āύিāϰাāĻĒāĻĻ āϰাāĻে।
1️⃣ Shrinking (āϏংāĻ্āώিāĻĒ্āϤāĻāϰāĻŖ) ✂️
- āĻ āĻĒ্āϰā§োāĻāύীā§ āĻ্āϞাāϏ, āĻŽেāĻĨāĻĄ, āĻ্āϝাāϰিā§েāĻŦāϞ āϏāϰিā§ে āĻĢেāϞে
- āĻ ্āϝাāĻĒেāϰ āϏাāĻāĻ āĻোāĻ āĻāϰে (āĻāĻŽ RAM āĻ Storage āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§)
2️⃣ Optimization (āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻŦুāϏ্āĻ đ)
- āĻ āĻĒ্āϰā§োāĻāύীā§ āĻŦাāĻāĻāĻোāĻĄ āϏāϰিā§ে āĻĻ্āϰুāϤāϤāϰ āĻোāĻĄ āϤৈāϰি āĻāϰে
- āĻĄুāĻĒ্āϞিāĻেāĻ āϞāĻিāĻ āĻŽুāĻে āĻĢেāϞে
3️⃣ Obfuscation (āĻš্āϝাāĻাāϰāĻĻেāϰ āĻোāĻে āϧুāϞো āĻĻেāĻā§া đĩ️♂️)
- āĻ্āϞাāϏ āĻ āĻŽেāĻĨāĻĄেāϰ āύাāĻŽ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰে āĻŦুāĻāϤে āĻāĻ িāύ āĻāϰে āĻĻেā§
- āϝেāĻŽāύ:
MainActivity→a,getUserName()→x1()
4️⃣ Dexing (DEX āĻ āĻĒāĻিāĻŽাāĻāĻেāĻļāύ đĻ)
.java → .class → .dexāĻāύāĻাāϰāĻļāύ āĻāϰāĻ āĻাāϰ্āϝāĻāϰী āĻāϰে- āĻ ্āϝাāĻĒেāϰ āϞোāĻĄিং āĻাāĻāĻŽ āĻāĻŽাā§
đ§ Gradle-āĻ R8 āĻāύāĻĢিāĻাāϰ āĻāϰা
R8 āĻĄিāĻĢāϞ্āĻāĻাāĻŦে āĻাāϞু āĻĨাāĻে, āϤাāĻ āĻāϞাāĻĻা āĻিāĻু āĻāϰāϤে āĻšā§ āύা।
āĻিāύ্āϤু build.gradle āĻĢাāĻāϞে ProGuard-āĻāϰ āĻŽāϤোāĻ āϏেāĻিংāϏ āϝুāĻ্āϤ āĻāϰāϤে āĻšā§।
buildTypes {
release {
minifyEnabled true // ✅ āĻŽিāύিāĻĢিāĻেāĻļāύ āĻাāϞু
shrinkResources true // ✅ āĻ
āĻĒ্āϰā§োāĻāύীā§ āĻāĻŽেāĻ, āϞেāĻāĻāĻ āĻŽুāĻāĻŦে
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
đ minifyEnabled true → āĻ
āĻĒ্āϰā§োāĻāύীā§ āĻোāĻĄ āĻĢেāϞে āĻĻেāĻŦে
đ shrinkResources true → āĻ
āĻĒ্āϰā§োāĻāύীā§ āϰিāϏোāϰ্āϏ āϏāϰাāĻŦে
đ proguardFiles → ProGuard-āĻāϰ āϰুāϞāϏ R8 āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāĻŦে
đ ️ R8-āĻāϰ āĻāύ্āϝ ProGuard Rules (proguard-rules.pro)
āϝেāĻšেāϤু R8 ProGuard-āĻāϰ āϰুāϞ āĻĢাāĻāϞ āĻĢāϞো āĻāϰে, āϤাāĻ āĻāĻĒāύাāĻে proguard-rules.pro āĻĢাāĻāϞ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻšāĻŦে।
đš āĻোāύো āĻ্āϞাāϏāĻে ProGuard āĻŽুāĻāϤে āύা āĻĻিāϤে āĻাāĻāϞে:
-keep class com.example.app.MyClass { *; }
đš Retrofit / Gson JSON āĻĒাāϰ্āϏিং āĻ িāĻ āϰাāĻāϤে:
-keep class com.google.gson.** { *; }
-keep class retrofit2.** { *; }
đš Android Parcelable Object āϏুāϰāĻ্āώিāϤ āϰাāĻāϤে:
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
đ R8 āϞāĻ āĻĢাāĻāϞ (Mapping File) āĻোāĻĨাā§ āĻĒাāĻŦেāύ?
R8 āĻোāĻĄ āĻ
āĻŦāĻĢুāϏāĻেāĻ āĻāϰে āĻĻিāϞে āĻĄিāĻŦাāĻ āĻāϰাāϰ āĻāύ্āϝ mapping.txt āĻĢাāĻāϞ āĻĻāϰāĻাāϰ āĻšā§।
đ āĻāĻি āĻĒাāĻŦেāύ app/build/outputs/mapping/release/mapping.txt
đ ️ āϝāĻĻি āĻ ্āϝাāĻĒে āĻ্āϰ্āϝাāĻļ āĻšā§, āĻিāύ্āϤু āϏ্āĻ্āϝাāĻ āĻ্āϰেāϏে āĻিāĻু āĻŦুāĻāϤে āύা āĻĒাāϰেāύ, āϤাāĻšāϞে āĻāĻ mapping.txt āĻĢাāĻāϞ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে āĻŽূāϞ āĻোāĻĄ āĻŦেāϰ āĻāϰāϤে āĻĒাāϰেāύ।
đ§ R8 āĻŦāύাāĻŽ ProGuard: āĻĒাāϰ্āĻĨāĻ্āϝ āĻী?
| ⚡ R8 | đĄ️ ProGuard |
|---|---|
| Dex āĻ āĻŽিāύিāĻĢিāĻেāĻļāύ āĻāĻāϏāĻ্āĻে āĻāϰে | āĻļুāϧু āĻাāĻা āĻোāĻĄ āĻŽিāύিāĻĢাāĻ āĻāϰে |
| ProGuard āĻ āĻĒেāĻ্āώা āĻ āύেāĻ āĻĻ্āϰুāϤ ⚡ | āϤুāϞāύাāĻŽূāϞāĻ āϧীāϰāĻāϤি đļ♂️ |
| āĻ āĻĒāĻিāĻŽাāĻāĻেāĻļāύ āĻāϰāĻ āϏ্āĻŽাāϰ্āĻ āĻ āĻāύ্āύāϤ | āϏাāϧাāϰāĻŖ āĻ āĻĒāĻিāĻŽাāĻāĻেāĻļāύ |
| āĻāĻŽ RAM āĻ CPU āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে | āĻŦেāĻļি āϰিāϏোāϰ্āϏ āϞাāĻে |
| āĻĄিāĻĢāϞ্āĻāĻাāĻŦে Gradle-āĻ āĻāϏে | āĻāϞাāĻĻা āĻāϰে āĻāύ্āĻিāĻ্āϰেāĻ āĻāϰāϤে āĻšā§ |
đ āϏংāĻ্āώেāĻĒে: R8 āĻšāϞ ProGuard-āĻāϰ next-gen version, āϝা āĻāϰāĻ āĻĻ্āϰুāϤ āĻ āϏ্āĻŽাāϰ্āĻāϞি āĻাāĻ āĻāϰে। đ
đ¯ āĻāĻĒāϏংāĻšাāϰ: āĻেāύ R8 āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāĻŦেāύ?
✅ āĻĄিāĻĢāϞ্āĻāĻাāĻŦে Gradle Plugin-āĻ āϰā§েāĻে, āĻāϞাāĻĻা āĻিāĻু āĻāϰāϤে āĻšā§ āύা
✅ ProGuard āĻĨেāĻে āĻ
āύেāĻ āĻĻ্āϰুāϤāϤāϰ āĻ āϏ্āĻŽাāϰ্āĻ
✅ āĻ
্āϝাāĻĒেāϰ āϏাāĻāĻ āĻāĻŽিā§ে āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻŦাā§াā§
✅ āĻোāĻĄ āĻ
āĻŦāĻĢুāϏāĻেāĻ āĻāϰে āĻš্āϝাāĻিং āĻāĻ িāύ āĻāϰে āϤোāϞে
đĨ āĻāĻĒāύাāϰ Android āĻ ্āϝাāĻĒ āϏিāĻিāĻāϰ, āϏ্āĻŽাāϰ্āĻ āĻ āĻĒাāϰāĻĢāϰ্āĻŽেāύ্āϏ āĻ āĻĒāĻিāĻŽাāĻāĻ āĻāϰāϤে R8 āĻ āĻŦāĻļ্āϝāĻ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰুāύ! đ
đĸ āĻāϰāĻ āĻিāĻু āĻাāύāϤে āĻাāĻāϞে āĻŦāϞুāύ! đ
Comments
Post a Comment