前段时间,公司和SP合作,对方提供了一个封装包,要求不混淆他们的包。
刚开始,我也按之前的做法,但是打出来的混淆包里,只保留了外部包的部分方法,但是对方要求不要把包里的方法也混淆。下图是我第一次的做法,直接在"Proguard keep expresssions"里新加了一条“public class com.util.*”。
[img]http://dl.iteye.com/upload/attachment/305330/4926289a-538b-3d7d-8821-0bbd93e60363.png[/img]
这明显不符合SP的要求,由于我在公司用Eclipse的时间最久,对里面的配置也是最清楚,所以这个任务也交到我手中了。后来搜索了很多,总算在Proguard document让我找到了解决方案。
就是再加一句“public class com.util.* { public *;}”,这句话代表把com.util.包中的所有类中的public方法,排除到混淆外。
[img]http://dl.iteye.com/upload/attachment/305332/8404ddd9-b88e-3d35-85c4-9b3cdafca2f7.png[/img]
同理,如果是所有的方法都不混淆,你可以尝试下。
刚开始,我也按之前的做法,但是打出来的混淆包里,只保留了外部包的部分方法,但是对方要求不要把包里的方法也混淆。下图是我第一次的做法,直接在"Proguard keep expresssions"里新加了一条“public class com.util.*”。
[img]http://dl.iteye.com/upload/attachment/305330/4926289a-538b-3d7d-8821-0bbd93e60363.png[/img]
这明显不符合SP的要求,由于我在公司用Eclipse的时间最久,对里面的配置也是最清楚,所以这个任务也交到我手中了。后来搜索了很多,总算在Proguard document让我找到了解决方案。
就是再加一句“public class com.util.* { public *;}”,这句话代表把com.util.包中的所有类中的public方法,排除到混淆外。
[img]http://dl.iteye.com/upload/attachment/305332/8404ddd9-b88e-3d35-85c4-9b3cdafca2f7.png[/img]
同理,如果是所有的方法都不混淆,你可以尝试下。