我第一次尝试使用具有混淆和代码优化功能的R8的Android Studio版本。
混淆代码混淆的目的是通过缩短应用程序的类,方法和名称来减小应用程序的大小字段。
[我认为R8将重命名所有方法和类名,但是如果我通过“ Build-> Analyze APK ...”分析APK,则可以读取大多数原始方法和类名。
[Contenuti
是manifest.xml
中提到的活动。
[mostraView
和nascondiView
是我创建的方法,它们不在任何库中,它们不进行任何扩展,因此我希望看到它们的名称已更改。
void mostraView(View v)
{
v.setVisibility(View.VISIBLE);
}
void nascondiView(View v)
{
v.setVisibility(View.GONE);
}
此R8的行为正确吗?
如何设置R8来混淆它们,或者至少混淆这两个?
谢谢。
这可能会让您:
# We want to keep methods in Activity that could be used in the XML attribute onClick.
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
我是通过使用诊断开关-printseeds
和printconfiguration
获得的。
然而,唯一可以重现您的问题的方法是,如果我修改了访问修饰符以包含public
,如下所示:
public void mostraView(View v)
{
v.setVisibility(View.VISIBLE);
}
注意,添加了关键字public
。因此,假设您发布的代码是逐字的,则默认访问修饰符是不匹配该模式的package friend。
无论如何,我都可以进行-经过重述的修改可以重现该问题,并提供了基于默认-keeps的可能解释。