AndResGuard هي اداة قام بتطويرها فريق تطوير تطبيق WeChat والتي تعتبر مكمله لاداة ProGuard والتي تفتقد لخاصية تغيير اسماء ملفات الـResources
ويمكن استخدام الاداة عن طريق الطرفيه او طريق تضمينها في المشروع عبر Gradle كما يلي.
اولاً يجب اضافة التالي في ملف app/build.gradle
apply plugin: 'AndResGuard' buildscript { repositories { jcenter() } dependencies { classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.13' } } andResGuard { mappingFile = null use7zip = false useSign = true keepRoot = false whiteList = [ "R.drawable.icon", "R.drawable.ic_*_arrow?", "R.menu.*", ] compressFilePattern = [ "*.png", "*.jpg", "*.jpeg", "*.gif", ] finalApkBackupPath = "${project.rootDir}/final.apk" }
لتعمية جميع الملفات اجعل قيمة mappingFile = null
لأبقاء جميع المسارات كما هي اجعل قيمة المتغير keepRoot = true
وفي حالة اردت استثناء مسارات معينه من التعميه اجعل المتغير mappingFile = file("./mapping.txt")
ثم احفظ المسارات في ملف mapping.txt
واجعل محتواه كالتالي
res path mapping: old/path -> new/path res/drawable -> res/drawable res/drawable-xhdpi-v4 -> res/drawable-xhdpi-v4
في حالة كنت تود نشر التطبيق في Google Play فإجعل قيمة use7zip = false
بسبب وجود مشكله مع File-by-file patches عند تحديث التطبيق. ماعدا ذلك فيفضل تفعيلها لضغط التطبيق.
لختم التطبيق اجعل قيمة useSign = true
.
لاستثناء ملفات معينه اضف الملفات الى مصفوفة whiteList
لتفعيل الضغط على ملفات معينه اضف مسارات الملفات الى مصفوفة compressFilePattern
لتغيير مسار اخراج الملف النهائي قم بوضع المسار في المتغير finalApkBackupPath
وفي حالة عدم اسناد قيمة للمتغير سيتم حفظ الملف النهائي في المسار
app/build/outputs/apk/release/AndResGuard_app-release/
يمكنك في المصفوفتين whiteList
و compressFilePattern
استخدام العلامات التاليه
?
للاشاره لعدد0
او1
محارف.*
للاشاره لعدد0
او اكثر محارف.+
للاشاره لعدد1
او اكثر محارف.
ثم ضمن بيانات المفتاح التاليه في المجال android في ملف app/build.gradle
مع تغيير اللازم
signingConfigs { release { storeFile file("/path/to/signing-key.jks") storePassword "store-password" keyAlias "key-alias" keyPassword "key-password" v2SigningEnabled true } }
ثم اضف التالي الى المجال buildTypes>release
signingConfig signingConfigs.release
ولاصدار ملف apk موقع
إضغط على gradle في القائمه الجانبيه ثم YourProject>Tasks>andresguard>resguardRelease
كما في الصوره التاليه
ستجد الملف في المسار المُعد سابقاً
بالإضافه لملف resource mapping في المسار التالي
app/build/outputs/apk/release/AndResGuard_app-release/
ويحتوي على المسميات القديمه تقابلها المسميات الجديده.