谷歌已经为Android开发者发布了针对Android Studio 2.1 的新JACK编译器测试版.
我的问题是,我们如何使用JACK为APK进行模糊处理?下面的文章说JACK 本地执行模糊处理并且不需要Proguard:
以下文章说JACK使用Proguard配置文件(即.pro文件)来执行混淆:
它也说
在此过程中,Jack还处理任何请求的代码缩小(缩小和/或混淆).
这到底是什么意思?我们是否必须使用该minifyEnabled选项并定义.pro包含Proguard选项的文件?
综上所述:
我们究竟如何与JACK实现混淆?我们是否可以绕过Proguard的使用,或者Proguard在混淆过程中扮演事实上的角色,即使我们使用JACK编译?
JACK目前是否支持混淆,是否可以在Android Studio的稳定(即非beta/canary)版本中使用?
注意:
我已经提到了以下帖子:
进一步参考:
更新:
android android-sdk-tools android-studio android-jack-and-jill android-proguard
我正在尝试进行简单的浓缩咖啡测试,找到RecyclerView没有特定标签的第一个项目,
然后点击它.为实现这一点,我添加espresso-contrib到这样的项目:
androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') {
// Necessary to avoid version conflicts
exclude group: 'com.android.support', module: 'appcompat'
exclude group: 'com.android.support', module: 'design'
exclude group: 'com.android.support', module: 'support-v4'
exclude group: 'com.android.support', module: 'appcompat-v7'
exclude group: 'com.android.support', module: 'support-annotations'
exclude module: 'recyclerview-v7'
}
Run Code Online (Sandbox Code Playgroud)
并在我的测试用例中写下以下表达式:
onView(withId(R.id.sresults_list_recycler)).perform(RecyclerViewActions.actionOnHolderItem(new FirstNotSoldOutMatcher(), click()).atPosition(1));
Matcher完美运行并RecyclerView滚动到目标项目.但后来我得到错误:
java.lang.NoSuchMethodError: No virtual method findViewHolderForPosition(I)Landroid/support/v7/widget/RecyclerView$ViewHolder; in class Landroid/support/v7/widget/RecyclerView; or its super classes (declaration of 'android.support.v7.widget.RecyclerView' appears in /data/app/com.example-1/base.apk)
at android.support.test.espresso.contrib.RecyclerViewActions$ActionOnItemAtPositionViewAction.perform(RecyclerViewActions.java:288)
at android.support.test.espresso.contrib.RecyclerViewActions$ActionOnItemViewAction.perform(RecyclerViewActions.java:232)
at android.support.test.espresso.ViewInteraction$1.run(ViewInteraction.java:144)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.Handler.handleCallback(Handler.java:751) …Run Code Online (Sandbox Code Playgroud) android ×2