【问题标题】:how to apply proguard at particular part of code or class or Activity in android如何在android中的代码或类或活动的特定部分应用proguard
【发布时间】:2022-08-19 21:59:41
【问题描述】:

我们定期在 android 项目中为所有包启用 proguard。所以,

我们正在使用保持功能,并从 Android 中的混淆(proguard)中排除一些特定的类或包或库 aar\'s。

这是我的确切查询,

而不是对整个 android 项目应用混淆/Proguard,

我们可以在 android studio 项目中应用或混淆特定的类或代码部分吗?

是否有可能在代码库中的意愿位置应用 proguard?

请帮助获得解决方案。谢谢提前。

  • 据我所知,Proguard 旨在始终处理整个应用程序或库。否则很难应用必要的必要性。如果你想混淆一个特定的代码部分,你必须在将编译后的库插入项目之前,创建一个该代码的库并使用 proguard 处理它(不要忘记排除 API 类)。

标签: android proguard dex dexguard android-obfuscation


【解决方案1】:

但是,它可以实现,但不容易开箱即用。

仅对应用程序中的部分类进行混淆

基本上,最简单的方法是将应该和不应该在不同包中混淆的类分组。

例如:

  • org.app --> 你把你的类放在这里不要必须混淆。
  • org.obfuscated.app --> 你把你的类放在这里确实需要被混淆。

现在,在proguard-rules.pro(Proguard 配置文件的默认名称)中添加如下内容:

-keep class org.app.**

这将使位于指定包中的所有类和所有子包不被混淆。

另一方面,包org.obfuscated.app 将保持混淆,因为它没有在Proguard 配置中明确排除混淆。

我目前看到的唯一缺点是您必须在 org.obfuscated.app 包中“复制”原始包拓扑。

更多详情请咨询Proguard configuration manual page

部分类混淆

至于部分类混淆,我相信 Proguard 不支持这样的功能。

【讨论】:

    最近更新 更多