本文主要是介绍记录AS混淆代码模板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件
这些是写在proguard-rules.pro文件内的
指定代码的压缩级别
-optimizationpasses 5
包明不混合大小写
-dontusemixedcaseclassnames
不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
优化 不优化输入的类文件
-dontoptimize
预校验
-dontpreverify
混淆时是否记录日志
-verbose
混淆时所采用的算法
-optimizations !code/simplification/arithmetic,!field/,!class/merging/
保护注解
-keepattributes Annotation
保持哪些类不被混淆
-keep public class * extends android.app.Fragment
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
如果有引用v4包可以添加下面这行
-keep public class * extends android.support.v4.app.Fragment
忽略警告
-ignorewarning
记录生成的日志数据,gradle build时在本项目根目录输出
apk 包内所有 class 的内部结构
-dump class_files.txt
未混淆的类和成员
-printseeds seeds.txt
列出从 apk 中删除的代码
-printusage unused.txt
混淆前后的映射
-printmapping mapping.txt
mapping.txt
列出了原始的类,方法和字段名与混淆后代码间的映射。这个文件很重要,当你从release版本中收到一个bug报告时,可以用它来翻译被混淆的代码。
mapping目录在 \app\build\outputs\mapping\release
而Eclipse中混淆也是用这一样的模板代码,只不过是把这些代码写在proguard-project.txt文件中。
最后朋友推荐打包后的项目可以直接扔到“蒲公英”上。而通知用户更新可以集成第三方“友盟”。
这篇关于记录AS混淆代码模板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!