DashO-Pro是第三代的Java混淆器(obfuscator)、压缩机(compactor)、优化工具和水印工具(watermarker)。它能有效保护和防止Java程序被反编译和篡改,是Java代码保护的理想选择。DashO-Pro除了为Java代码提供领先的代码保护外,它还将应用程序的大小缩减到原文件的70%。如果您正在找寻为您的Java程序提供反编译保护、提高运行速度和减少程序体积的办法,那么我们推荐您使用DashO。
DashO可以降低和管理Java应用程序开发所带来的风险。我们的5,000多家企业客户和300,000多名用户列举了许多理由,说明他们为什么信任PreEmptive–特别是DashO–来保护他们的Java应用的安全并提高其价值。
为您的 Android 应用程序或库创建PreEmptive Protection™ DashO™项目的最简单方法是使用新建项目向导。我们建议您将 DashO 集成到您现有的 Gradle 项目中。但是,如果您只有 APK 文件,DashO在某些情况下可以直接处理它。
集成到 Gradle 项目中(推荐)
我们建议您使用该向导来集成您的项目。如果您想查看向导更改的内容或只是手动集成,请参见下文。
先决条件
Android Gradle 插件 v3.2.0 或更高版本
通过向导集成 DashO
该向导会检查您的构建环境,以将适用于 Android的新DashO Gradle 插件集成到构建过程中。它不会覆盖您的任何源文件。通过转到File > Project Wizard启动向导。选择Android(大多数项目)。向导会询问您 Android 项目的位置。
选择包含项目(或相应模块)的目录并单击Next。然后,单击Finish以允许向导修改 Gradle 配置并创建project.dox.
如果project.dox存在,向导将询问您是否要替换它。如果您选择在现有项目上保存,您的新设置将被保存,并且将创建旧文件的备份。
然后 DashO GUI 将加载项目,并且可能会提示您构建(例如gradlew assembleRelease)。构建完成后,您可以通过转到Project > Reload Class List来重新加载项目的类。
注意:您可能还需要启用 R8。
恭喜!您的应用程序或库现在受到 DashO 的保护!
手动集成 DashO
该向导对您的 Gradle 构建配置进行了一些更改,这些更改也可以手动完成:
1.将 PreEmptive Solutions Maven 存储库添加到您的 buildscript 存储库,在您的根目录中build.gradle:
buildscript {
repositories {
maven { url ‘https://maven.preemptive.com’ } //add this line
}
}
2.将插件的工件添加到您的 buildscript 依赖项中:
buildscript {
dependencies {
classpath ‘com.preemptive.dasho:dasho-android:1.4.+’ //add this line
}
}
3.应用 Android Gradle 插件后应用插件:
apply plugin: ‘com.android.application’ //could also be ‘com.android.library’
apply plugin: ‘com.preemptive.dasho.android’ //add this line
或者
plugins {
id ‘com.android.application’ //could also be ‘com.android.library’
id ‘com.preemptive.dasho.android’ //add this line
}
4.确保您已为构建minifyEnabled设置true为release,以允许重命名和收缩:
android {
buildTypes {
release {
minifyEnabled true
}
}
}
注意:您可能还需要启用 R8。
5.设置DashO 主页。如果 DashO 安装在标准位置,则不需要这样做。请注意,有多种方法可以配置 DashO Home。
6.如果这是一个 Android 库 (AAR) 项目,您应该在 R8 配置中添加规则以保留库的公共 API。
创建一个library-rules.pro在项目目录中命名的文件,内容如下:
-keep public class !dasho.,!.dasho.**,* {
public protected *;
}
-keepparameternames
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
SourceFile,LineNumberTable,Annotation,EnclosingMethod
通过添加或更新以下proguardFiles行来配置 R8 以使用这些规则
android {
buildTypes {
release {
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘library-rules.pro’
}
}
}
7.在包含应用程序或库文件的目录中生成默认的An