我有一个在UiAutomator中开发的测试项目,它不是专门用于一个应用程序,即我甚至没有任何与我的测试相关的应用程序。我的主文件夹只有AndroidManifest,我的代码都在测试文件夹中。
我想让我的代码可用但是有效。所以我想获得一个代码混淆的APK代码。
我的build.gradle包含
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFiles('proguard-rules.pro')
}
debug{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFiles('proguard-rules.pro')
debuggable true
}
}
和proguard-rules.pro文件是:
-keep public class * extends android.test.InstrumentationTestCase
-keep public class * extends junit.framework.TestCase
-keep public class * implements junit.framework.TestCase
-keep class android.support.** { *;}
-keep interface android.support.** { *;}
-keep public class junit.framework.** { *;}
-keep class android.uiautomator.** { *;}
-keep class com.impactToolTester.utility.Constants
-keepclasseswithmembernames class *{
public <init>(java.lang.Class,android.support.test.internal.util.AndroidRunnerParams);
}
-dontnote android.support.test.internal.runner.listener.CoverageListener
-dontwarn android.test.**
-dontnote org.junit.**
-dontnote junit.runner.*
-dontnote junit.framework.*
-dontnote android.net.**
-dontnote org.apache.http.**
当我运行gradlew assembleAndroidTest时,在build / outputs / apk中创建了app-debug-androidTest-unaligned.apk。
然而,当我反编译apk时,我意识到它根本没有被混淆。我知道proguard文件已被读取,因为我在第一次运行时遇到了几个错误。
我在调试和发布中都有minifyEnabled,因为我不确定哪个是用assembleAndroidTest运行的。
一般来说,当涉及到节目和混淆时,我是一个真正的新手,所以任何帮助都会非常感激。