Adnroid studioの混淆jarパッケージの生成方法


Adnroid studioが混淆するjar方法を生成します。
1.概要
以下はAndroid studioからjarカバンをエクスポートする流れです。
2.包装jar手順
  • プロジェクトにModuleを新設し、Android Library File-New-New Modele-Android Library
  • を選択します。
  • jarを生成するソースファイルjavaを必要としています。新しいLibraryに
  • を置いています。
  • は、Library build.gradle
  • を構成する。
  • 混淆ファイル
  • を構成する。
    3.詳細手順
    3.1 Libraryを配置するbuild.gradleファイル
    apply plugin: 'com.android.library'
    
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.3"
    
        defaultConfig {
            minSdkVersion 15
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
    }
    
    //=======  jar    start=============================================
    def SDK_BASENAME = "httpUtil";
    def SDK_VERSION = "_V1.0";
    def sdkDestinationPath = "build";//  jar    
    
    //  release    classes.jar(       jar       )----    as       default  
    def releaseJar = file('build/intermediates/bundles/release/classes.jar')
    //  debug    classes.jar
    def debugJar = file('build/intermediates/bundles/debug/classes.jar')
    // libs    gson  jar 
    def thirdPartyJar = file('libs/gson-2.8.0.jar')
    
    //  jar       jar
    task deleteBuild(type: Delete) {
        delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
    }
    
    task makeJar(type: Jar) {
        from zipTree(releaseJar)//     jar
        //from zipTree(debugJar)//      jar
        //from zipTree(thirdPartyJar)    jar   jar 
        //from fileTree(dir: 'src/main', includes: ['assets/**'])// assets    jar 
        exclude('**/BuildConfig.class')//      class  
        baseName = SDK_BASENAME + SDK_VERSION
        destinationDir = file(sdkDestinationPath)
    }
    
    makeJar.dependsOn(deleteBuild, build)
    //=======  jar    end=============================================
    
    //    
    //1.     : Terminal  gradlew makeJar
    //2.      :Gradle   :ModuleName Tasks   other   markJar
    
    3.2 Libraryの混淆ファイルを配置する
    #============            ======================
    #-libraryjars 'C:\Program Files\Java\jre1.8.0_121\lib\rt.jar'
    
    #    
    #-ignorewarnings
    
    #    (    ,                             )
    -dontshrink
    
    #                 
    #-keepattributes Signature
    
    
    #============          ===========================
    
    #  BuildConfig    (            jar     )
    #      TestActivity  TestService         
    -keep class com.kok.http.BuildConfig{
    public *;
    }
    #          
    -keep class com.kok.http.core.HttpUtils{
    public *;
    }
    -keep class com.kok.http.core.HttpErrorCode{
    public *;
    }
    -keep class com.kok.http.callback.**{*;}
    
    3.3その他
    android studioコマンドでパッケージ化するにはGraadle環境変数を設定します。例えば、変数名:GRADLE_uHOME変数値:C:\Users\Administrtor.gradle\wrapper\dists\gradle-2.4.1-all\8 bnwg 5 hd 3 w 55 iofp 6 yv\gradle-2.4.1その後、PathにGRADLEを追加します。ホーム?ム
    4.関連フローのスクリーンショット
    4.1 Graadleの設定
    4.2混淆ファイルの配置
    4.3包装jar