Android Studio中的混淆

问题描述 投票:34回答:4

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

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

android obfuscation android-studio
4个回答
49
投票
  • 基本混淆

要在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文件


11
投票

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

minifyEnabled true

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

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

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

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

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


7
投票

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.