Android代码混淆常用设置

来源:互联网 发布:淘宝在线充值赚钱吗 编辑:程序博客网 时间:2024/05/20 22:02
* 配置签名信息

* 配置ProGuard
在ProGuard中添加proguard.config=proguard.cfg


运行混淆器之后输出的文件有:
dump.txt
   描述.apk包中所有class文件的内部结构。
mapping.txt
  列出了源代码与混淆后的类,方法和属性名字之间的映射。这个文件对于在构建之后得到的bug报告是有用的,因为它把混淆的堆栈跟踪信息反翻译为源代码中的类,方法和成员名字。更多信息,查看解码混淆过的堆栈跟踪信息。
seeds.txt
   列出那些未混淆的类和成员。
usage.txt
   列出从.apk中剥离的代码



# 不使用优化方案
-dontoptimize
# 保留签名,解决泛型问题
-keepattributes Signature
-dontskipnonpubliclibraryclassmembers
-dontskipnonpubliclibraryclasses

#工程中用到的第三方包
-libraryjars libs/android-support-v4.jar
#不混淆第三方包
-keep class android.support.v4.**
#忽略第三方包导致的异常
-dontwarn android.support.v4.**



----------------------------- 异常信息如下
 [proguard] Note: there were 1 references tounknown classes.
[proguard]      You should check your configuration for typos.
[proguard] Warning: there were 269 unresolved references to classesor interfaces.
[proguard]         You may need to specify additional library jars (using'-libraryjars'),
[proguard]         or perhaps the '-dontskipnonpubliclibraryclasses' option.
[proguard] Warning: there were 57 unresolved references to programclass members.
[proguard]         Your input classes appear to be inconsistent.
[proguard]         You may need to recompile them and try again.
[proguard]         Alternatively, you may have to specify the options
[proguard]         '-dontskipnonpubliclibraryclasses' and/or
[proguard]         '-dontskipnonpubliclibraryclassmembers'.
接下来,我举以个常见的但是又不好找的栗子:
1、类中类的混淆方式  用符号$。
#javacript防止混淆(类中类的混淆方式)-keepclassmembers class com.yunxi.pf.suoping.fragment.HomepageFragment$MyObject {   public *;}


0 0