返回介绍

7.4 其他注意事项

发布于 2024-08-17 23:46:12 字数 1181 浏览 0 评论 0 收藏 0

接下来介绍一些使用ProGuard过程中需要注意的事项。

1.如何确保混淆不会对项目产生影响

如果一个Android项目从一开始就进行了混淆工作,那么:

·测试工作要基于混淆包进行,才能尽早发现问题。

·每天开发团队的冒烟测试,也要基于混淆包进行。

·发版前,要额外测试正式版的推送、分享、打点、二维码扫描等功能。

2.打包时忽略警告

当在导出时,发现很多could not reference class之类的warning信息,如果确认App在运行中和那些引用没有什么关系的话,可以添加-dontwarn标签,就不会再提示这些warning信息了。如:-dontwarn org.apache.**。

不要使用-ignorewarnings语句,它会忽略所有警告,这会有很大的潜在风险。

3.对于自定义类库的混淆处理

回顾第1章,我们编写了一个AndroidLib类库,我们的App应用要引用这个类库。我们努力在做的是,把业务无关的逻辑抽离到AndroidLib类库中,而在App应用中只关心业务逻辑。

我们需要对Lib也进行混淆,然后在主项目的混淆文件中保留AndroidLib中的类和类的成员。

4.使用annotation避免混淆

另一种避免类或者属性被混淆的方式是,使用annotation。在需要保留的类中加上如下语法:

@Keep
@KeepPublicGettersSetters
public class Bean {
  public boolean booleanProperty;
  public int intProperty;
  public String stringProperty;
  public boolean isBooleanProperty() {
    return booleanProperty;
  }
}

这种使用方式多出现在fastJSON的使用上。

5.在项目中指定混淆文件

说到最后,发现没有介绍如何在项目中指定混淆文件。

在项目中有一个project.properties文件,在其中写这么一句话,就可以确保每次手动打包生成的apk是混淆过的:

proguard.config = proguard.cfg

其中,proguard.cfg是混淆文件的名称。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文