Android ProGuard Kullanımı

Merhaba,

Bu makalemde Android ProGuard Kullanımı konusunu inceleyeceğiz. Öncelikle olarak ProGuard nedir? ne işe yarar? bunları açıklayalım:

ProGuard

En kısa tanımı kodlarını karıştırmaktır yani başkalarının kodlarınızı görmesine engel olmaktır. Benim sevdiğim diğer bir özelliği ise uygulamanın boyutunu düşürmesi ve daha hızlı çalıştırması.

Şimdi nasıl kullanıldığına bakalım:

Projemizin build.gradle (Module: app) dosyasını açalım. Burada bizi ilgilendiren kısım buildTypes altındaki minifyEnabled seçeneği, bu seçeneğin true olması durumunda ProGuard devreye girmektedir.

apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.gokhanyavas.englishwords"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:cardview-v7:24.2.0'
compile 'com.google.android.gms:play-services:9.4.0'
compile 'com.google.android.gms:play-services-ads:9.4.0'
compile 'com.google.firebase:firebase-ads:9.4.0'
compile 'com.google.android.gms:play-services-analytics:9.2.0'
}
gokhanyavas_proguard
Proje dizinindeki, Gradle altında proguard-rules.pro dosyasından karıştırılmasını istemediğimiz sınıfları tanımlayabiliriz. Biz herhangi bir tanımlama yapmadan otomatik olarak tüm sınıflarımızı ve kodlarımızı karıştırmasını istiyoruz onun için dosyayı boş bırakıyoruz. Uygulamamızı imzalayıp apk haline getirelim.
Kaynak kodlarını görmek için aşağıdaki uygulamaları indirin:
Kaynak kodlarını görüntülemek istediğimiz apk uzantılı dosyamızın uzantısını zip veya rar olarak değiştirip classes.dex dosyasına ulaşın.
gokhanyavas_classes
Classes.dex dosyasını indirdiğiniz dex2jar dosyasının içine atın. Komut satırını açın. (Mac kullanıcıları için terminal)
İndirmiş olduğunuz dex2jar uylamasına komut satırından ulaşın. Aşağıdaki kodu yazın ve classex.dex dosyasını jar şekline getirsin.
./dex2jar.sh classes.dex
gokhanyavas_dexjar
Oluşturduğumuz jar dosyasını Java Decompiler ile açıp kodumuzu inceleyebiliriz.
gokhanyavas_javagui
gokhanyavas_code
2 resimi incelediğinizde farkı anlayacaksınız. Android ProGuard Kullanımı özetle bu şekilde. Bir sonraki android makalesinde görüşmek üzere ;)