Android Studio中的混淆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio中的混淆相关的知识,希望对你有一定的参考价值。

是否有与android Studio一起使用的混淆工具? IntelliGuard插件是Studio的declared to be supported,但由于缺少AntSupport插件,它实际上不起作用。我无法在存储库中找到一个。有任何想法吗?

附: Android Studio构建过程基于Gradle,因此我不希望看到Ant支持。也许我错了。

答案
  • 基本混淆

要在Android工作室中混淆代码,只需转到Android Studio项目中的build.gradle文件:

将minifyEnabled属性从false更改为true

这是一个基本的讽刺。

生成apk后,您可以看到使用任何软件对apk进行解压缩的混淆结果,例如此页面可以帮助您:

http://www.decompileandroid.com/

在混淆结果中,您将看到名称为a,b,c ....的类。

混淆变量和方法也会有像aa,c,ac这样的名字......

  • 正常混淆:

要以更复杂的形式对代码进行模糊处理,您可以转到根目录应用程序并创建.pro文件,例如在下图中我创建了文件:proguard-rules-new.pro,您应该在同一目录中看到一个名为proguard-rules.pro的文件

现在将您创建的文件添加到build.gradle文件中

并使用您自己的自定义proguard规则编辑您创建的.pro文件

另一答案

首先在build.gradle文件中启用minifyEnabled,比如

minifyEnabled true

在此之后,在progurad-rules.txt文件中添加以下行

-keep class yourpackage.** { *; }
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

要检查其工作正常,请访问:

http://www.javadecompilers.com/apktool网站,以便您可以在反编译后进行验证。

它会工作,你的课程将完全隐藏。

另一答案

Android 2018年9月发布了一款新工具R8收缩和混淆工具。

R8-R8是一个java代码缩减器和缩小工具,可将java字节代码转换为优化的dex代码

  1. 打开gradle.properties
  2. 添加android.enableR8 = true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit

android.enableR8 = true

最低要求:

  • Android工作室3.2 2018年9月发布或更高版本
  • Java 8

R8 Tool

另一答案

Proguard在Android工作室得到了很好的支持。您必须配置Gradle才能运行它。说明:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard

以上是关于Android Studio中的混淆的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio:proguard 行号错误,没有完全混淆

android studio 代码混淆错误

片段中的Android Studio RecyclerView [重复]

Android Studio 中的混淆

Android Studio 代码混淆

从 Android Studio 中的片段将数据写入 Firebase