gpt4 book ai didi

proguard - 从 Proguard 的保留规则中排除某些类

转载 作者:行者123 更新时间:2023-12-04 19:17:12 27 4
gpt4 key购买 nike

我有一个即将使用 ProGuard 混淆的库。 “图书馆模式”几乎适用于我的用例,即保留所有公共(public)和 protected 类和类成员几乎没问题。
然而,由于 Java 的可见性要求,一些成员不能被设置为包私有(private)或私有(private),因此它们是公共(public)类,尽管它们不应该在库中。我想让它们混淆以更清楚地表明这些类不属于公共(public) api,以及获得更好的混淆和更小的库 jar。
有没有办法从proguard“保留”规则中排除某些项目而不用名称指定每个项目(使用'!')。
理想情况下,我想用标记注释来注释这些类和成员,但据我所知,Proguard 只能被告知保留带有某些注释的项目。

最佳答案

您确实只能保留元素。如果您想排除某些类(class)成员,您必须通过列出或注释您确实想要保留的类(class)成员来做到这一点。指定类名时,您可以提供一个列表,可选择使用“!”排除名称。在指定类成员名称和类型时,这是不可能的。不过,在这两种情况下,您都可以使用通配符。如果您为内部类选择特殊名称,这可能会起作用:

-keep public class * {
public protected *** !myInternalField*;
public protected *** !myInternalMethod*(...);
}

关于proguard - 从 Proguard 的保留规则中排除某些类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com