gpt4 book ai didi

java - 混淆模块/库

转载 作者:行者123 更新时间:2023-11-30 10:42:38 25 4
gpt4 key购买 nike

我有一个将被应用程序使用的库。该模块具有接口(interface)和辅助类。

我怎样才能混淆整个模块,但仍然允许访问所有这些接口(interface)和帮助类?

我试过这个:

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

然后我发现自己必须在 proguard 中的所有类上执行 --keep。有什么我可以添加到 pro guard 中的东西,这样我就可以保留所有这些接口(interface)/帮助类,并且仍然将其混淆?

最佳答案

如果你只想让你的库的公共(public) API 不被混淆,你需要指定这个公共(public) API。图书馆有多种方法:

  1. 为公共(public) API 和实际实现提供单独的包,例如com.example.library 包含公共(public) API,而 com.example.library.internal 包含隐藏的实际实现。

  2. 将实际的实现包设为私有(private)

ProGuard 规则将如下所示:

-keep public class com.example.library.* { public protected *; }

这将只在 com.example.library 包中保留公共(public)类及其公共(public)或 protected 方法/字段。

关于java - 混淆模块/库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041396/

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