🚀 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 (āĻš্āϝাāĻ•াāϰāĻĻেāϰ āϚোāĻ–ে āϧুāϞো āĻĻেāĻ“ā§Ÿা đŸ•ĩ️‍♂️)

  • āĻ•্āϞাāϏ āĻ“ āĻŽেāĻĨāĻĄেāϰ āύাāĻŽ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰে āĻŦুāĻāϤে āĻ•āĻ িāύ āĻ•āϰে āĻĻে⧟
  • āϝেāĻŽāύ: MainActivitya, 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

Popular posts from this blog

AI (Artificial Intelligence) āϏāĻšāϜāĻ­াāĻŦে āĻŦোāĻাāϰ āϜāύ্āϝ āĻāĻ•āĻĻāĻŽ āĻŽāϏ্āϤিāώ্āĻ•-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা 🧠🤖

🧠 Regex āĻ•ী?

Kotlin-āĻ āĻ­েāϰিāϝ়েāĻŦāϞ āϘোāώāĻŖা āĻ•āϰাāϰ āĻĻুāχ āωāĻĒাāϝ়