Android ProGuard Kullanımı

Kod Gizleme ( Code Obsufucation ) Nedir?

Neden Kod Karıştırmaya İhtiyaç Duyuyoruz?

Android Uygulamalarda Kaynak Kodları Nasıl Karıştırılır?

ProGuard Nedir?

ProGuard Kullanımı

apply plugin: 'com.android.application'android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.verisun.mobiett"
minSdkVersion 15
targetSdkVersion 24
versionCode 79
versionName "4.2.0"
}
buildTypes {
release {
//konfigürasyon alanı
}
debug {
//konfigürasyon alanı
}
}

ProGuard Kullanarak Kaynakları Sıkıştırmak

minifyEnabled :

android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}

shrinkResources:

android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),proguard-rules.pro'
}
}
}

Sıkıştırma Sırasında Korunacak Kaynakları Belirlemek

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"

tools:keep="@layout/layout_main"
tools:discard="@layout/kullanilmayan_ekran" />
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"

tools:keep="@layout/activity_mobiett_*,@layout/layout_main,@layout/fragment_mobiett_*"
tools:discard="@layout/kullanilmayan_ekran" />

ProGuard Kullanarak Kaynak Kodlarını Karıştırmak

useProguard

android {
buildTypes {
debug {
minifyEnabled true
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}

ProGuardFiles Konfigürasyonunun Yapılması

apply plugin: 'com.android.application'android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.verisun.mobiett"
minSdkVersion 15
targetSdkVersion 24
versionCode 79
versionName "4.2.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
buildTypes 
{
release
{
minifyEnabled true
proguardFiles 'proguard-mobiett.txt','proguard-kutuphaneler.txt'
}
}
buildTypes 
{
relase
{
minifyEnabled true
proguardFile 'proguard-retrofit.pro'
proguardFile 'proguard-mobiett.pro'
proguardFile 'proguard-square.pro'
proguardFile 'proguard-eventbus.pro'
proguardFile 'proguard-google-play-services.pro'
proguardFile 'proguard-gson.pro'
proguardFile 'proguard-project-app.pro'
proguardFile getDefaultProguardFile('proguard-mobiett.txt')
testProguardFile 'proguard-project-test.pro'

}

Gelelim Konfigürasyon Dosyalarının İçeriğine:

--

--

--

Senior Android & Kotlin Engineer Consultant @Turkcell

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Muhammet ÇAĞATAY

Muhammet ÇAĞATAY

Senior Android & Kotlin Engineer Consultant @Turkcell

More from Medium

iLocker for Android

Android Safe-Args in Navigations Components

Android Camera2 get size and fps info

Recycler View Row Event Handling With Data Binding