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代码
- 打开
gradle.properties
- 添加
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
Proguard在Android工作室得到了很好的支持。您必须配置Gradle才能运行它。说明:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard
以上是关于Android Studio中的混淆的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio:proguard 行号错误,没有完全混淆