build.gradle文件

apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "23.0.1"    defaultConfig {        applicationId "corki.cn.ktvzp"        minSdkVersion 15        targetSdkVersion 23        versionCode 1        versionName "1.0"    }    //签名 改自己的路径    signingConfigs {        debug {            storeFile file("C:\\Users\\M\\.android\\debug.keystore")        }        relealse {            //这样写就得把myandroid.jks文件放在项目目录            storeFile file("C:\\Users\\M\\Documents\\myandroid.jks")            storePassword "你的密码"            keyAlias "你的Asias"            keyPassword "密码"        }    }    buildTypes {        debug {            // 显示Log            buildConfigField "boolean", "LOG_DEBUG", "true"            versionNameSuffix "-debug"            minifyEnabled false            zipAlignEnabled false            shrinkResources false        }        release {            // 不显示Log            buildConfigField "boolean", "LOG_DEBUG", "false"            //混淆            minifyEnabled true            //Zipalign优化            zipAlignEnabled true            // 移除无用的resource文件            shrinkResources 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:23.3.0'    compile 'com.android.support:design:23.3.0'}

proguard-rules.pro混淆文件

#指定代码的压缩级别    -optimizationpasses 5    #包明不混合大小写    -dontusemixedcaseclassnames    #不去忽略非公共的库类    -dontskipnonpubliclibraryclasses     #优化  不优化输入的类文件    -dontoptimize     #预校验    -dontpreverify     #混淆时是否记录日志    -verbose     # 混淆时所采用的算法    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*    #保护注解    -keepattributes *Annotation*     #如果引用了v4或者v7包        -dontwarn android.support.** #保持 native 方法不被混淆    -keepclasseswithmembernames class * {        native ;    }    #保持自定义控件类不被混淆    -keepclasseswithmembers class * {        public (android.content.Context, android.util.AttributeSet);    }    #保持自定义控件类不被混淆    -keepclassmembers class * extends android.app.Activity {       public void *(android.view.View);    }    #保持 Parcelable 不被混淆    -keep class * implements android.os.Parcelable {      public static final android.os.Parcelable$Creator *;    }    #保持 Serializable 不被混淆    -keepnames class * implements java.io.Serializable    #保持 Serializable 不被混淆并且enum 类也不被混淆    -keepclassmembers class * implements java.io.Serializable {        static final long serialVersionUID;        private static final java.io.ObjectStreamField[] serialPersistentFields;        !static !transient ;        !private ;        !private ;        private void writeObject(java.io.ObjectOutputStream);        private void readObject(java.io.ObjectInputStream);        java.lang.Object writeReplace();        java.lang.Object readResolve();    }    #保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可    #-keepclassmembers enum * {    #  public static **[] values();    #  public static ** valueOf(java.lang.String);    #}    -keepclassmembers class * {        public void *ButtonClicked(android.view.View);    }    #不混淆资源类    -keepclassmembers class **.R$* {        public static ;    }    #避免混淆泛型 如果混淆报错建议关掉    #–keepattributes Signature

更多相关文章

  1. AndroidManifest.xml 系统找不到指定的文件
  2. Smail反汇编文件语句说明
  3. Android 复制单个文件到指定目录,Android copy file
  4. Android中的ClassLoader与dex文件加密实现分析
  5. Android中将资源文件转为Bitmap对象
  6. Android UI 之时间与日期控件
  7. Android 文件下载 downloadManager
  8. Android渐变色xml文件
  9. android 选中效果xml文件

随机推荐

  1. Android(安卓)Spinner点击选中Item不再调
  2. Android Framework中JNI调用
  3. Android - 私有库项目创建及发布
  4. Android释放内存(结束进程)
  5. 王家林最受欢迎的一站式云计算大数据和移
  6. Style与Theme
  7. Android(安卓)Studio实用配置:让你编码更
  8. 随手记
  9. Android 统计图表引擎AChartEngine(四) -
  10. Android中ListView学习---你可能不知道的