关于proguard配置文件的一个笨办法,一次性排除大部分外部依赖

来源:互联网 发布:大型数据机房施工方案 编辑:程序博客网 时间:2024/05/16 14:34

关于proguard这个东西,感觉做的一般般,很多配置很不人性化,容错性差,像个事妈一样总报错,屁大点事就把整个流程挂掉,搞得学习成本很高,实在难以称道。

比如,proguard配置中的keep class 和dontwarn就很变扭,为什么不提供一个only include class或者only warn之类的配置,其实针对大多数app,我们只需要对我们关心的一些类进行混淆就可以了,所以这不是一个排除或者取非的问题。由于这一点,导致我们每次要写一大堆的keep class 和dontwarn,本人分享一种写法(虽然是傻瓜式的笨办法),一种思路,可以一次性排除大部分外部依赖。

思路大概是,如果我们只需要对com.yoyo.brucesharp.app这个包下的类进行proguard,那么可以把其他包名的一律排除掉就可以了,于是就有了下面的模板(写的不是很严谨,重在提供解决问题的思路,大家可以拷走方便备用)。

####外部库-keep class a** { *; }-keep class b** { *; }##c开头不排除-keep class d** { *; }-keep class e** { *; }-keep class f** { *; }-keep class g** { *; }-keep class h** { *; }-keep class i** { *; }-keep class j** { *; }-keep class k** { *; }-keep class l** { *; }-keep class m** { *; }-keep class n** { *; }-keep class o** { *; }-keep class p** { *; }-keep class q** { *; }-keep class r** { *; }-keep class s** { *; }-keep class t** { *; }-keep class u** { *; }-keep class v** { *; }-keep class w** { *; }-keep class x** { *; }-keep class y** { *; }-keep class z** { *; }-keep class com.a** { *; }-keep class com.b** { *; }-keep class com.c** { *; }-keep class com.d** { *; }-keep class com.e** { *; }-keep class com.f** { *; }-keep class com.g** { *; }-keep class com.h** { *; }-keep class com.i** { *; }-keep class com.j** { *; }-keep class com.k** { *; }-keep class com.l** { *; }-keep class com.m** { *; }-keep class com.n** { *; }-keep class com.o** { *; }-keep class com.p** { *; }-keep class com.q** { *; }-keep class com.r** { *; }-keep class com.s** { *; }-keep class com.y** { *; }-keep class com.u** { *; }-keep class com.v** { *; }-keep class com.w** { *; }-keep class com.x** { *; }#com.y开头不排除-keep class com.z** { *; }#单独排除cn开头的-keep class cn** { *; }####dontwarn-dontwarn a**-dontwarn b**-dontwarn d**-dontwarn e**-dontwarn f**-dontwarn g**-dontwarn h**-dontwarn i**-dontwarn j**-dontwarn k**-dontwarn l**-dontwarn m**-dontwarn n**-dontwarn o**-dontwarn p**-dontwarn q**-dontwarn r**-dontwarn s**-dontwarn t**-dontwarn u**-dontwarn v**-dontwarn w**-dontwarn x**-dontwarn y**-dontwarn z**-dontwarn com.a**-dontwarn com.b**-dontwarn com.d**-dontwarn com.e**-dontwarn com.f**-dontwarn com.g**-dontwarn com.h**-dontwarn com.i**-dontwarn com.j**-dontwarn com.k**-dontwarn com.l**-dontwarn com.m**-dontwarn com.n**-dontwarn com.o**-dontwarn com.p**-dontwarn com.q**-dontwarn com.r**-dontwarn com.s**-dontwarn com.t**-dontwarn com.u**-dontwarn com.v**-dontwarn com.w**-dontwarn com.x**-dontwarn com.c**-dontwarn com.z**#单独排除一下cn开头的-dontwarn cn**

0 0
原创粉丝点击