đĄ️ ProGuard: Android āĻ ্āϝাāĻĒেāϰ āĻāύ্āϝ āϏিāĻিāĻāϰিāĻি āĻাāϰ্āĻĄ! đ
đĄ️ ProGuard: Android āĻ ্āϝাāĻĒেāϰ āĻāύ্āϝ āϏিāĻিāĻāϰিāĻি āĻাāϰ্āĻĄ! đ
ProGuard āĻšāϞ Android āĻ ্āϝাāĻĒেāϰ āĻāύ্āϝ āĻāĻāĻি āĻŽিāύিāĻĢিāĻেāĻļāύ āĻ āĻ āĻŦāĻĢুāϏāĻেāĻļāύ āĻুāϞ, āϝা āĻ ্āϝাāĻĒেāϰ āϏাāĻāĻ āĻāĻŽাā§, āĻোāĻĄ āύিāϰাāĻĒāĻĻ āϰাāĻে āĻāĻŦং āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻāύ্āύāϤ āĻāϰে। āĻāĻি Gradle-āĻāϰ āĻŽাāϧ্āϝāĻŽে āĻ āĻোāĻŽেāĻিāĻāĻাāĻŦে āĻ ্āϝাāĻĒ āĻŦিāϞ্āĻĄেāϰ āϏāĻŽā§ āϰাāύ āĻšā§।
đĨ ProGuard āĻী āĻāϰে?
ProGuard āĻŽূāϞāϤ āϤিāύāĻি āĻাāĻ āĻāϰে:
1️⃣ Minification (āĻŽিāύিāĻĢিāĻেāĻļāύ) đ️
- āĻোāĻĄ āĻোāĻ āĻāϰা
- āĻ āĻĒ্āϰā§োāĻāύীā§ āĻোāĻĄ, āϞাāĻāĻŦ্āϰেāϰি āĻ āĻ্āϞাāϏ āĻĢেāϞে āĻĻেāĻā§া
- āĻ ্āϝাāĻĒেāϰ āϏাāĻāĻ āĻāĻŽাāύো
2️⃣ Obfuscation (āĻ āĻŦāĻĢুāϏāĻেāĻļāύ) đĩ️♂️
- āĻোāĻĄেāϰ āύাāĻŽ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰা (āϝাāϤে āĻš্āϝাāĻাāϰāϰা āϏāĻšāĻে āĻŦুāĻāϤে āύা āĻĒাāϰে)
- āϝেāĻŽāύ
MainActivity→a,UserModel→b1
3️⃣ Optimization (āĻ āĻĒāĻিāĻŽাāĻāĻেāĻļāύ) đ
- āĻ āĻĒ্āϰā§োāĻāύীā§ āĻŽেāĻĨāĻĄ āĻ āĻ্āϞাāϏ āϏāϰাāύো
- āĻোāĻĄāĻে āĻāϰāĻ āĻাāϰ্āϝāĻāϰী āĻāϰে āϤোāϞা
đ️ Gradle-āĻ ProGuard āĻāύāĻĢিāĻাāϰেāĻļāύ
ProGuard āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে build.gradle (Module-level) āĻĢাāĻāϞে proguard-android-optimize.txt āĻĢাāĻāϞ āϝুāĻ্āϤ āĻāϰāϤে āĻšāĻŦে।
buildTypes {
release {
minifyEnabled true // ✅ āĻŽিāύিāĻĢিāĻেāĻļāύ āĻাāϞু
shrinkResources true // ✅ āĻ
āĻĒ্āϰā§োāĻāύীā§ āϰিāϏোāϰ্āϏ āĻŦাāĻĻ āĻĻেāĻā§া
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
đ minifyEnabled true → āĻŽিāύিāĻĢিāĻেāĻļāύ āĻাāϞু āĻāϰāĻŦে
đ shrinkResources true → āĻ
āĻĒ্āϰā§োāĻāύীā§ āĻāĻŽেāĻ, āϞেāĻāĻāĻ āĻĢাāĻāϞ āĻāϤ্āϝাāĻĻি āϏāϰাāĻŦে
đ proguardFiles → ProGuard-āĻāϰ āϰুāϞāϏ āĻ āĻĄিāĻĢāϞ্āĻ āĻ
āĻĒāĻিāĻŽাāĻāĻেāĻļāύ
đ ️ ProGuard Rules (proguard-rules.pro)
ProGuard āĻাāĻ āĻāϰাāϰ āϏāĻŽā§ āĻিāĻু āĻ্āϞাāϏ āĻŦা āĻŽেāĻĨāĻĄ āĻŽুāĻে āĻĢেāϞāϤে āĻĒাāϰে, āϝা āĻ ্āϝাāĻĒে āϏāĻŽāϏ্āϝা āϤৈāϰি āĻāϰāϤে āĻĒাāϰে। āĻāĻāύ্āϝ āĻিāĻু ProGuard āϰুāϞāϏ āĻĻিāϤে āĻšā§:
1️⃣ āĻোāύো āĻ্āϞাāϏ āĻŦা āĻŽেāĻĨāĻĄ āĻŦাāĻĻ āύা āĻĻিāϤে āĻŦāϞাāϰ āύিā§āĻŽ đĄ️
-keep class com.example.app.MyClass { *; }
đ MyClass āĻে ProGuard āĻŽুāĻāϤে āĻĒাāϰāĻŦে āύা
2️⃣ Serializable āĻŦা Parcelable āĻ্āϞাāϏ āϏুāϰāĻ্āώিāϤ āϰাāĻা đĻ
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
3️⃣ Retrofit / Gson-āĻāϰ āĻāύ্āϝ āĻŦিāĻļেāώ āϰুāϞ đ
-keep class com.google.gson.** { *; }
-keep class retrofit2.** { *; }
đ ProGuard āϞāĻ āĻĢাāĻāϞ (Mapping File)
ProGuard āĻোāĻĄেāϰ āύাāĻŽ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰে āĻĻেā§, āϤাāĻ āϝāĻĻি āĻāĻāύো āĻ্āϰ্āϝাāĻļ āĻšā§, āϤাāĻšāϞে āĻĄিāĻŦাāĻ āĻāϰāϤে mapping.txt āĻĢাāĻāϞ āĻĻāϰāĻাāϰ āĻšā§।
đ āĻāĻি app/build/outputs/mapping/release/mapping.txt āĻĢোāϞ্āĻĄাāϰে āĻĨাāĻে।
đ§ ProGuard āĻŦāύাāĻŽ R8
āĻāĻে ProGuard āĻিāϞ āĻĄিāĻĢāϞ্āĻ āĻুāϞ, āĻিāύ্āϤু āĻāĻāύ Android R8 āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে, āϝা ProGuard-āĻāϰ āĻŽāϤোāĻ āĻাāĻ āĻāϰে āĻিāύ্āϤু āĻāϰāĻ āĻāύ্āύāϤ।
đ R8 āĻšāϞ ProGuard-āĻāϰ āĻāĻĒāĻ্āϰেāĻĄেāĻĄ āϏংāϏ্āĻāϰāĻŖ!
đĨ ProGuard āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻাāĻāϞে:
ProGuard āĻāĻāύোproguard-rules.proāĻĢাāĻāϞে āĻাāĻ āĻāϰে, āĻিāύ্āϤু R8 āĻāĻি āĻāϰāĻ āĻĻ্āϰুāϤ āĻ āĻাāϞোāĻাāĻŦে āĻ āĻĒāĻিāĻŽাāĻāĻ āĻāϰে।
đ¯ āĻāĻĒāϏংāĻšাāϰ
✅ ProGuard āĻāĻĒāύাāϰ āĻ
্āϝাāĻĒেāϰ āϏাāĻāĻ āĻāĻŽাā§, āύিāϰাāĻĒāϤ্āϤা āĻŦাā§াā§ āĻāĻŦং āĻোāĻĄ āĻ
āĻĒāĻিāĻŽাāĻāĻ āĻāϰে।
✅ build.gradle-āĻ minifyEnabled true āĻ proguard-rules.pro āϏেāĻ āĻāϰāϤে āĻšāĻŦে।
✅ R8 āĻāĻāύ āĻĄিāĻĢāϞ্āĻ āĻুāϞ, āϤāĻŦে ProGuard āϰুāϞāϏ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰাāĻ āϝāĻĨেāώ্āĻ।
✅ mapping.txt āĻĢাāĻāϞ āϏংāϰāĻ্āώāĻŖ āĻāϰা āĻāĻিāϤ, āϝাāϤে āĻĄিāĻŦাāĻ āĻāϰা āϏāĻšāĻ āĻšā§।
đ ProGuard āϏেāĻāĻāĻĒ āĻāϰāϞে āĻāĻĒāύাāϰ āĻ ্āϝাāĻĒ āĻšāĻŦে āĻোāĻ, āĻĢাāϏ্āĻ āĻ āϏিāĻিāĻāϰ! đĄ️đ¨
āĻāϰāĻ āĻিāĻু āĻাāύāϤে āĻাāĻāϞে āĻŦāϞুāύ! đ
Comments
Post a Comment