Mavzu: Shifrlash dasturi


Qanday qilib uni loyihamizda ishlatishimiz mumkin?


Download 1.92 Mb.
bet10/11
Sana09.03.2023
Hajmi1.92 Mb.
#1255551
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Abduxalilov O.

Qanday qilib uni loyihamizda ishlatishimiz mumkin?
Loyihangizda Proguard ni yoqish uchun uni ilovaning build.gradle ga qo’shing
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Yuqorida ko’rsatilganidek minifyEnabled true holatida turibti va bu bizga fayldan olingan proguard ni aktivlashishiga xizmat qiladi
proguard-android.txt
U release bo’limi ichida joylashgan, ya’ni u faqatgina biz app ni release qilgan vaqtimiz o’z ta’sirini ko’rsatadi.
Ammo ProGuard har qanday kodni olib tashlashi va bir tekis jarayonni buzib qo’yishi biz uchun katta muammo bo’lishi ham mumkin.
Xo’sh bunday vaziyatda nima qilishimiz mumkin? Bizga kerakli bo’lgan kodlarni saqlab qolish uchun biz bir nechta qoidalarni qoshishimiz kerak bo’ladi. Bu qoidalarni proguard ga qo’shish orqali biz dasturni build qismida qay tarzda kodlarni saqlashi va o’zgartirib borishiga ta’sir o’tkaza olamiz.
Keling endi shu qoidalarni proguard da qanday yozish kerakligini ko’rib chiqamiz.
1. Klasslarni saqlab qolish
Deylik, bizda API orqali malumotlarni olib kelib uni model klassga parse qilish uchun yaratilgan Data Class bor va bu vaziyatda biz ma’lumotlar ya’ni fieldlarni o’zgarib ketishini xohlamaymiz.
data class User(val id: String = "")
Klass va unga tegishli attributlarni saqlab qolish uchun biz klassimizga @Keep anotatsiyasini qo’shamiz
@Keep
data class User(val id: String = "")
Bu anotatsiya proguard dasturni build qilish jarayonida bizga kerakli bo’lgan klassimizni e’tiborsiz qoldirishga xizmat qiladi.
Bundan tashqari biz yana boshqa usuldan ham foydalanishimiz mumkin
-keep
@Keep o’rnida -keep dan foydalanish sizga qaysi malumotlarni o’zgartirish yoki shunday qoldirish ustida ko’proq imkoniyatlar beradi.
💡 E'tibor berib ketishingiz kerak bo'lgan jihat -keep, -keepattributes, - keepnames ko'rinishidagi kodlar faqat proguard-rules.pro file ichida qoida sifatida yoziladi
Va yana biz data model klassimizdagi id field ni saqlab qolish uchun Gson kutubxonasini ishlatayotganda @SerializedName dan foydalanishimiz mumkin
data class User(@SerializedName("id") val id: String = "")
Agar e’tibor bergan bo’lsangiz biz bu yerda @Keep dan foydalanmadik

Download 1.92 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling