如何混淆Android库模块

时间:2018-06-19 17:50:39

标签: android gradle proguard aar

我有3个模块:2个Android应用程序和1个Android库,在这个问题中我将其称为“通用模块”。

Android库模块包含在两个Android应用程序中,并在两个应用程序之间提供共享功能。这两个应用程序都使用以下公用程序模块:implementation project(":mylibrary")

由于Android库模块包含敏感功能,因此我试图对其进行混淆,以使应用程序的这一部分更难以反向工程。同时,我不想混淆这两个Android应用程序,因为它们很大,并且在混淆后测试所有功能非常耗时且不值得。

我已在通用模块的minifyEnabled文件中启用build.gradle,并向proguard-rules.pro文件添加了保存规则。当我在其上运行assembleRelease任务时,会混淆生成的.aar文件,但是当我在任何一个应用程序上尝试assembleRelease时,公共库中的类都不会被混淆。 / p>

我能想到的唯一解决方案是,我生成了公共库的.aar文件,并在应用程序中手动将其导入,这是可行的,但每个文件都需要生成一个新的.aar文件我更改了通用模块,然后将其导入到多个应用程序中,这些应用程序非常耗时并且容易发生人为错误。我还必须跟踪.aar文件每个发行版上的映射文件。

关于如何自动执行此过程或配置通用模块以在构建使用者模块时产生混淆的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试releaseImplementation project(":mylibrary")