gpt4 book ai didi

android - 构建 Gradle + Proguard + APKLib

转载 作者:行者123 更新时间:2023-11-29 01:41:06 25 4
gpt4 key购买 nike

我开发了一个 Android 库,供我开发的测试应用程序使用。

我需要混淆 Android 库的代码,以便能够将其交付给一些客户,而他们无法看到太多代码。但是我需要一个 Android 库,其结构与我的非混淆库相同,这样我仍然可以用 Eclipse 打开它并在其他应用程序中使用它。

我试过用 Gradle 和 Proguard 来做这件事,但我在这方面遇到了困难。

首先,我使用了插件:“android-library”来构建我的 apklib,但是我不能很好地理解在构建文件夹下创建的文件夹的结构。

哪个文件夹应该包含带有混淆类的新 Android 库项目?我的做法是否正确?

此外,我遇到了困难,因为许多原始类似乎没有生成并且在我构建后丢失了,但我真的无法弄清楚为什么,可能的原因是什么这个?

有没有可能是因为使用了一些不推荐使用的方法,或者类似的东西?

我的最后一个问题是关于在构建过程中导入库的正确方法,我的 Android 库使用一些外部 jar 来工作,但是如果我在构建过程中检查输出,我可以看到我似乎丢失了大部分原始库类:

16:36:33.809 [INFO] [system.out] 库类的原始数量:536616:36:33.809 [INFO] [system.out] 库类的最终数量:615

是什么原因造成的?我知道我的问题很模糊,但我已经为此苦苦挣扎了一天,目前无法真正改进我的构建。非常感谢任何有关如何正确构建带有 Gradle 和 Proguard 混淆的 Android 库的帮助或建议。

编辑:

我找到了一些相关的帖子,但对于 Gradle Using Proguard 生成的输出并没有真正清楚。 attend 输出似乎是 lib 文件夹下的 .aar 文件,但这并不是我真正想要的。到目前为止,我通过在 Proguard 设置文件中使用一些特殊规则来强制使用 -keep 规则保留我的一些文件取得了成功(但我真的无法理解为什么如果我不这样做,它们就不会被保留和混淆) '制定这些规则)。然后我使用在 bundles/release 文件夹中生成的 classes.jar,并将其移动到一个新的 Android Library Project libs 文件夹中,从我原来的 Android Library Project 中复制资源。使我成为一个带有混淆源的 Android 库项目,但看起来不是很干净。

最佳答案

首先你不能在eclipse中打开你的混淆代码。因为混淆过程不会生成你想在eclipse中打开的项目结构。混淆是一个保护你的二进制分布式代码而不是源代码的过程.请保持清楚在你的脑海里。

我认为您需要对您的 android 库项目进行二进制分发。对于 android 库项目的二进制分发,使用的扩展名是 aar,如 AAR FORMAT 中所述。

这意味着你需要寻找在build文件夹下生成的yourlibrary.aar文件。对于 android 库项目,请不要混淆您的代码。因为您的客户很难使用图书馆。

您将在 build/outputs/aar 文件夹中获得 .aar 文件。

我认为这已经足够继续了。

关于android - 构建 Gradle + Proguard + APKLib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635912/

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