Android 库模块使用 proguard

2024-05-02

我想创建一个安全的库模块,没有人可以从 apk 文件中提取代码。但是当尝试在库 gradle 中启用 proguard 时,出现错误包不存在。然后我在 proguard 规则文件中添加以下行

-keep class com.alprocr.** { *; }
-keep class com.xyz.alpr.** { *; }
-keep class com.xyz.alpr.doc.** { *; }

添加此代码应用程序工作文件后。但是当我使用 apktool 从 apk 中提取代码时,我从 apk 文件中获得了完整的源代码。当有人尝试提取 apk 文件时,我想要不可读的代码。是否可以?

我也尝试允许shrinkresource但得到相同的错误包不存在

-keep,allowshrinking class com.alprocr.** { *; }
-keep,allowshrinking class com.xyz.alpr.** { *; }
-keep,allowshrinking class com.xyz.alpr.doc.** { *; }

等级代码

buildTypes {

        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

您必须更准确地告诉 Proguard 如何工作。

首先最好使用别名-keepnames代替-keep,allowshrinking。然后只保留公共类和受保护类成员。实际上意味着不要缩小这些部分。

-keep,allowobfuscation public class com.alprocr.** { public protected *; }
-keep,allowobfuscation public class com.xyz.alpr.** { public protected *; }
-keep,allowobfuscation public class com.xyz.alpr.doc.** { public protected *; }

这些是您进入图书馆的入口点。默认情况下,所有未公开或受保护的内容都会被缩小和/或混淆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 库模块使用 proguard 的相关文章

随机推荐