如何使用ProGuard(或任何其他方式)隐藏库Jar中的公共类?

Ron*_*ler 6 java android proguard

我想构建一个库,但我不希望某些类暴露给开发人员,但我确实希望它们能够暴露给我的库代码并轻松地进行测试.

有没有办法使用ProGuard或任何其他方式隐藏特定的公共类(如Android SDK中使用的@hide表示法)?

njz*_*zk2 0

混淆的全部意义在于,它为外部人员隐藏了方法,但库内部的引用会被更新。通常,您会有一个

void myMethodWithAVeryExplicitName() {
    // Do Stuff
}

void otherMethod() {
    // Call the first method
    myMethodWithAVeryExplicitName();
}
Run Code Online (Sandbox Code Playgroud)

它将被混淆为:

void a() {
    // Do Stuff
}

void b() {
    // Call the first method
    a();
}
Run Code Online (Sandbox Code Playgroud)

然后 Proguard 有很多选项来混淆或保留公共类、扩展特定类的类、成员......