是,还是可以使用gradle任务在编译时间修改库的packagename,类似于jarjar的工作方式,以更改.jar文件的包装。
库是非常标准的,包括如下:
dependencies {
compile 'com.scottyab:rootbeer-lib:0.0.6'
}
这样做的目的是更改名称,以避免通过根掩盖应用程序对库的静态检测。
任何建议或指导都非常感谢!谢谢
已经有一个Gradle插件可以做类似的操作。它重新定位依赖项,阴影。
它捆绑并重新定位了库中的常见依赖关系,以避免使用类Path的冲突。Shadow使用ASM库修改类字节代码来替换类包装名称和类的任何导入语句。包装结构中存储的任何非类文件也都搬迁到新位置。
这就是您重新安置软件包的方式:
shadowJar {
relocate 'junit.framework', 'shadow.junit'
}
代码段将重写Junit.framework中任何类的位置为Shadow.junit。例如,junit.textui.testrunner class shadow.junit.testrunner。在结果的罐子中,类文件从junit/textui/testrunner.class转移到shadow/junit/testrunner.class。
已经有一个Gradle插件可以做类似的操作。它重新定位依赖项,阴影。
它捆绑并重新定位了库中的常见依赖关系,以避免使用类Path的冲突。Shadow使用ASM库修改类字节代码来替换类包装名称和类的任何导入语句。包装结构中存储的任何非类文件也都搬迁到新位置。
这就是您重新安置软件包的方式:
shadowJar {
relocate 'junit.framework', 'shadow.junit'
}
代码段将重写Junit.framework中任何类的位置为Shadow.junit。例如,junit.textui.testrunner class shadow.junit.testrunner。在结果的罐子中,类文件从junit/textui/testrunner.class转移到shadow/junit/testrunner.class。
我可以看到您使用的库是开源库。您可以简单地从这里克隆回购并将其修改以使用您想要的任何名称。您甚至不需要作为AAR库来构建更改。只需将其作为Android Studio中的模块导入。
Gradle任务也非常强大,应该可以与Gradle一起做,但我不知道如何。