facebook twitter hatena line email

「Android/開発環境/AndroidStudio/proguard」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==プロガードとは== コードをjarやaarにしたときにプロパティ名や、メソッド名などを難読化するもの ==サンプル== プロジェク...」)
 
(サンプル)
 
(同じ利用者による、間の3版が非表示)
行1: 行1:
==プロガードとは==
+
==proguard(プロガード)とは==
コードをjarやaarにしたときにプロパティ名や、メソッド名などを難読化するもの
+
*コードをjarやaarにしたときにプロパティ名や、メソッド名などを難読化するもの。
 +
*jarやaarを配布する際に使う。
 +
*unityやcocos2dなどで使うjarやaarを難読化しないためにする際に使う。
  
 
==サンプル==
 
==サンプル==
行15: 行17:
  
 
proguard-rules.pro
 
proguard-rules.pro
 +
#ExampleClassのメソッド・プロパティの難読化を除外する
 +
-keep public class jp.co.example.ExampleClass {
 +
    public *;
 +
}
 +
#KzLogのメソッド・プロパティの難読化を除外する
 +
-keep public class jp.co.example.sample.log.KzLog {
 +
    public *;
 +
}
 +
# protectedの難読化を除外する
 +
-keep public class jp.co.example.sample.log.AbstructDao {
 +
    protected *;
 +
}
 +
# KZ_CONST_VERSIONのconstの難読化を除外する
 +
-keep public class jp.co.example.sample.const.KzConstants {
 +
    public static final ** KZ_VERSION;
 +
}
 +
# interfaceの難読化を除外する
 +
-keep public interface * {
 +
    *;
 +
}

2019年8月23日 (金) 12:38時点における最新版

proguard(プロガード)とは

  • コードをjarやaarにしたときにプロパティ名や、メソッド名などを難読化するもの。
  • jarやaarを配布する際に使う。
  • unityやcocos2dなどで使うjarやaarを難読化しないためにする際に使う。

サンプル

プロジェクト直下のbuild.gradle

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

proguard-rules.pro

#ExampleClassのメソッド・プロパティの難読化を除外する
-keep public class jp.co.example.ExampleClass {
    public *;
}
#KzLogのメソッド・プロパティの難読化を除外する
-keep public class jp.co.example.sample.log.KzLog {
    public *;
}
# protectedの難読化を除外する
-keep public class jp.co.example.sample.log.AbstructDao {
    protected *;
}
# KZ_CONST_VERSIONのconstの難読化を除外する
-keep public class jp.co.example.sample.const.KzConstants {
   public static final ** KZ_VERSION;
}
# interfaceの難読化を除外する
-keep public interface * {
    *;
}